HTB Devvortex

5 de feb. de 2024

(Nivel Fácil)

Enumeración:

Cuando intentamos ir a la página principal, no podemos ver mucha información. No tenemos ningún formulario, página de inicio. Intentamos abrir la página con burp y navegar para ver si encontramos algo adicional, pero no hay nada.

Cuando intentamos buscar algún directorio con gobuster, dirb o similar, no tenemos nada adicional.

El siguiente paso es buscar algún sub-directorio. Para eso podemos usar ffuf: Podemos ejecutarlo de la siguiente manera:

Bingo! Podemos dar algún paseo por la página, además, podemos hacer fuzzing de la misma manera, pero ahora para los sub-directorios:

Si vamos a la página de "Administrator" podemos ver lo siguiente:

Joomla es un CMS, puedes encontrar más información acá:

Joomla.org
The Flexible Platform Empowering Website Creators

En toda honestidad, el siguiente paso fue ver cuáles vulnerabilidades existen en Joomla, y nos encontramos con esto:

Joomla! CVE-2023-23752 to Code Execution - Blog - VulnCheck
CVE-2023-23752 is an information leak affecting Joomla! 4.0 - 4.7. How can an attacker use this vulnerability to achieve code execution? How many internet-facing systems are at risk?

Y ahora, empezamos nuestro acceso inicial.

Acceso Inicial:

Intentamos ir a la siguiente URL

http://dev.devvortex.htb/api/index.php/v1/config/application?public=true

Ahí vemos, el usuario, y además una contraseña. Con esos credenciales intentamos ingresar a la página de administrador de Joomla:

Bingo!

Ya de entrada vemos que está corriendo PHP, entonces, podríamos buscar donde ejecutar un script como pentestmonkey reverse php.

Intentamos hacerlo en el sitio principal, pero lastimosamente tiene permisos de lectura, pero no de escritura; sin embargo, la página de administrador si tiene permisos para modificarla, así que podemos intentar subir nuestro pentestmonkey ahí para lograr hacer un reverse shell a nuestra máquina:

Vamos a System-->Site templates y el "drop down" menú, podemos escoger "Administrator".

Dentro del index.php podemos subir nuestro php script y poner el listener en nuestra maquina con netcat "nc -lvp 1234". Cuando le damos "Save" o "Preview", de inmediato obtenemos:

Ya con esto, tenemos un acceso inicial :).

Acceso inicial:

El usuario en este acceso es "www-data" así que tenemos que buscar una manera de escalar privilegios. Si volvemos al link con el CVE de joomla, vemos que este software usa "MySQL" database y el nombre de la base de datos es "joomla".

Podemos intentar usar los credenciales que obtuvimos para ver las tablas de la base de datos:

mysql -u lewis -h localhost joomla -p

El siguiente prompt es para el password que pudimos encontrar. Ahora, podemos ver las tablas que existen en esta BD.

Podemos listar la tabla de usuarios:

Logramos obtener lo que parece un hash para el usuario "logan". Podemos intentar "crack" la contraseña con John o con hashcat. Mi preferencia personal es ponerlo en un archivo y luego ejecutar el comando:

john --format=bcrypt hash.txt -w=/usr/share/wordlist/rockyou.txt

Y como es de esperarse, encontramos la contraseña. Ahora intentamos hacer SSH con estos credenciales y listo!

En la carpeta "home", encontraremos la user.txt.

Escalacion de Privilegios

Una de los primeros pasos es ver que comandos puede ejecutar el usuario como usuario elevado:

Una vez mas, intentamos buscar que hace este proceso si quedaste igual que yo (no estaba seguro que hace).

Increiblemente, una de los primeros links es un exploit:

GitHub - diego-tella/CVE-2023-1326-PoC: A proof of concept for CVE-2023–1326 in apport-cli 2.26.0
A proof of concept for CVE-2023–1326 in apport-cli 2.26.0 - GitHub - diego-tella/CVE-2023-1326-PoC: A proof of concept for CVE-2023–1326 in apport-cli 2.26.0

Cuando intentamos correr el comando como root y luego escapamos el "less command", podemos ver como el usuario se queda como root.

Podemos correr el comando apport-cli --file-bug con cualquier opción, luego usamos el "V" para verlo y escapamos del programa y quedamos como root.

Entramos a la carpeta home para root, y ahí vemos lo siguiente:

Y listo! Maquina dominada!