Love

Publicado: 16 de Junio de 2025 Autor: Josรฉ Miguel Romero aKa x3m1Sec Dificultad: โญ Easy
๐ Descripciรณn
Love es una mรกquina Windows de dificultad fรกcil de HackTheBox que presenta un sistema de votaciรณn PHP vulnerable. La explotaciรณn inicial se basa en el Server-Side Request Forgery (SSRF) para acceder a servicios internos y obtener credenciales de administrador. Una vez autenticados, se explota una vulnerabilidad de ejecuciรณn remota de cรณdigo (RCE) en el sistema de votaciรณn para ganar acceso inicial. La escalada de privilegios se logra abusando de la polรญtica de Windows "AlwaysInstallElevated" para ejecutar instaladores MSI con privilegios de SYSTEM.
๐ฏ Informaciรณn de la Mรกquina
IP
10.10.10.239
SO
Windows 10 Pro 19042
Servicios principales
HTTP (80), HTTPS (443), MySQL (3306), WinRM (5985/5986)
Dominios
staging.love.htb, love.htb
๐ญ Reconocimiento
๐ Ping para verificaciรณn en base a TTL
๐ก Nota: El TTL cercano a 128 sugiere que probablemente sea una mรกquina Windows.
๐ Escaneo de puertos TCP
๐ ๏ธ Enumeraciรณn de servicios
๐ Configuraciรณn de hosts
En el puerto 443 el nmap nos devuelve el nombre del dominio, el cual es staging.love.htb.
๐ Enumeraciรณn Web
๐ฅ๏ธ Puerto 80 HTTP (http://10.10.10.239/)
A priori no vemos gran cosa salvo un panel de login de lo que parece ser una aplicaciรณn para un sistema de votaciรณn:

Vemos que para autenticarnos necesitamos un ID de votante y una contraseรฑa.
๐ Fuzzing de directorios - Puerto 80
Usamos dirsearch para realizar fuzzing de directorios y ver si encontramos algunos recursos interesantes que analizar a nuestro scope:
### ๐ Puerto 443 HTTPS (staging.love.htb)
Al acceder al dominio staging.love.htb encontramos una aplicaciรณn web diferente.

๐ Fuzzing de directorios - Puerto 443
๐จ Explotaciรณn - SSRF (Server-Side Request Forgery)
๐ Descubrimiento de vulnerabilidad SSRF
Vemos algo interesante a la hora de acceder a la opciรณn "Demo" y nos dirige al recurso beta.php. Nos pide introducir una URL con el sitio que queremos analizar para ver si tiene malware.

๐งช Prueba de concepto SSRF
Primero verificamos si podemos alcanzar nuestro host de ataque iniciando un servidor web en Python y haciendo una peticiรณn.

Luego probamos si podemos acceder a servicios internos referenciando la direcciรณn IP de la propia mรกquina hacia el puerto 5000:
URL probada: http://127.0.0.1:5000

Al explotar la vulnerabilidad SSRF, encontramos unas credenciales que parecen ser para el panel de administrador:

Credenciales obtenidas: admin:@LoveIsInTheAir!!!!
๐ฅ Explotaciรณn - RCE en Voting System
๐ Identificaciรณn del software
El panel de administraciรณn pertenece a una aplicaciรณn llamada Sourcecodester Voting System.

๐ต๏ธ Bรบsqueda de exploits
Buscamos exploits pรบblicos para el software Voting System 1.0: Parece que el panel pertenece a una aplicaciรณn llamada sourcecodester

Encontramos un exploit que permite RCE autenticada, perfecto para nuestras credenciales obtenidas.
โ๏ธ Configuraciรณn del exploit
Deberemos editar los parรกmetros relacionados con la IP y el puerto del servicio donde se encuentra el aplicativo asรญ como los relacionados con la IP y el puerto donde recibiremos la shell reversa.
Tambien debemos adaptar los parรกmetros INDEX_PAGE, LOGIN_URL, VOTE_URL y CALL_SHELL para que la ruta corresponda con la del aplicativo, ya que por ejemplo el /votesystem/ no existe en la aplicaciรณn que estamos tratando de explotar:
La configuraciรณn quedarรญa de esta forma:
๐ฏ Ejecuciรณn del exploit
๐ช Acceso inicial obtenido
Una vez lanzado el exploit recibimos la reverse shell ganando acceso como usuario phoebe.

Una vez dentro revisamos el directorio Desktop del usuario Phoebe para obtener la primera flag:
## ๐ Escalada de privilegios
๐ Enumeraciรณn de privilegios
Comenzamos a enumerar y realizar comprobaciones en busca de una vรญa potencial para la escalada de privilegios y encontramos que AlwaysInstallElevated estรก activo.
๐ ยฟQuรฉ es AlwaysInstallElevated?
Cuando AlwaysInstallElevated estรก habilitada (0x1), permite que los archivos .msi (Microsoft Installer) se ejecuten con privilegios de administrador, incluso si el usuario no tiene derechos administrativos.
๐ ๏ธ Generaciรณn del payload malicioso
Para abusar de esto y escalar privilegios podemos:
Generar un payload msi con el que ganar una reverse shell de altos privilegios
Usar el script powerup para cargar el mรณdulo y aรฑadir un usuario nuevo al sistema.
En este caso que vamos a optar por generar un payload con msvenom de la siguiente forma:
Lo transferimos al host Windows usando un servidor web en python y usando curl:
Ahora iniciamos un listener donde recibiremos la reverse shell con privilegios NT system
๐ Root Flag
Ejecutamos el binario y recibimos la reverse shell de altos privilegios

Ya podemos obtener la flag root.txt
Last updated