Ir al contenido

Winfake

Este documento detalla la resolución completa de la máquina Winfake, desarrollada por d1se0 para la plataforma DockerLabs y clasificada como fácil.

El objetivo es documentar el proceso completo de compromiso del sistema, desde la enumeración inicial hasta la escalada de privilegios, analizando cada vector de ataque y destacando las vulnerabilidades presentes.

La metodología utilizada comprende tres fases fundamentales:

  1. Reconocimiento: Identificación de servicios expuestos y análisis del contenido web.
  2. Explotación: Obtención de acceso inicial mediante credenciales derivadas del análisis estático y fuerza bruta.
  3. Escalada de privilegios: Uso de pistas internas y malas prácticas para obtener acceso a root.

Todas las acciones fueron realizadas en el entorno aislado proporcionado por DockerLabs.


AtributoValor
NombreWinfake
Autord1se0
DificultadFácil
Fecha16/07/2025
PlataformaDockerLabs

Se descomprime y despliega la máquina:

Ventana de terminal
unzip "Winfake.zip"
sudo bash auto_deploy.sh "Winfake.tar"

El script arroja la IP interna asignada:

IP asignada


Ventana de terminal
mkdir -p Winfake/{content,exploits,nmap,gobuster,scripts}
cd Winfake
Ventana de terminal
nmap -p- --open -sS --min-rate 5000 -vvv -n 172.17.0.2 -oG allPorts
extractPorts allPorts

Puertos visibles:

  • 22/tcp – SSH
  • 80/tcp – HTTP

Puertos abiertos


Se realiza un escaneo de directorios:

Ventana de terminal
gobuster dir \
-u http://172.17.0.2/ \
-w /usr/share/seclists/Discovery/Web-Content/directory-list-lowercase-2.3-medium.txt \
-x php,html,txt,js

gobuster scan

Ruta relevante encontrada:

  • /login.html

index content

Al revisar el código fuente aparecen pistas importantes:

1) Comentario oculto con un artículo “falso”

Sección titulada «1) Comentario oculto con un artículo “falso”»

article hidden

En el <body> aparece el valor top: pipe;, lo cual no es válido y sugiere que pipe podría ser un usuario.

error in css code

3) Acrónimo oculto entre las letras iniciales

Sección titulada «3) Acrónimo oculto entre las letras iniciales»

La primera letra de cada artículo forma:

WINSERVERROOTFAKENEWS

Esta pista resultará crucial más adelante.


Ya contamos con un posible usuario: pipe. Procedemos con fuerza bruta sobre SSH:

Ventana de terminal
hydra -l pipe -P rockyou.txt -t 64 ssh://172.17.0.2

Tras unos minutos, se obtiene:

hydra result

Con la credencial válida, iniciamos sesión:

ssh login


El entorno parece emular una PowerShell, simulando un sistema Windows, pero realmente es Linux.

Dentro del sistema encontramos un archivo user.txt:

user.txt

Aunque no contiene información directa, recordamos la pista del acrónimo:

WINSERVERROOTFAKENEWS

Se prueba como contraseña de root en varias variantes, hasta que finalmente funciona la siguiente:

WinServerRootFakeNews

Con ello obtenemos acceso root:

root


  1. Comentarios y pistas sensibles expuestas en el código fuente del sitio. La presencia de mensajes ocultos, artículos incompletos y acrónimos construidos dentro del HTML permiten revelar información crítica.

  2. Información de usuario filtrada accidentalmente (“pipe”). Un error en el CSS (top: pipe;) expone un nombre de usuario válido.

  3. Contraseñas extremadamente débiles o basadas en pistas obvias. La contraseña de root se deriva directamente del acrónimo revelado en la web.

  4. Servicio SSH sin restricciones de autenticación. No existen mecanismos antibruteforce, permitiendo ataques con diccionarios sin limitación.

  5. Diseño engañoso del entorno, simulando Windows con PowerShell. Aunque es intencional en el CTF, en un entorno real causaría confusión en los administradores y podría ocultar errores o configuraciones inseguras.


  1. Eliminar cualquier pista o información sensible del código HTML y CSS. Los comentarios deben ser revisados y removidos antes de desplegar un sistema en producción.

  2. Implementar controles antibruteforce en SSH.

    • Fail2ban
    • Reducción de MaxAuthTries
    • Autenticación por claves en lugar de contraseñas
    • Bloqueo por IP tras múltiples intentos
  3. Fortalecer políticas de contraseñas. Evitar contraseñas derivadas de nombres, frases internas o patrones predecibles.

  4. Evitar patrones en acrónimos o textos ocultos que puedan proporcionar contraseñas o usuarios.

  5. Auditar periódicamente las configuraciones del servidor web y del sistema. Un análisis rápido del código fuente permitió revelar todos los vectores de ataque.