Blue Team · Respuesta a incidentes

El ataque ya ocurrió.
Descubre qué pasó.

Un laboratorio de investigación para analistas de SOC. Entras a un servidor que ya fue comprometido, analizas la evidencia, separas lo real de los señuelos y reconstruyes el incidente. No hay que atacar nada: aquí se gana investigando.

analista1@ctf-web01:~$ cat /cases/nivel1/CASO.txt
CASO 1 (SOC N1) — Acceso no autorizado
Un IDS alertó por actividad sospechosa en ctf-web01.
Tu trabajo: revisar la evidencia y responder...

OJO: hay pistas y flags falsas.

analista1@ctf-web01:~$ # tu investigación empieza aquí

01 / El reto

¿Qué es un CTF Blue Team?

En un CTF (Capture The Flag) resuelves retos para conseguir banderas (flags). En este, el ataque ya ocurrió y tú eres el analista del SOC que llega después. Tu trabajo es averiguar qué pasó, cuándo y desde dónde, qué dejó el atacante para volver a entrar, qué intentó ocultar, y demostrarlo con evidencia.

Tu rolAnalista SOC / respuesta a incidentes
Qué hacesLeer logs, revisar archivos, correlacionar, reconstruir
La flag saleAl entender el incidente
Herramientasgrep, awk, stat, sha256sum, base64…
01

Analiza evidencia

Logs, tareas programadas, servicios, claves y archivos ocultos.

02

Separa la señal del ruido

Hay señuelos a propósito: descartarlos con evidencia también cuenta.

03

Cumple cada nivel

Responde las preguntas del caso y obtén la flag.

04

Reconstruye el incidente

Línea de tiempo y técnicas del atacante con MITRE ATT&CK.

02 / Cómo funciona

Tu turno, paso a paso

El evento es abierto y hay 3 máquinas, así que se entra por turnos, en orden de registro. Solo necesitas un navegador: no hay que instalar nada.

  1. Regístrate en flags.layersintel.com/registro con tu nombre, correo y un alias, y marca "CTF de terminal". Al terminar ves tu lugar en la fila.
  2. Espera tu turno. La fila está en flags.layersintel.com/fila (también en la pantalla de la sede).
  3. El staff te asigna una máquina (lab-p1, lab-p2 o lab-p3) y te da la contraseña de analista1. Tenla a la mano antes de abrir la página.
  4. Entra en https://lab-pN.layersintel.com con el correo de tu registro: te llega un código por correo (revisa spam). Verás login:; entra como analista1. La contraseña no se muestra mientras la escribes.
  5. Investiga. Empieza en la carpeta de tu caso: cd /cases/nivel1 y cat CASO.txt. La carpeta es el punto de partida, pero todo el servidor es la escena del incidente.
  6. Saca la flag con ctf-flag 1: te hace las preguntas del caso y, si respondes bien, te da tu flag y te dice cómo seguir.
  7. Entrégala en flags.layersintel.com con tu alias. El marcador es público y solo muestra alias y "N de 3".
  8. Sube de nivel sin cerrar la sesión: su - analista2 y después su - analista3, con el guion. La contraseña de cada nivel la descubres en la evidencia del anterior.
  9. Al terminar, o si decides parar, avísale al staff para cerrar tu turno. Al completar los 3 niveles, la página de flags te felicita.

Cerrar la pestaña reinicia la máquina

  • Si cierras la pestaña, se cae tu conexión o haces exit como analista1, la máquina vuelve a su estado original en 1–3 minutos. Lo que hayas creado dentro se pierde: toma tus notas fuera.
  • Las contraseñas de analista2 y analista3 y las flags cambian con cada reinicio. Las flags que ya entregaste siguen contando: entrégalas apenas las tengas.
  • Si ves un error de Cloudflare (502 o 1033), la máquina se está reiniciando: espera 2 minutos y recarga.

03 / El escenario

ctf-web01, madrugada

ctf-web01 es un servidor Linux de una empresa ficticia. Durante la madrugada, el IDS generó una alerta por actividad sospechosa y te asignaron el caso. La máquina ya está comprometida: todo lo que encuentres es parte del incidente.

Todos los artefactos son simulados e inertes: no hay malware real ni conexiones a ningún lado. Las IP del "atacante" pertenecen a rangos reservados para documentación (RFC 5737) y no son de nadie. La máquina no tiene internet: trabajas con lo que ya está instalado.

04 / Niveles

Tres niveles, un solo incidente

Cada nivel es un usuario de Linux con su propia carpeta de caso y cuenta una parte de la historia. En cada respuesta indica qué evidencia la prueba: archivo y línea, o comando y salida.

Nivel 1 · Acceso no autorizado

analista1 · fácil · 45 min

De madrugada, el IDS de ctf-web01 detectó actividad extraña. Alguien llevaba un buen rato intentando entrar al servidor y en algún momento lo logró. Antes de irse dejó algo preparado para que se ejecutara solo. Tu primer trabajo es contar esa parte de la historia.

Lo que te pregunta ctf-flag 1

  1. ¿Desde qué IP entró el atacante?
  2. ¿Qué usuario fue comprometido?
  3. ¿A qué hora fue el primer acceso exitoso? (HH:MM:SS, UTC)
  4. ¿Qué tarea cron dejó? (nombre o ruta)

Cómo sacas la flag

Empieza con cd /cases/nivel1 y cat CASO.txt.

Con las 4 respuestas, corre ctf-flag 1 y escríbelas. Si son correctas, te da tu flag: entrégala con tu alias.

Cómo subes al nivel 2

La contraseña de analista2 está escondida en la evidencia de este nivel.

Cuando la tengas, en la misma terminal: su - analista2. No uses exit ni cierres la pestaña.

Nivel 2 · Persistencia

analista2 · medio · 60 min

Quien entra una vez quiere poder volver. Durante su visita, el atacante preparó más de una forma de regresar aunque le cerraran la puerta. No todo lo que parece sospechoso es suyo: hay software legítimo que solo parece raro. Aquí separas lo que dejó el atacante de lo que es normal y ordenas su acceso en una línea de tiempo.

Lo que te pregunta ctf-flag 2

  1. ¿A qué usuario se le agregó la clave SSH del atacante, y qué comentario tiene esa clave?
  2. ¿Qué unidad systemd es falsa? (nombre)
  3. ¿Qué nombre oculta el cambio en .bashrc? (solo el nombre)

Para tu reporte, además: qué ejecuta la unidad falsa y la línea de tiempo del acceso.

Cómo sacas la flag

Empieza con cd /cases/nivel2 y cat CASO.txt.

Con las respuestas, corre ctf-flag 2 y entrega la flag con tu alias. Escribe solo lo que pide cada pregunta.

Cómo subes al nivel 3

La contraseña de analista3 está escondida en la evidencia de este nivel.

Cuando la tengas: su - analista3.

Nivel 3 · Ofuscación y manipulación

analista3 · difícil · 90 min

Al final, el atacante intentó que nadie notara su paso: escondió lo que hacían sus herramientas, tocó los registros del sistema y cambió piezas del propio sistema para pasar desapercibido. Aquí ya no basta con leer: hay que comprobar que lo que ves es lo que debería estar ahí.

Preguntas del caso

  1. Decodifica el script ofuscado: ¿qué hace y a dónde "se conecta"?
  2. ¿Qué logs muestran huecos o manipulación, y cómo lo pruebas?
  3. ¿Qué binario no coincide con su hash de referencia?
  4. ¿Qué artefacto de tipo LD_PRELOAD dejó el atacante?
  5. Reconstruye el incidente completo y mapéalo a MITRE ATT&CK.

Cómo sacas la flag

Empieza con cd /cases/nivel3 y cat CASO.txt.

Aquí no hay ctf-flag: la flag aparece en la evidencia al resolver la pregunta 1. Entrégala con tu alias.

Cierre

Termina con el reporte final del incidente: línea de tiempo completa y técnicas de MITRE ATT&CK, cada una con su evidencia.

El recorrido completo

analista1→ctf-flag 1→entregar flag→ su - analista2→ctf-flag 2→entregar flag→ su - analista3→flag en la evidencia→entregar flag→reporte

05 / Metodología

Piensa como analista

No se trata solo de encontrar una flag, sino de poder explicar cómo llegaste a ella.

01

Lee el caso

Anota las preguntas antes de empezar.

02

Inventaria

¿Qué fuentes tienes? Logs, cron, servicios, homes, directorios temporales.

03

Busca anomalías

Lo nuevo, lo oculto, lo que ocurre fuera de horario, lo que no encaja.

04

Valida

¿Tiene una explicación legítima? ¿Qué otra evidencia lo confirma? Descarta señuelos con argumentos.

Caja de herramientas

Para…Comandos
Leer archivos y logsless cat -A head tail wc -l
Buscar y filtrargrep -E grep -v awk cut sort uniq -c
Encontrar archivosls -la find / -name '.*' find / -newer <archivo>
Fechas de archivosstat ls -la --time-style=full-iso
Persistencials /etc/cron.d/ systemctl list-unit-files systemctl cat <unidad>
Usuarios y accesos/etc/passwd last ~/.ssh/authorized_keys ~/.bashrc
Contenido codificadofile strings base64 -d zcat xxd
Integridadsha256sum cmp diff

Para ocultar los errores de permiso: find / -name '...' 2>/dev/null.

06 / Reglas

Investiga. No ataques.

Permitido

  • Leer, buscar y decodificar evidencia.
  • Analizar y filtrar logs.
  • Calcular hashes.
  • Copiar archivos a tu home.
  • Tomar notas (fuera de la máquina) y armar tu línea de tiempo.

No permitido

  • Intentar ser root o escalar privilegios: no es parte del reto.
  • Atacar la infraestructura (Cloudflare, AWS, la terminal web).
  • Atacar a otros participantes.
  • Compartir flags o contraseñas: las flags son únicas de tu máquina y una flag ajena se rechaza.

07 / Evaluación

Se evalúa el resultado y el razonamiento

Una flag sin las respuestas del nivel vale poco: lo que se evalúa es la investigación.

NivelPuntosTiempo
1 · Fácil10045 min
2 · Medio15060 min
3 · Difícil20090 min
Total4503 h 15 min
  • En cada nivel: la flag (30 %), las respuestas (40 %) y la evidencia con los señuelos descartados (30 %).
  • Flags falsas: cada una que entregues resta 10 puntos. Valida antes de entregar.
  • Pistas: hasta 2 por nivel, a cambio del 15 % de ese nivel cada una.
  • Tiempo: si se acaba el de un nivel, el staff te da acceso al siguiente.
  • Empates: gana quien llegó antes a su última flag.

¿Listo para investigar?

El incidente ya ocurrió.
Ahora encuentra la evidencia.