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

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

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

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

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

Категории

Все категории
Loading categories
cve-2026-0300-audit — Инструмент аудита только для чтения для CVE-2026-0300 (экспонирование портала аутентификации User-ID в PAN-OS) | Kitploit
Инструменты/GitHubGitHub/tailwindrg/cve-2026-0300-audit
Безопасность облачной инфраструктурыАнализ уязвимостейСкриптинг и автоматизацияАудит конфигурацииСетевая безопасностьDevSecOps
GitHubtailwindrg/cve-2026-0300-audit

cve-2026-0300-audit

Инструмент аудита только для чтения для CVE-2026-0300 (экспонирование портала аутентификации User-ID в PAN-OS)

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

Популярное

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

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

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

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

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

Инструментарий аудита CVE-2026-0300

Инструментарий аудита только для чтения для CVE-2026-0300 — неаутентифицированное переполнение буфера в портале аутентификации User-ID PAN-OS (ранее известном как «Captive Portal») на межсетевых экранах серий PA и VM.

Этот репозиторий сопровождает бюллетень безопасности Tailwind Resource Group TRG-SA-2026-003 и предоставляет:

  • audit_portal.py — уровень 1: аудит одного межсетевого экрана
  • audit_fleet.py — уровень 2: массовое сканирование парка через Panorama (параллельно)
  • panos_audit.py — общая библиотека, используемая обоими CLI

Скрипты работают только на чтение. Они выполняют запросы вида show к XML API PAN-OS и никогда не изменяют конфигурацию. Ключ API передаётся через HTTP-заголовок X-PAN-KEY, а не как параметр URL-запроса, поэтому он не появляется в журналах доступа плоскости управления PAN, журналах прокси с TLS-инспекцией или в аргументах процесса аудитора.

Зачем это существует

В записи CVE используется современное название функции «User-ID Authentication Portal». Схема XML PAN-OS, параметры CLI и пути URL документации по-прежнему используют устаревшую лексику captive-portal. Операторы, проверяющие парки с помощью show config running | match authentication-portal, молча пропустят всю конфигурацию, поскольку эта строка никогда не появляется как элемент конфигурации. Этот инструментарий ищет имя элемента, соответствующее схеме, независимо от того, когда была создана конфигурация.

Полный анализ Tailwind этой особенности именования приведён в TRG-SA-2026-003, «Устаревший след Captive Portal».

Требования

  • Python 3.10 или новее
  • Только стандартная библиотека — pip install не требуется
  • Ключ API PAN-OS с доступом на чтение к межсетевому экрану (или, для уровня 2, к Panorama)
  • Сертификат, подписанный CA (или доверенный оператором), на интерфейсе управления межсетевого экрана; флаг --insecure предусмотрен только для разовых аудитов при первоначальном развёртывании

Уровень 1 — один межсетевой экран

export PAN_API_KEY="<key>"
./audit_portal.py --hostname fw1.example.com

Пример табличного вывода:

vsys: vsys1
  configured:    True
  enabled:       True
  redirect_host: auth-portal.internal.example.com
  mode:          redirect
  bound:         ethernet1/3(internal-trust), ethernet1/4(guest)
  tls_verified:  True
  risk:          EXPOSED_LIKELY

Другие форматы вывода: --output json или --output csv.

Другие флаги: --vsys <name> для аудита одного vsys, --timeout/--retries для медленных вышестоящих систем, --debug для подробных сведений об ошибках в stderr.

Уровень 2 — массовое сканирование парка через Panorama

export PAN_API_KEY="<panorama-key>"
./audit_fleet.py --hostname panorama.example.com --workers 16 --output csv > fleet-audit.csv

Каждая строка в CSV — это одно устройство-vsys со статусом портала, хостом перенаправления, режимом, привязками интерфейсов и классификацией риска. Скрипт использует параметр API Panorama target=<serial>, поэтому он никогда не подключается к управляемым межсетевым экранам напрямую — одно подключение к Panorama сканирует весь парк.

Примечательные флаги:

  • --workers N — параллельные потоки аудита (по умолчанию 8, максимум 32). Парк из 1000 устройств обрабатывается за минуты, а не за час и более, как при последовательном сканировании.
  • --timeout, --retries — настройки на каждый вызов API. Временные URLError и HTTP 5xx повторяются с ограниченной экспоненциальной задержкой.
  • --exclude-disconnected — по умолчанию отключённые устройства включаются с risk=DISCONNECTED, чтобы они оставались видимыми в период установки исправлений. Используйте этот флаг, чтобы исключить их.
  • --min-expected-devices N — предупреждение (stderr), если Panorama возвращает меньше устройств, чем N. Полезно для обнаружения усечения ответа при известном размере парка.
  • --serial-filter '0007*' — фильтрация по серийному номеру с подстановочными знаками для аудита подмножества.
  • --debug — вывод подробных сведений об ошибках по каждому устройству в stderr (включая строки reason от вышестоящей системы; по умолчанию выключено, чтобы не раскрывать имена хостов в CSV для клиентов).

Классификация риска

Столбец risk в выводе принимает одно из следующих значений:

МеткаЗначение
INFO_NOT_CONFIGUREDБлок <captive-portal> на устройстве отсутствует. Вне области действия CVE-2026-0300.
INFO_DISABLEDПортал настроен, но enabled=no. Уязвимый путь кода неактивен.
REVIEW_POLICY_NO_BINDINGSПортал включён, но привязки интерфейсов в конфигурации не найдены. Проверьте через WebUI.
EXPOSED_LIKELYПортал включён и привязан к зоне, имя которой указывает на недоверенную доступность (untrust, dmz, guest, external, internet, wan, public). Исследуйте в первую очередь.
REVIEW_POLICYПортал включён и привязан к зонам с внутренними именами. Проверьте политику безопасности, чтобы подтвердить достижимость.

EXPOSED_LIKELY — это подсказка, а не вердикт — имена зон являются соглашениями оператора, а не принудительным механизмом. Скрипт не может заменить анализ политики безопасности; он сортирует вывод парка так, чтобы внимание сначала направлялось туда, где оно необходимо.

Что скрипты делают — и чего не делают

Делают:

  • Запрашивают блоки <captive-portal> для каждого vsys (имя элемента схемы всегда captive-portal, независимо от названия в интерфейсе или версии PAN-OS).
  • Сообщают о включённом/отключённом состоянии, хосте перенаправления, режиме и привязках интерфейсов с разрешением зон.
  • Классифицируют риск по эвристике имён зон, чтобы строки EXPOSED_LIKELY появлялись первыми в выводе парка.
  • Отправляют ключ API через заголовок X-PAN-KEY, чтобы он не попадал в журналы доступа URL и аргументы процесса.
  • Ограничивают размер тела ответа (50 МБ) для защиты от атак расширения сущностей на XML-парсер.
  • Повторяют временные ошибки с ограниченной экспоненциальной задержкой.

Не делают:

  • Не анализируют политику безопасности всесторонне. Доступность портала из недоверенной сети зависит от правил политики, NAT и привязок зон — оператор должен завершить этот анализ на основе вывода аудита.
  • Не проверяют достижимость сетевыми зондами. Только чистый аудит конфигурации.
  • Не изменяют никакую конфигурацию. Все вызовы API доступны только для чтения.

Генерация ключа API PAN-OS

Ключ API PAN-OS наследует роль и разрешения пользователя, который его генерирует.

Важное предостережение: в PAN-OS не существует разрешения XML API только для чтения.

Разрешения роли администратора на вкладке XML API являются бинарными «Включено/Выключено» для каждой категории — Configuration, Operational Requests, Commit, Export, Import, Report, Log, User-ID Agent. Включение Configuration для XML API разрешает как show, так и set/edit/delete/move/rename/clone. Включение Operational Requests разрешает произвольные операции <request>, включая <request><restart>. Вкладки Web UI и REST API предлагают вариант «Только чтение»; вкладка XML API — нет.

«Пользователь аудита», созданный включением этих категорий XML API, обладает полными правами записи XML API на устройстве. Относитесь к полученному ключу как к привилегированному учётному данным: ограничьте срок его действия окном аудита, храните в менеджере секретов и отключите пользователя по завершении работы.

Каноническая справка PAN: Get Your API Key (PAN-OS XML API).

Через WebUI

На межсетевом экране (или Panorama, если вы используете audit_fleet.py):

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