
La vulnerabilità CVE-2015-5254 è una falla di sicurezza in Apache ActiveMQ, un server di messaggi open source ampiamente utilizzato per la comunicazione tra applicazioni. Questa vulnerabilità interessa le versioni di ActiveMQ fino alla 5.13.0 e risiede nella mancanza di filtraggio sui dati di input JMS ObjectMessage inviati.
La vulnerabilità CVE-2015-5254 è un difetto di sicurezza in Apache ActiveMQ, un server di messaggi open source ampiamente utilizzato per la comunicazione tra applicazioni. Questa vulnerabilità riguarda le versioni di ActiveMQ fino alla 5.13.0 e risiede nella mancanza di filtraggio sui dati di input JMS ObjectMessage inviati.
Scansione della rete: nmap -p 61616 -Pn -T5 -n -sC -sV 172.17.0.1

Avviamo ActiveMQ 2015 tramite la sua cartella scaricata con Docker:

Verifichiamo la versione di ActiveMQ:

Si tratta della versione 5.11.1
Sfruttamento:
Per questa vulnerabilità, utilizzeremo il 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
Questo comando esegue un tentativo di sfruttamento della vulnerabilità CVE-2015-5254 di Apache ActiveMQ utilizzando lo strumento jmet. Ecco una spiegazione di ogni opzione del comando:
java -jar jmet-0.1.0-all.jar : Avvia lo strumento jmet (Java Message Exploitation Tool) utilizzando il file JAR autonomo (jmet-0.1.0-all.jar).
-Q event : Specifica la "coda" o la coda di destinazione in ActiveMQ, qui chiamata "event". Lo strumento invierà il messaggio dannoso tramite questa coda.
-I ActiveMQ : Indica che il bersaglio è un server Apache ActiveMQ.
-s : Avvia lo sfruttamento in modalità "stealth" (furtiva), che a volte può minimizzare i log o gli avvisi generati sul bersaglio.
-Y "touch /tmp/success" : Indica il payload dannoso che sarà eseguito sul server bersaglio in caso di successo. In questo caso, il comando touch /tmp/success crea un file chiamato success nella cartella /tmp per dimostrare che lo sfruttamento ha funzionato.
-Yp ROME : Utilizza il payload "ROME" per tentare di sfruttare la vulnerabilità (ROME è qui un tipo specifico di payload supportato dallo strumento per ActiveMQ).
172.17.0.1 61616 : Specifica l'indirizzo IP (172.17.0.1) e la porta (61616) del server Apache ActiveMQ bersaglio.
In sintesi Questo comando tenta di sfruttare una vulnerabilità di deserializzazione su Apache ActiveMQ iniettando un messaggio dannoso nella coda "event" per eseguire un comando remoto. Se lo sfruttamento ha successo, il server ActiveMQ bersaglio esegue il comando touch /tmp/success, che è un indicatore di uno sfruttamento riuscito (creazione di un file). In pratica, vogliamo infiltrarci con un file chiamato success nel file system del server ActiveMQ, in particolare in /tmp/.

Notiamo che lo sfruttamento è riuscito!
Riceviamo il seguente messaggio di rilevamento su Apache ActiveMQ:

Clicchiamo sul messaggio:

Inseriamo la seguente serie di comandi:
docker ps -a Per conoscere il contenitore ActiveMQ in esecuzione, vediamo il contenitore 19ab278527c7 Eseguiamo: docker exec -it 19ab278527c7 /bin/bash Per autenticarci sul server ActiveMQ tramite il suo contenitore.
Costatiamo che l'autenticazione è riuscita e abbiamo verificato la creazione del file success in /tmp/:

Fine dello sfruttamento!