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

Parรกmetro
Valor

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