
Kit moderno de ataque de autenticación para Joomla J3 / J4 / J5 - CVE-2023-23752 · CVE-2023-23755 · CVE-2025-25227

Kit moderno de ataques de autenticación para Joomla
J3 / J4 / J5 - CVE-2023-23752 · CVE-2023-23755 · CVE-2025-25227
Kit de ataques de credenciales para Joomla que cubre las versiones 3, 4 y 5 del CMS. Seis subcomandos manejan la cadena de ataque completa de principio a fin:
detect - huella de versión (XML del manifiesto → meta generador → marcado de administración)enum - CVE-2023-23752: recolección no autenticada de la API (nombres de usuario, host/usuario/contraseña de BD, credenciales SMTP, secreto de la aplicación)brute - fuerza bruta concurrente de inicio de sesión de administración con aislamiento de sesión por trabajador y clasificación de cuatro resultados (success / mfa-required / invalid / blocked)mfa-brute - CVE-2023-23755: ataque exhaustivo de TOTP de 6 dígitos contra la pantalla MFA cautivamfa-bypass - CVE-2025-25227: bypass de MFA mediante view=methods (y otras cuatro vistas/tareas candidatas) en la sesión medio autenticadachain - piloto automático completo: detect → enum → brute → pivote automático de bypass de MFA cuando la fuerza bruta llega a una pantalla cautivaBinario estático único, sin dependencias en tiempo de ejecución. Concurrencia nativa mediante goroutines con cookie jars por trabajador. Salida JSONL para ingesta en SIEM. Soporte de proxies HTTP/HTTPS/SOCKS5. Verificado de extremo a extremo contra laboratorios docker de Joomla 3.10, 4.2.7 y 5.4.6.
# Option A - Go install (requires Go 1.22+)
go install github.com/rvzsec/joombrute/cmd/joombrute@latest
# Option B - Pre-built binary from releases
curl -L -o joombrute https://github.com/rvzsec/joombrute/releases/latest/download/joombrute-linux-amd64
chmod +x joombrute
# Option C - Build from source
git clone https://github.com/rvzsec/joombrute
cd joombrute
make
joombrute detect -u <target>
joombrute enum -u <target>
joombrute brute -u <target> --user admin -w rockyou.txt -c 20
joombrute mfa-brute -u <target> --user admin --password <pw> -c 50
joombrute mfa-bypass -u <target> --user admin --password <pw>
joombrute chain -u <target> -w rockyou.txt -c 20
# JSONL output for piping / SIEM ingest
joombrute --json brute -u <target> --user admin -w rockyou.txt > hits.jsonl
CVE-2025-25227 explota MultiFactorAuthenticationHandler::needsMultiFactorAuthenticationRedirection(), que llama a isMultiFactorAuthenticationPage() sin la bandera $onlyCaptive: la lista exenta del bypass incluye silenciosamente las vistas de gestión de MFA (view=methods, view=method, view=callback, task=method.add …) a las que una sesión medio autenticada puede navegar sin resolver el desafío cautivo.
detect - huella mediante el manifiesto joomla.xml → <meta name="generator"> → marcado de administraciónenum - CVE-2023-23752: recolección no autenticada de la API (usuarios, host/usuario/contraseña de BD, SMTP, secreto de la aplicación)brute - fuerza bruta del formulario de administración, aislamiento de sesión por trabajador, clasificación de cuatro resultados (success / mfa-required / invalid / blocked)mfa-brute - CVE-2023-23755: fuerza bruta TOTP de 6 dígitos en la pantalla cautivamfa-bypass - CVE-2025-25227: sonda de bypass por comprobación de estado (no destructiva)chain - totalmente automático: detect → enum → brute → sonda de bypass de MFAmake lab # docker compose up + seed J3.10 / J4.2.7 / J5.x with admin user
make smoke # end-to-end against all three (no MFA)
make lab-mfa # seed a known TOTP secret on J4 admin (for mfa-* tests)
make smoke-mfa # brute -> mfa-required, mfa-bypass VULN, chain auto-pivot
make lab-mfa-off # remove the MFA record (back to plain admin)
make lab-down # tear it all down
El instalador del laboratorio omite por completo el instalador web de Joomla: carga el SQL de instalación directamente en MySQL, inserta un usuario administrador (admin / admin1234) y escribe un configuration.php mínimo. seed_mfa.php usa el propio cifrado AES-128-CBC + clave secreta de Joomla para que el endpoint cautivo lo descifre correctamente. Solo para laboratorio: ambos scripts asumen los nombres de contenedor estándar joombrute-* de lab/docker-compose.yml.
make all
# produces dist/joombrute-{linux,darwin,windows}-{amd64,arm64} statically linked
Solo para pruebas de seguridad autorizadas. Ejecútalo únicamente contra sistemas sobre los que tengas permiso explícito por escrito para realizar pruebas. Genera tráfico que cualquier IDS detectará. Los mantenedores rechazan toda responsabilidad por el mal uso.
Ravindu Wickramasinghe | rvz (@rvzsec) · www.zyenra.com
Concepto original de fuerza bruta para Joomla 3: @ajnik Investigación de la cadena CVE-2023-23752: VulnCheck
| CVE | Versiones afectadas | Modo | Parcheado en | Verificado en lab |
|---|
| CVE-2023-23752 | 4.0.0 - 4.2.7 | enum | 4.2.8 (2023-02) | ✅ J4.2.7 |
| CVE-2023-23755 | 4.2.0 - 4.3.1 | mfa-brute | 4.3.2 (2023-05) | ✅ J4.2.7 |
| CVE-2025-25227 | 4.0.0 - 4.4.12, 5.0.0 - 5.2.5 | mfa-bypass | 4.4.13 / 5.2.6 (2025-04) | ✅ J4.2.7 |