
CVE-2023-46604 (Vulnerabilidade RCE do Apache ActiveMQ) e focado em obter Indicadores de Comprometimento.
Honeypot que cobre CVE-2023-46604 (Vulnerabilidade de RCE no Apache ActiveMQ) e focado em obter Indicadores de Comprometimento. Este honeypot pode ser usado em qualquer infraestrutura de Threat Intelligence para obter endereços IP de atacantes, amostras de pós-exploração e amostras de malware. Essas informações podem ser úteis para detectar e prevenir ataques no futuro.
No caso real, o atacante envia um pacote específico para o serviço Apache ActiveMQ. Esse pacote contém um ExceptionResponse com a classe org.springframework.context.support.ClassPathXmlApplicationContext e uma Message que contém a URL do payload XML.
![]() |
|---|
| Exemplo de Ataque |
Em segundo lugar, o serviço vulnerável baixa o payload XML que normalmente contém um comando RCE.
![]() |
|---|
| Exemplo de Payload XML |
Este honeypot simula o serviço vulnerável do Apache ActiveMQ e extrai os endereços IP dos atacantes, a URL do payload XML e o comando RCE do payload XML. Essas informações podem então ser analisadas a partir do JSON.
Os logs do honeypot podem ser verificados pelo caminho logfile que você especificou no Service.toml.
![]() |
|---|
| Logs do Honeypot |
O honeypot também gera uma saída JSON com indicadores analisáveis. Você pode especificar o caminho de outfile no Service.toml.
![]() |
|---|
| Saída JSON |
O honeypot pode ser implantado no seu próprio servidor (por exemplo, VPS ou VDS) na variante docker.
O arquivo de configuração do serviço Service.toml pode ser alterado por você:
service_ip = "0.0.0.0" # endereço IP de escuta
service_port = 61616 # porta (padrão para Apache ActiveMQ 61616)
logfile = "logs/service.log" # arquivo de log principal
outfile = "logs/out.json" # json de saída para análise
api_enabled = false # habilita ou desabilita a api para baixar os resultados do honeypot (true/false)
api_ip = "0.0.0.0" # endereço IP de escuta para a api
api_port = 9123 # porta para a api
api_user = "user" # usuário para autenticação na api
api_password = "" # senha para autenticação na api
Você pode habilitar a api se quiser ter acesso ao out.json. Os resultados podem ser baixados usando curl:
curl -X POST http://<api_ip>:<api_port>/ --data 'username=<api_user>&password=<api_password>'
git clone https://github.com/mranv/honeypot.rs -b main
cd activemq-honeypot
docker compose up --build -d
Você também deve desabilitar o Apache ActiveMQ original (se existir) e garantir que a porta configurada não esteja em uso por outro processo. A compilação do serviço pode levar algum tempo.
Você também pode alterar LevelFilter para Debug no main.rs e obter informações de depuração mais úteis
![]() |
|---|
| Nível de Depuração do LevelFilter |