Los 40 ladrones
Introducción
Sección titulada «Introducción»Este documento describe la resolución completa de la máquina Los 40 ladrones, creada por firstatack para la plataforma DockerLabs y clasificada como fácil.
El objetivo es ofrecer un análisis claro, ordenado y técnicamente fundamentado que incluya:
- Identificación de vectores de entrada.
- Explotación mediante técnicas de enumeración y uso de utilidades de red.
- Descubrimiento y uso de artefactos sensibles presentes en la aplicación.
- Escalada de privilegios mediante uso controlado de
sudo.
La metodología se organiza en tres fases principales:
- Reconocimiento: detección de servicios y análisis del contenido web.
- Explotación: activación de servicios ocultos y obtención de acceso inicial.
- Escalada de privilegios: aprovechamiento de privilegios
sudopara obtener root.
Todas las pruebas se realizaron en el entorno aislado ofrecido por DockerLabs.
Información General
Sección titulada «Información General»| Atributo | Valor |
|---|---|
| Nombre | Los 40 ladrones |
| Autor | firstatack |
| Dificultad | Fácil |
| Fecha | 04/07/2024 |
| Plataforma | DockerLabs |
Paso 0 — Preparación y despliegue
Sección titulada «Paso 0 — Preparación y despliegue»Descomprimir la máquina:
unzip "Los 40 ladrones.zip"Arrancar el contenedor:
sudo bash auto_deploy.sh "Los 40 ladrones.tar"El script de despliegue devuelve la IP interna que será utilizada durante todo el análisis:

Paso 1 — Reconocimiento
Sección titulada «Paso 1 — Reconocimiento»1.1 Organización del entorno de trabajo
Sección titulada «1.1 Organización del entorno de trabajo»Organizar un directorio donde centralizar hallazgos y herramientas mejora la trazabilidad:
mkdir -p "Los 40 ladrones"/{content,exploits,nmap,gobuster,scripts}cd "Los 40 ladrones"Sugerencia: para evitar problemas con espacios en nombres, en flujos automatizados conviene usar guiones bajos (por ejemplo
los_40_ladrones), pero aquí mantengo el nombre original por coherencia con el repositorio.
1.2 Escaneo de puertos
Sección titulada «1.2 Escaneo de puertos»Se realiza un escaneo de puertos TCP para identificar servicios expuestos:
nmap -p- --open -sS --min-rate 5000 -vvv -n 172.18.0.2 -oG allPortsextractPorts allPortsPuertos detectados:
- 80/tcp — HTTP

Observación: en este objetivo el servicio HTTP es el vector inicial; no se observa SSH abierto antes de realizar acciones adicionales.
1.3 Enumeración web (puerto 80)
Sección titulada «1.3 Enumeración web (puerto 80)»Se usó gobuster para descubrir rutas y archivos accesibles desde el servidor web:
gobuster dir \ -u http://172.18.0.2/ \ -w /usr/share/seclists/Discovery/Web-Content/directory-list-lowercase-2.3-medium.txt \ -x php,html,txt,js \ -t 200
Se detectaron dos recursos de interés:
index.html— página por defecto del servidor Apache.qdefense.txt— archivo de texto accesible que contiene una pista operativa.
El contenido de qdefense.txt sugiere una secuencia de puertos (knock sequence) que activa un servicio adicional (knockd) en la máquina objetivo. Esta es la pista clave para los siguientes pasos.
Paso 2 — Explotación (acceso inicial)
Sección titulada «Paso 2 — Explotación (acceso inicial)»2.1 Activación de puertos mediante port knocking
Sección titulada «2.1 Activación de puertos mediante port knocking»La pista contenida en qdefense.txt indicaba la secuencia de puertos a golpear (por ejemplo 7000,8000,9000). Se usó la utilidad knock para enviar la secuencia:
knock 172.17.0.2 7000,8000,9000 -v
Nota: observa la inconsistencia habitual en entornos CTF entre IPs usadas en distintos ejemplos (172.18.0.2 vs 172.17.0.2). Debes usar la IP que te devolvió el script de despliegue. Aquí se ejemplifica el flujo: primero se “golpean” los puertos en la IP objetivo.
Tras enviar la secuencia se re-ejecutó un escaneo de puertos para comprobar cambios en el estado de los servicios:
nmap -p- -sS -n 172.17.0.2 -oG after_knockextractPorts after_knockLa segunda pasada mostró que 22/tcp (SSH) se encontraba ahora abierto:

2.2 Fuerza bruta de credenciales SSH
Sección titulada «2.2 Fuerza bruta de credenciales SSH»La pista en qdefense.txt también sugería un nombre de usuario (toctoc). Con SSH disponible y un usuario objetivo, se intentó un ataque por diccionario con hydra (solo en entorno de laboratorio):
hydra -l toctoc -P /usr/share/wordlists/rockyou.txt ssh://172.17.0.2
Tras la ejecución se obtuvo una credencial válida y se estableció sesión SSH con el usuario toctoc.
Paso 3 — Escalada de privilegios
Sección titulada «Paso 3 — Escalada de privilegios»Una vez dentro como toctoc, procedimos a identificar posibilidades de escalada.
3.1 Revisión de privilegios sudo
Sección titulada «3.1 Revisión de privilegios sudo»Listar los comandos permitidos por sudo para el usuario:
sudo -lSalida relevante (captura):

La salida indica que el usuario puede ejecutar /opt/bash con privilegios de root sin necesidad de contraseña.
3.2 Abuso de /opt/bash para obtener root
Sección titulada «3.2 Abuso de /opt/bash para obtener root»Razonamiento: si un binario se puede ejecutar como root y permite interacción o ejecución de comandos arbitrarios (por ejemplo, un intérprete de comandos o una utilidad que permite abrir shells), se puede utilizar para invocar una shell privilegiada.
Ejecución como toctoc:
sudo /opt/bashEsto proporciona una shell con UID 0, por lo tanto acceso root:

Comentario de seguridad: conceder ejecución sin restricciones de binarios que actúan como intérpretes o que permiten ejecutar subcomandos es una práctica insegura. El uso de sudo debe restringirse a comandos específicos y, cuando sea posible, evitar NOPASSWD para utilidades con alto impacto.
Fallos de Seguridad Identificados
Sección titulada «Fallos de Seguridad Identificados»- Exposición de un mecanismo de activación (port knocking) documentado públicamente: la pista en
qdefense.txtfacilita el re-descubrimiento de servicios ocultos. Este tipo de información no debe publicarse o debe protegerse. - Servicios que cambian de estado mediante knockd sin control adicional: activar servicios a través de secuencias conocidas puede facilitar el acceso si la secuencia es descubierta o incluida en archivos accesibles.
- Cuenta con credenciales débiles o predecibles: un usuario objetivo (
toctoc) fue susceptible a un ataque por diccionario; políticas de contraseñas robustas son necesarias. - Permisos
sudodemasiado permisivos: permitir ejecutar/opt/bashcomo root sin restricciones representa una vulnerabilidad crítica que permite elevación directa a root.
Recomendaciones
Sección titulada «Recomendaciones»-
Eliminar pistas operativas del contenido público
- No publicar archivos que describan mecanismos de seguridad o secuencias de activación (por ejemplo, knock sequences).
-
Fortalecer el control sobre servicios dinámicos (knockd)
- Usar mecanismos adicionales de autenticación o listas blancas de IP para controlar quién puede activar servicios.
- Evitar dejar la secuencia escrita en archivos accesibles públicamente.
-
Política de contraseñas y protección contra fuerza bruta
- Forzar contraseñas largas y únicas; habilitar bloqueo de cuentas o rate-limiting tras intentos fallidos.
- Monitorizar intentos de acceso sospechosos y establecer alertas.
-
Revisar y restringir reglas
sudo- No permitir
NOPASSWDpara binarios que brinden capacidad de ejecución de comandos o shells. - Reemplazar permisos genéricos por comandos concretos y, si es necesario, envolverlos con scripts controlados que validen argumentos.
- No permitir
-
Seguridad en capas
- Implementar segmentación de red y firewall para proteger servicios sensibles.
- Registrar y auditar el uso de herramientas administrativas y cambios de estado en servicios.
-
Pruebas periódicas y hardening
- Realizar revisiones de configuración y pruebas de penetración internas con regularidad.
- Mantener inventario de servicios y control de cambios para evitar fugas de información operativa.