
CVE-2023-46604 (vulnérabilité RCE d'Apache ActiveMQ) et axé sur la collecte d'indicateurs de compromission.
Honeypot qui cible CVE-2023-46604 (Apache ActiveMQ RCE Vulnerability) et est axé sur l'obtention d'indicateurs de compromission. Ce honeypot peut être utilisé dans toute infrastructure de Threat Intelligence pour obtenir les adresses IP des attaquants, des échantillons de post-exploitation et des échantillons de logiciels malveillants. Ces informations peuvent être utiles pour détecter et prévenir de futures attaques.
Dans un cas réel, l'attaquant envoie un paquet spécifique au service Apache ActiveMQ. Ce paquet contient une ExceptionResponse avec la classe org.springframework.context.support.ClassPathXmlApplicationContext et un Message qui contient l'URL de la charge utile XML.
![]() |
|---|
| Exemple d'attaque |
Ensuite, le service vulnérable télécharge la charge utile XML qui contient généralement une commande RCE.
![]() |
|---|
| Exemple de charge utile XML |
Ce honeypot simule un service Apache ActiveMQ vulnérable et extrait les adresses IP de l'attaquant, l'URL de la charge utile XML et la commande RCE de la charge utile XML. Ces informations peuvent ensuite être analysées à partir du JSON.
Les journaux du honeypot peuvent être consultés via le chemin logfile que vous avez spécifié dans Service.toml.
![]() |
|---|
| Journaux du honeypot |
Le honeypot génère également une sortie JSON avec des indicateurs analysables. Vous pouvez spécifier le chemin de outfile dans Service.toml.
![]() |
|---|
| Sortie JSON |
Le honeypot peut être déployé sur votre propre serveur (par exemple VPS ou VDS) avec la variante docker.
Le fichier de configuration du service Service.toml peut être modifié selon vos besoins :
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
Vous pouvez activer l'api si vous souhaitez avoir accès à out.json. Les résultats peuvent être téléchargés à l'aide de 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
Vous devez également désactiver l'Apache ActiveMQ d'origine (s'il existe) et vous assurer que le port configuré n'est pas utilisé par un autre processus. La construction du service peut prendre un certain temps.
Vous pouvez également passer LevelFilter à Debug dans main.rs et obtenir des informations de débogage plus utiles
![]() |
|---|
| Debug LevelFilter |