Devvortex es una máquina Linux de dificultad fácil que cuenta con un CMS Joomla que es vulnerable a la divulgación de información. Acceder al archivo de configuración del servicio revela credenciales de texto simple que conducen al acceso administrativo a la instancia de Joomla. Con acceso administrativo, la plantilla de Joomla se modifica para incluir código PHP malicioso y obtener un shell. Después de obtener un shell y enumerar el contenido de la base de datos, se obtienen credenciales en formato hash, que se descifran y conducen al acceso SSH a la máquina. La enumeración posterior a la explotación revela que el usuario tiene permiso para ejecutar apport-cli como root, lo que se aprovecha para obtener un shell root.
Enumeración
Iniciamos enumerando los puertos abiertos de la maquina victima
Encontramos que los puertos abiertos 22 y 80. Luego enumeramos los servicios que se ejecutan en los puertos.
Vemos que en el puerto 22 se encuentra un servicio ssh y en el puerto 80 http
Puerto 80
Revisando el servicio web encontramos el siguiente sitio web.
20240719233332.png
Enumeré cada uno de los directorios y pestañas, pero no logre encontrar nada interesante. Luego procedí a enumerar subdominios
Encontramos un subdominio que es dev y la añadimos a nuestro /etc/hosts
Subdominio - dev.devvortex
20240719234002.png
Teniendo el subdominio iniciamos a enumerar los directorios
20240720000545.png
Los directorios que encontramos son muchos y revisando nos lleva a un panel de inicio de sesión de joomla
20240720000635.png
Enumerando la versión de joomla en la siguiente ruta podremos ver la versión
20240720002146.png
Observamos que es la versión 4.2.6
Explotación
Teniendo la versión procedemos a buscar alguna vulnerabilidad y nos encontramos con una.
Para entender mejor dicha vulnerabilidad te recomiendo revisar el POC y entender de donde logra obtener dichas credenciales.
Ejecutando el exploit podemos obtener unas credenciales:
20240720002821.png
Haciendo uso de estas credenciales logramos iniciar sesion en el panel de joomla
20240720003015.png
Para obtener una revershell un cms como Joomla podemos ir a system > site templates
20240720004252.png
Luego hacemos click en Cassiopela Details and Files
20240720004311.png
Ahora editamos el archivo error.php
20240720005524.png
Agregamos system('ls -la') y guardamos. Luego vamos a generar un error en el sitio web intencionalmente y se observa que podemos ejecutar comandos.
20240720005614.png
Ahora vamos a obtener una shell haciendo uso una revershell.
20240720005738.png
Podemos ocasionar un error en el siguiente enlace http://dev.devvortex.htb/dasdad. Luego de ocasionar el error obtendremos una shell
Escalada de privilegios
Usuario : www-data
20240720005800.png
Estuve enumerando el sistema como el usuario www-data pero no encontré nada interesante, por lo que hice uso de las credenciales de la base de datos que anteriormente encontramos
Las credenciales me permitieron ingresar a la base de datos
20240720010940.png
Encontré la base de datos joomla con las siguientes tablas:
20240720011007.png
Enumerando cada una de las tablas, la que contiene credenciales es la tabla sd4fg_users
20240720011039.png
Las credenciales que encontramos en la base de datos están encriptadas. Haciendo uso de la herramienta de jhon the Ripper podemos obtener la contraseña en texto plano.
La contraseña en texto plano seria:
Usuario : logan
Haciendo uso de las credenciales podemos iniciar sesión en el servicio ssh
20240720011128.png
Enumerando los privilegios que tiene dicho usuario observamos que el usuario actual puede ejecutar apport-cli de manera privilegiada
20240720011239.png
Investigando un poco por internet me encontré con el siguiente POC:
www-data@devvortex:~/dev.devvortex.htb$ mysql -u lewis -p
Enter password:
❯ john --wordlist=/usr/share/wordlists/rockyou.txt hash_logan
Using default input encoding: UTF-8
Loaded 1 password hash (bcrypt [Blowfish 32/64 X3])
Cost 1 (iteration count) is 1024 for all loaded hashes
Will run 4 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
tequieromucho (?)
1g 0:00:00:07 DONE (2024-07-20 01:08) 0.1288g/s 180.9p/s 180.9c/s 180.9C/s lacoste..harry
Use the "--show" option to display all of the cracked passwords reliably
Session completed.