
Laboratório Docker educacional para Apache HTTP Server 2.4.49 com path traversal e RCE (CVE-2021-41773), incluindo pesquisa sobre o CVE, exploit PoC, evidências de teste e orientações de mitigação.
⚠️ Apenas para uso isolado e educacional em laboratório. Este repositório constrói um servidor Apache deliberadamente vulnerável. Nunca o execute em um host ativo, de produção ou exposto à internet.
Projeto de estágio em Red Team da Team Alpha (ITSOLERA — Offensive Security / Exploit Development para uma CVE conhecida). O trabalho é dividido em seis pastas de tarefas para que cada membro possa contribuir por meio de seu próprio pull request.
📄 Relatório final: 06-final-report/CVE-2021-41773-Final-Report.pdf
O Apache 2.4.49 decodifica um ponto codificado como %2e depois da verificação de normalização de caminho,
portanto /files/.%2e/.%2e/.%2e/.%2e/etc/passwd escapa da raiz do documento. Com
mod_cgi habilitado, o mesmo truque contra /bin/sh resulta em execução remota de código.
| Pasta | Responsável | Entregável | Status |
|---|---|---|---|
01-cve-research/ | Fatima Bente Mustafa | Resumo da CVE, versões afetadas, causa raiz, CVSS, referências | ✅ Concluído |
02-lab-setup/ | Emaar Ejaz | Laboratório Docker com Apache 2.4.49 vulnerável + SETUP.md | ✅ Concluído |
03-vulnerability-analysis/ | Anum Aamir Sajjad | ANALYSIS.md + evidence-log.txt | ✅ Concluído |
04-exploit-poc/ | Noor Saba Basit | cve-2021-41773.py + exploit.sh + lógica | ✅ Concluído |
05-testing-evidence/ | Sana Tariq | Capturas de tela, saída do terminal, logs do servidor | ✅ Concluído |
06-final-report/ | Muhammad Hammad | Relatório final compilado (PDF) + mitigação | ✅ Concluído |
O alvo vulnerável está em 02-lab-setup/. De dentro dessa
pasta:
docker build -t cve-2021-41773-lab:2.4.49 .
docker run -d --name apache-2449-vuln -p 127.0.0.1:8080:80 cve-2021-41773-lab:2.4.49
Consulte 02-lab-setup/SETUP.md para o guia completo de configuração,
verificação, coleta de evidências e solução de problemas.
Atualize para o Apache HTTP Server 2.4.51 ou posterior. Como defesa em profundidade, mantenha
<Directory /> com Require all denied por padrão e conceda acesso apenas onde for necessário.