Saltar al contenido
Lectura12 minPreview

Qué es un CTF y cómo se juega

Un CTF (del inglés Capture The Flag, "capture la bandera") es una competencia de seguridad informática en la que usted resuelve retos técnicos para encontrar un texto secreto llamado flag. Cada flag que entrega suma puntos. Es la forma más entretenida, y más legal, de aprender a pensar como alguien que busca fallas para poder corregirlas.

En este curso las flags tendrán siempre el formato secwing{texto_secreto}. Cuando la encuentre, sabrá que resolvió el reto.

De un juego de campamento a una disciplina

El nombre viene de un juego al aire libre: dos equipos, cada uno con una bandera en su territorio, intentan robar la del rival sin perder la propia. La comunidad de seguridad tomó la idea a mediados de los años noventa, y en 1996 la conferencia DEF CON de Las Vegas celebró la competencia que suele citarse como el primer CTF informático. Durante años fueron eventos de nicho, para expertos.

El cambio llegó cuando universidades y comunidades crearon retos pensados para aprender. En 2013 la Universidad Carnegie Mellon lanzó picoCTF para estudiantes de colegio, y hoy se celebran cientos de eventos al año, muchos en línea y gratuitos, con un calendario mundial que los reúne a todos.

Por qué importa en ciberseguridad y en el trabajo

Los CTF condensan en minutos lo que en un trabajo real tomaría días. Cada reto enseña una idea concreta y lo obliga a descubrirla por su cuenta.

  • Analistas de SOC y forenses practican reconocer formatos, extraer texto de binarios y leer metadatos, lo mismo que hacen al revisar un adjunto sospechoso.
  • Desarrolladores ven con sus propios ojos por qué no se confía en una cookie o se arma una consulta pegando texto.
  • Pentesters y equipos rojos entrenan la enumeración metódica, siempre dentro de un alcance autorizado.
  • Reclutadores valoran los writeups publicados y la participación en eventos como prueba de que usted sabe resolver problemas.

Además, son un entorno autorizado: los organizadores permiten atacar la infraestructura de los retos, y solo esa. Esa diferencia es fundamental: la misma técnica aplicada contra un sistema ajeno sin autorización es un delito en Costa Rica y en casi toda Latinoamérica.

Dónde se juegan

LugarEjemplo
Plataformas permanentespicoGym, OverTheWire, TryHackMe, Hack The Box
ConferenciasDEF CON en Estados Unidos, ekoparty en Argentina
Universidades y colegiosCompetencias internas y entre instituciones
EmpresasRetos de reclutamiento y entrenamiento de sus equipos
Su propia máquinaLos retos que usted genera en este curso

Los dos grandes formatos

Jeopardy

Es el formato más común y el ideal para empezar. Hay un tablero con retos agrupados por categoría y por puntaje, como en el programa de televisión del mismo nombre. Usted elige qué resolver, en qué orden y a su ritmo.

+-----------+-----------+-----------+-----------+
|   Web     |  Cripto   | Forense   |   Misc    |
+-----------+-----------+-----------+-----------+
|   100     |   100     |   100     |   100     |
|   200     |   200     |   250     |   200     |
|   400     |   350     |   400     |   300     |
+-----------+-----------+-----------+-----------+

Attack-Defense

Cada equipo recibe un servidor con servicios vulnerables. Debe defender los suyos (encontrar y corregir las fallas) mientras ataca los de los demás para robar sus flags. Suele reservarse para equipos con experiencia. En King of the Hill se compite por mantener el control de una máquina.

La diferencia entre los dos formatos se ve mejor lado a lado:

A la izquierda, un tablero de Jeopardy: columnas por categoría (web, cripto, forense, misc) y filas de 100, 200, 300 y 400 puntos; la persona elige la casilla que quiere y algunas ya están resueltas. A la derecha, ataque-defensa: dos equipos con su propio servidor y su bandera; cada uno pone un escudo frente al ataque que recibe mientras ataca el servidor del otro.
[fig] En Jeopardy usted compite contra el tablero y elige el orden; en ataque-defensa compite contra otros equipos y tiene que defender su servidor mientras ataca el ajeno.

Las categorías clásicas

CategoríaQué se practica
MiscCodificaciones, acertijos, uso creativo de la terminal
ForenseAnalizar archivos, capturas de red, imágenes de disco
EsteganografíaInformación escondida dentro de imágenes o audio
OSINTInvestigación con fuentes abiertas y metadatos
CriptoRomper cifrados clásicos o implementaciones débiles
WebFallas en aplicaciones web: lógica, cookies, inyecciones
ReversingEntender qué hace un programa compilado
PwnExplotar errores de memoria en binarios

Este curso se concentra en las primeras seis, las más amigables para quien viene de Linux básico. Reversing y Pwn requieren bases de C y ensamblador.

Conceptos clave

ConceptoQué significa
FlagEl texto secreto que prueba que resolvió el reto, como secwing{...}
RetoUn problema con una sola flag, dentro de una categoría y con un puntaje
AlcanceLo que los organizadores autorizan tocar; todo lo demás está prohibido
EnumerarRecolectar información antes de actuar: archivos, tipos, metadatos, rutas
WriteupLa explicación publicada de cómo se resolvió un reto
Pista falsaUn dato puesto para despistar, como un texto sin el prefijo correcto

Cómo leer las sintaxis y pedir ayuda

Las fichas de cada herramienta muestran su forma general así:

strings [-n MINIMO] ARCHIVO...

Los corchetes marcan lo opcional, las MAYÚSCULAS son lo que usted reemplaza y los tres puntos indican que puede repetir el elemento (varios archivos). Cuando dude, pregúntele al propio sistema con man strings (el manual completo, se sale con q) o strings --help (un resumen breve).

Verifique que tiene las herramientas básicas con which, que dice en qué carpeta está cada programa:

which find grep strings file base64 xxd
/usr/bin/find
/usr/bin/grep
/usr/bin/strings
/usr/bin/file
/usr/bin/base64
/usr/bin/xxd

Si falta strings, instale el paquete binutils; si falta xxd, instale xxd (o vim-common en distribuciones antiguas):

sudo apt update && sudo apt install -y binutils xxd