Bienvenida al curso
Minuto 28 de una competencia de práctica. Su compañera encontró la falla en el servicio de notas y, para cerrarla rápido, borró del código la ruta vulnerable. El tablero, dos ticks después:
tick equipo servicio estado SLA
14 cafetal-blue notas UP 100.0 %
15 cafetal-blue notas MUMBLE 93.3 %
16 cafetal-blue notas MUMBLE 87.5 %En muchos tableros, MUMBLE quiere decir que el checker del organizador se conecta pero el servicio no le responde lo que espera. Esa ruta borrada también la usaba el checker. El equipo dejó de perder banderas y empezó a perder algo peor: disponibilidad, tick tras tick. El caso es inventado; el error es de los más comunes en un primer attack-defense.
Bienvenido a CTF Attack-Defense: atacar y defender servicios. Aquí pasa al juego por equipos: cada uno administra una máquina con servicios propios y la mantiene viva mientras los demás la atacan.
Qué va a lograr
- Explicar qué es un CTF attack-defense y en qué se diferencia del formato jeopardy.
- Interpretar el puntaje de ataque, defensa y disponibilidad (SLA), los ticks y los flag IDs.
- Inventariar, respaldar y observar servicios con
ss,git,tcpdumpytail -f. - Auditar el código de un servicio propio y cerrar dos fallas académicas con parches que el checker no nota.
- Organizar un equipo con roles, un repositorio compartido y un plan de arranque.
Para quién es y qué necesita
Es para quien ya jugó o estudió CTF de tipo jeopardy y quiere probar el juego por equipos. Conviene haber hecho Introducción a los CTF: capture la bandera y Linux básico: 15 comandos para empezar. Leer Python básico ayuda.
Necesita Ubuntu 22.04 o 24.04 (VM o WSL2) con Python 3, curl, git y tcpdump; la píldora Su primera máquina virtual en 40 minutos le guía si nunca creó una VM. Los servicios escuchan solo en 127.0.0.1: no hace falta una segunda máquina.
Cómo está organizado
| Módulo | Qué aprende | Laboratorio |
|---|---|---|
| 1. Qué es un CTF attack-defense | Bienvenida, qué es el formato y su historia, puntaje, ticks y flag IDs | Montar su vulnbox local con un servicio de notas |
| 2. Defender la vulnbox | ss, git, tcpdump, iptables, parche quirúrgico | Defender un servicio con un parche que respeta el SLA |
| 3. Atacar dentro del juego | Auditoría de código propio, dos fallas académicas, exploit y parche | Ciclo completo en 127.0.0.1 con un gameserver ficticio |
| 4. Equipo y herramientas | Roles, repositorio, despliegue, plataformas legales y conclusión | El plan escrito de su equipo |
| Evaluación | 6 preguntas sobre todo el curso | Aprueba con 70 % |
Cómo aprovecharlo
Haga git init en la carpeta del servicio en el primer laboratorio, antes de tocar una línea. Volver atrás en diez segundos salva un tick.
El laboratorio del módulo 3 es el más largo: escribe el exploit contra su propio servicio, comprueba que saca la bandera, aplica el parche y confirma que el exploit ya no funciona y que el servicio sigue respondiendo como antes. Tenga tres terminales abiertas (servicio, gameserver y exploit).
El último laboratorio no tiene código: es el plan de su equipo para los primeros treinta minutos de una competencia, y rinde más si lo escribe con quienes piensa jugar. Al aprobar la evaluación final recibe el certificado y la insignia.
Tiempo estimado
Unas 4 horas y media, cerca de hora y media en laboratorios. Haga cada uno en una sola sesión.