¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!
Joomla-CMS-Full-Lifecycle-Pentest — Un proyecto exhaustivo de pruebas de penetración de ciclo de vida completo sobre Joomla 4.2.5, explotando CVE-2023-23752 en un entorno de laboratorio dockerizado. | Kitploit
Un proyecto exhaustivo de pruebas de penetración de ciclo de vida completo sobre Joomla 4.2.5, explotando CVE-2023-23752 en un entorno de laboratorio dockerizado.
Pruebas de Penetración de CMS de Ciclo Completo (Joomla 4.2.5)
📌 Resumen del Proyecto
Este proyecto demuestra una prueba de penetración de ciclo completo realizada sobre un CMS de código abierto (Joomla 4.2.5). Toda la prueba sigue metodologías estándar (OWASP/PTES) desde el despliegue del laboratorio hasta la explotación, post-explotación y la toma de control de la cuenta administrativa.
🛠️ Fase 1: Guía de Despliegue del Laboratorio (Paso a Paso)
Siga estos pasos exactos para desplegar y replicar este entorno vulnerable en su infraestructura local.
Paso 1: Preparar la Máquina Objetivo (Servidor VM)
Encienda su VM de Ubuntu objetivo y conéctese por SSH (o abra la terminal directamente dentro de la VM).
Instale Docker y la utilidad Compose según su versión de Ubuntu:
Abra un nuevo archivo llamado docker-compose.yml usando el editor nano:
root@kitploit:~
nano docker-compose.yml
Copie el contenido completo del archivo docker-compose.yml disponible en este repositorio y péguelo dentro de la terminal.
Guarde y salga del editor presionando: Ctrl + O y luego Enter, después Ctrl + X.
Paso 3: Ejecutar el Entorno
Inicie los contenedores en segundo plano (modo separado/detached) ejecutando:
root@kitploit:~
sudo docker compose up -d
Espere unos momentos a que finalice la descarga. Verifique que los servicios se estén ejecutando activamente:
root@kitploit:~
sudo docker compose ps
Paso 4: Acceder y Configurar desde la Máquina Anfitriona (Caja del Atacante)
Vuelva a su Máquina Anfitriona Principal (o Caja de Kali Linux).
Abra su navegador web y navegue a la dirección IP de la VM objetivo en el puerto 8080:
root@kitploit:~
http://<YOUR_VM_IP>:8080
Siga el asistente de instalación de Joomla e ingrese estas credenciales exactas de base de datos para vincular los contenedores:
Tipo/Conector de Base de Datos: MySQL (PDO)
Nombre del Host:db
Usuario:joomla_user
Contraseña:joomlapassword
Nombre de la Base de Datos:joomla_db
🔍 Fase 2: Reconocimiento y Escaneo
Actuando como atacante, se desplegaron herramientas de escaneo de red y específicas de CMS desde Kali Linux:
Nmap: Se utilizó para identificar puertos y servicios abiertos en el puerto 8080.
JoomScan / CMSeek: Se utilizaron para identificar la versión exacta del CMS (Joomla 4.2.5).
⚡ Fase 3: Análisis de Vulnerabilidades y Explotación
Basado en la identificación de la versión, la investigación de vulnerabilidades condujo al descubrimiento de CVE-2023-23752 (Control de Acceso Inadecuado en la API Principal de Joomla).
Ejecución del Ataque:
Utilizando Metasploit Framework (msfconsole), se ejecutó el módulo de exploit especializado contra el objetivo:
Resultado: Se extrajeron exitosamente las credenciales de base de datos en texto claro (joomla_user / joomlapassword).
🔑 Fase 4: Post-Explotación y Toma de Control de la Cuenta
En una evaluación del mundo real, las malas configuraciones a menudo se encadenan. Para probar la Reutilización de Credenciales, se utilizó la contraseña de base de datos filtrada para intentar una toma de control administrativa:
Se navegó al panel de inicio de sesión del administrador de Joomla (/administrator).
Se probó la contraseña de base de datos extraída contra el panel de inicio de sesión de administrador.
Se autenticó exitosamente como Super Usuario, obteniendo acceso administrativo completo a la configuración principal del CMS sin activar ninguna alerta.
📝 Fase 5: Remediación y Mitigación
Para asegurar el sistema contra CVE-2023-23752:
Actualización: Actualice Joomla a la versión 4.2.8 o superior de inmediato.
Seguridad de Red: Restrinja el acceso a los endpoints /api utilizando Firewalls de Aplicaciones Web (WAF) o bloques de configuración a nivel de servidor.