
CVE-2023-46604 (Vulnerabilidad RCE de Apache ActiveMQ) y centrado en la obtención de Indicadores de Compromiso.
Honeypot que cubre CVE-2023-46604 (Vulnerabilidad RCE de Apache ActiveMQ) y está enfocado en obtener Indicadores de Compromiso. Este honeypot puede usarse en cualquier infraestructura de Inteligencia de Amenazas para obtener direcciones IP de atacantes, muestras de post-explotación y muestras de malware. Esta información puede ser útil para detectar y prevenir ataques en el futuro.
En un caso real, el atacante envía un paquete específico al servicio Apache ActiveMQ. Este paquete contiene una ExceptionResponse con la Clase org.springframework.context.support.ClassPathXmlApplicationContext y un Mensaje que contiene la URL del payload XML.
![]() |
|---|
| Ejemplo de Ataque |
En segundo lugar, el servicio vulnerable descarga el payload XML que comúnmente contiene un comando RCE.
![]() |
|---|
| Ejemplo de Payload XML |
Este honeypot simula el servicio vulnerable de Apache ActiveMQ y extrae las direcciones IP de los atacantes, la URL del payload XML y el comando RCE del payload XML. Luego, esta información se puede parsear desde JSON.
Los registros del honeypot se pueden revisar en la ruta logfile que especifiques en Service.toml.
![]() |
|---|
| Registros del Honeypot |
El honeypot también genera una salida JSON con indicadores parseables. Puedes especificar la ruta de outfile en Service.toml.
![]() |
|---|
| Salida JSON |
El honeypot se puede desplegar en tu propio servidor (por ejemplo, VPS o VDS) en una variante docker.
El archivo de configuración del servicio Service.toml se puede cambiar a tu gusto:
service_ip = "0.0.0.0" # listen ip address
service_port = 61616 # port (default for Apache ActiveMQ 61616)
logfile = "logs/service.log" # main log file
outfile = "logs/out.json" # output json for parsing
api_enabled = false # enabled or disable api for downloading honeypot results (true/false)
api_ip = "0.0.0.0" # listen ip address for api
api_port = 9123 # port for api
api_user = "user" # user for api auth
api_password = "" # password for api auth
Puedes habilitar la api si quieres tener acceso a out.json. Los resultados se pueden descargar 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
También deberías deshabilitar el Apache ActiveMQ original (si existe) y asegurarte de que el puerto configurado no esté siendo usado por otro proceso. La construcción del servicio puede tomar algo de tiempo.
También puedes cambiar LevelFilter a Debug en main.rs y obtener información de depuración más útil.
![]() |
|---|
| Debug LevelFilter |