Qué es un CTF y cómo empezar a jugar (guía para principiantes)
Qué es un CTF, formatos, categorías con ejemplos, dónde practicar todo el año, herramientas básicas y un plan de 4 semanas para jugar tu primera competición.
Si llevas un tiempo aprendiendo ciberseguridad, seguro que has leído la palabra CTF en foros, en Discord o en ofertas de trabajo. Un CTF (Capture The Flag) es una competición de hacking ético en la que resuelves retos para encontrar una cadena de texto secreta, la flag, y entregarla a cambio de puntos. En esta guía te explicamos qué es un CTF, qué formatos existen, qué categorías de retos te vas a encontrar (con un ejemplo de cada una), dónde practicar todo el año y un plan de cuatro semanas para jugar tu primera competición.
Qué es un CTF
Un CTF es un juego de seguridad informática con reglas claras: los organizadores preparan servidores, binarios, ficheros o páginas web vulnerables a propósito, y tu objetivo es explotarlos o analizarlos hasta dar con una flag. Cuando la encuentras, la pegas en la plataforma del evento y el marcador te suma puntos.
Lo que hace a los CTF tan buenos para aprender es que todo es legal y está hecho para romperse. No necesitas buscar un objetivo real ni pedir permiso a nadie: el entorno existe precisamente para que practiques. Además, cada reto te obliga a entender una técnica concreta (una inyección SQL, un cifrado mal usado, un desbordamiento de búfer) en lugar de limitarte a ejecutar una herramienta sin saber qué hace.
Hay CTF de todos los niveles: desde competiciones pensadas para estudiantes de instituto hasta eventos donde compiten equipos profesionales. Muchos son online y gratuitos, y casi todos permiten participar en solitario o en equipo.
Cómo es una flag
La flag es simplemente un texto con un formato que el evento anuncia de antemano, para que sepas reconocerla cuando la veas. Algunos ejemplos habituales:
picoCTF{th1s_1s_4_fl4g}en picoCTF.crypto{...}en CryptoHack.HTB{...}en los retos de Hack The Box (en sus máquinas, las flags están en ficheros comouser.txtyroot.txt).flag{...}oCTF{...}en muchos eventos genéricos.
Conocer el formato es más útil de lo que parece: si sabes que la flag empieza por picoCTF{, puedes buscar esa cadena con grep dentro de un fichero enorme, o reconocerla cuando aparece codificada en Base64 (por ejemplo, picoCTF en Base64 empieza siempre por cGljb0NURn).
Formatos de CTF: Jeopardy, Ataque-Defensa y King of the Hill
Jeopardy
Es el formato más común y el ideal para empezar. Tienes un tablero con retos agrupados por categoría (web, crypto, forense...) y cada uno vale una cantidad de puntos según su dificultad. Los resuelves en el orden que quieras. En muchos eventos la puntuación es dinámica: cuantos más equipos resuelven un reto, menos puntos vale. Cuando hablamos de "jugar un CTF" sin más, normalmente nos referimos a este formato.
Ataque-Defensa (Attack-Defense)
Cada equipo recibe una máquina o red con los mismos servicios vulnerables. Tienes que parchear tus servicios para que no te roben flags y, a la vez, atacar los servicios de los demás equipos. Las flags se renuevan cada cierto tiempo, así que hay que automatizar ataques con scripts. Es mucho más exigente y está pensado para equipos con experiencia; las finales de competiciones veteranas como DEF CON CTF han usado variantes de este formato.
King of the Hill
Todos los jugadores atacan la misma máquina. El primero que consigue control escribe su nombre en un fichero (por ejemplo, king.txt) y suma puntos mientras lo mantenga, así que también tiene que defender su posición frente al resto. TryHackMe tiene un modo de juego de este tipo. Es divertido, pero caótico para un principiante: mejor después de unos cuantos Jeopardy.
Categorías típicas y cómo es un reto fácil en cada una
Estos ejemplos son ilustrativos, inventados para que te hagas una idea del tipo de pensamiento que pide cada categoría. Los retos reales de nivel inicial se parecen mucho.
Web
Te dan la URL de una aplicación. En un reto fácil la flag puede estar en un comentario HTML (pulsa Ctrl+U para ver el código fuente), en /robots.txt, o detrás de una cookie como admin=false que basta con cambiar a true desde las herramientas de desarrollador del navegador. Más adelante llegarán las inyecciones SQL, XSS o SSRF, y ahí Burp Suite se vuelve imprescindible para interceptar y modificar peticiones.
Criptografía (crypto)
Te dan un texto aparentemente ilegible. Por ejemplo:
cGljb0NURntiNHMzXzY0X24wXzNzX2MxZnI0ZDB9
Si lo decodificas como Base64 obtienes picoCTF{b4s3_64_n0_3s_c1fr4d0}. Otro clásico es synt{ebg13_ab_rf_pvsenqb}, que es ROT13. La lección de estos primeros retos es distinguir codificación (reversible por cualquiera) de cifrado (necesita una clave). Los retos avanzados atacan RSA con parámetros débiles, cifrados XOR con claves cortas o modos de bloque mal usados.
Forense (forensics)
Te dan un fichero: una imagen, una captura de red .pcap, un volcado de memoria o un disco. Un reto inicial podría ser una foto que en realidad esconde un ZIP al final. Los primeros comandos a probar son siempre los mismos:
file reto.jpg
exiftool reto.jpg
strings reto.jpg | grep -i pico
binwalk -e reto.jpg
Para capturas de red, Wireshark y su opción "Follow TCP Stream" resuelven muchos retos básicos.
Ingeniería inversa (reversing)
Te dan un programa que pide una contraseña. En el nivel más sencillo, la contraseña está escrita tal cual dentro del binario y strings ./programa la muestra. Un paso más allá, el programa transforma tu entrada (por ejemplo, sumando 3 a cada carácter) antes de compararla, y tienes que leer el código desensamblado o decompilado con Ghidra para deshacer la operación.
Explotación binaria (pwn)
Te dan un binario y una dirección para conectarte con nc. El ejemplo clásico de iniciación: un programa en C guarda tu nombre en un búfer de 32 bytes con una función insegura, y justo detrás en memoria hay una variable que, si deja de valer cero, imprime la flag. Enviar más caracteres de la cuenta basta:
python3 -c "print('A'*48)" | nc servidor.ctf 1337
Es la categoría con la curva más dura: necesitas entender C, la pila y algo de ensamblador. La librería pwntools de Python es el estándar para escribir exploits.
OSINT
Inteligencia de fuentes abiertas. Te dan una foto y te preguntan en qué ciudad se tomó, o un nombre de usuario y tienes que encontrar en qué red social publicó algo. Se resuelve con búsqueda inversa de imágenes, metadatos, mapas y mucha paciencia. Es una buena puerta de entrada porque no requiere programar.
Miscelánea (misc)
El cajón de sastre: un código QR roto, un programa escrito en un lenguaje esotérico, una "cárcel" de Python en la que tienes que escapar con funciones limitadas, o un reto de programación que exige automatizar cien respuestas en pocos segundos. Suelen ser los más creativos.
Dónde practicar CTF todo el año
Las competiciones en directo duran uno o dos días, pero hay plataformas con retos permanentes donde puedes entrenar a tu ritmo:
| Plataforma | Para qué es mejor | Nivel de entrada |
|---|---|---|
| picoCTF | Retos Jeopardy de todas las categorías, con pistas. Su picoGym mantiene los retos de ediciones anteriores. | Muy bajo |
| OverTheWire | Wargames por niveles. Bandit es la mejor introducción a la terminal de Linux. | Muy bajo |
| TryHackMe | Salas guiadas paso a paso y máquinas con estilo CTF. | Bajo |
| Root-Me | Cientos de retos clasificados por categoría, muy bueno para web y cracking. | Bajo a alto |
| CryptoHack | Criptografía aprendida resolviendo retos, desde XOR hasta curvas elípticas. | Bajo a alto |
| Hack The Box | Máquinas completas y retos sueltos; ideal cuando ya tienes base. | Medio |
Si no sabes por cuál empezar: los primeros niveles de Bandit en OverTheWire (te conectas por SSH con ssh bandit0@bandit.labs.overthewire.org -p 2220, contraseña bandit0) y después el picoGym de picoCTF. Tienes más opciones en la sección de plataformas de práctica.
Cómo encontrar competiciones en directo: CTFtime
CTFtime.org es el calendario de referencia de la comunidad. Allí verás los próximos eventos con su formato, duración, si son online o presenciales y un "peso" que indica cuánto cuentan para el ranking. También puedes registrar tu equipo y consultar writeups de eventos pasados.
Consejos para elegir tu primer evento:
- Busca eventos en formato Jeopardy y online.
- Prefiere los de peso bajo o los que se anuncian para principiantes o estudiantes: tendrán retos fáciles.
- Lee las reglas: formato de la flag, si se permiten equipos, tamaño máximo y qué está prohibido (casi siempre, atacar la infraestructura del evento o a otros jugadores).
Kit de herramientas para empezar
No necesitas cientos de herramientas. Con este kit puedes afrontar la mayoría de retos de nivel inicial:
- Una máquina virtual Linux. Kali Linux trae casi todo preinstalado; si nunca lo has usado, sigue nuestra guía de Kali Linux para principiantes. Trabajar en una VM te aísla de ficheros sospechosos que descargues.
- CyberChef. La "navaja suiza" para codificar, decodificar, hacer XOR, descomprimir y encadenar transformaciones desde el navegador. Su opción "Magic" intenta adivinar la codificación por ti.
- Burp Suite Community. Proxy para ver y modificar las peticiones HTTP en retos web.
- Ghidra. Desensamblador y decompilador gratuito para reversing y pwn.
- Python 3. Para automatizar: decodificar en bucle, hablar con un servidor por sockets o escribir un exploit con pwntools.
- Utilidades de terminal:
file,strings,grep,xxd,nc,curl,exiftoolybinwalk.
Puedes ampliar la lista con nuestra selección de herramientas de hacking ético para principiantes.
Cómo abordar un reto (y tomar notas)
- Lee el enunciado dos veces. El título y la descripción casi siempre esconden una pista ("algo huele a César", "el admin olvidó algo en el código").
- Reconoce el terreno. Si es un fichero,
fileystrings. Si es una web, código fuente, cookies,robots.txty las peticiones en Burp. Si es un binario, ejecútalo, mira qué protecciones tiene y ábrelo en Ghidra. - Formula una hipótesis concreta y pruébala. "Creo que el parámetro
ides vulnerable a inyección SQL" es útil; "voy a probar cosas" no. - Busca con precisión. Si ves algo que no entiendes (un formato de fichero, un mensaje de error), búscalo literalmente. Investigar es parte del juego.
- Pon un límite de tiempo. Si llevas una hora sin avanzar, cambia de reto o usa las pistas. Volver más tarde con la cabeza fresca funciona sorprendentemente bien.
Sobre las notas: crea una carpeta por evento y un fichero por reto (Markdown, Obsidian, CherryTree o lo que prefieras). Apunta los comandos exactos que ejecutaste, lo que funcionó, lo que no y por qué. Esas notas se convierten en tu propia base de conocimiento: el truco que aprendiste hoy volverá a aparecer en otro CTF dentro de tres meses, y también te servirán para escribir tus writeups.
Writeups: cómo usarlos y cuándo publicarlos
Un writeup es la explicación de cómo se resolvió un reto. Leer writeups de eventos pasados es una de las mejores formas de aprender, sobre todo de los retos que no conseguiste resolver. La clave es intentarlo primero y leer la solución después, reproduciendo cada paso en lugar de solo leerlo.
Las normas de etiqueta son sencillas:
- Nunca publiques soluciones ni flags mientras el evento está en marcha. Es la regla más respetada de la comunidad, suele estar en las bases y puede costarte la descalificación.
- Respeta las reglas de cada plataforma permanente. Algunas piden no publicar soluciones de contenido activo o restringen qué puedes compartir; consúltalo antes de publicar.
- No compartas flags sueltas. Un buen writeup explica el razonamiento, no solo el resultado.
- Cita a otros si te basaste en su trabajo.
Escribir tus propios writeups cuando el evento termina consolida lo aprendido y, de paso, construye un portfolio público que los reclutadores valoran.
Unirte a un equipo
Puedes jugar solo, pero en equipo se aprende más rápido: cada persona cubre categorías distintas y ves cómo piensan otros. Algunas formas de encontrar equipo:
- Crea uno con amigos o compañeros de clase, aunque nadie tenga experiencia. Todos los equipos empezaron así.
- Busca el equipo CTF de tu universidad o de tu ciudad; muchos están listados en CTFtime.
- Pregunta en comunidades de Discord o Telegram de ciberseguridad; muchos equipos aceptan principiantes que se comprometan a aprender.
En equipo, usad un canal por reto y apuntad en un documento compartido quién está con qué y qué se ha probado ya. Evita que tres personas pasen dos horas haciendo lo mismo.
Plan de 4 semanas: de cero a tu primer CTF
Este plan asume una o dos horas al día. Si partes de cero absoluto en informática, antes repasa nuestra guía de cómo aprender hacking ético desde cero.
Semana 1: terminal y entorno
- Monta tu máquina virtual con Kali o la distribución Linux que prefieras.
- Haz los primeros niveles de Bandit en OverTheWire (intenta llegar al menos a la mitad).
- Empieza tu sistema de notas desde el primer día.
Semana 2: categorías de entrada
- En el picoGym de picoCTF, resuelve los retos más fáciles de General Skills, Cryptography y Forensics.
- Familiarízate con CyberChef y con los comandos
file,strings,exiftoolybinwalk. - Haz las primeras lecciones de CryptoHack para entender codificaciones y XOR.
Semana 3: web y un poco de reversing
- Instala Burp Suite Community y aprende a interceptar y repetir peticiones.
- Resuelve los retos web más fáciles de picoCTF o Root-Me.
- Abre un binario sencillo en Ghidra y localiza la función
main. No hace falta entenderlo todo; el objetivo es perderle el miedo. - Escribe un pequeño script de Python que se conecte a un servidor y lea una respuesta.
Semana 4: tu primer CTF en directo
- Busca en CTFtime un evento Jeopardy online del próximo fin de semana, preferiblemente orientado a principiantes.
- Regístrate solo o con amigos y lee las reglas.
- Durante el evento, empieza por los retos con más resoluciones: son los más asequibles.
- Cuando termine, lee los writeups de los retos que no sacaste y escribe el tuyo de al menos uno que sí resolviste.
El objetivo de tu primer CTF no es quedar arriba en el marcador, sino resolver uno o dos retos y salir con una lista de cosas que aprender. Eso ya es un éxito.
Siguiente paso
Los CTF son la forma más entretenida de convertir teoría en habilidad práctica. Si quieres una ruta estructurada que combine fundamentos y retos prácticos, echa un vistazo a nuestra Academia, y explora el repositorio de recursos para encontrar más plataformas y herramientas. Elige un reto hoy, aunque sea el más fácil del tablero: la primera flag es la que más cuesta.