Dieses Repository enthält Forschungsmaterialien, Proof-of-Concept-Code und Exploitation-Tools im Zusammenhang mit Deserialisierungs-Schwachstellen in Apache Dubbo, mit besonderem Fokus auf CVE-2020-1948.
Repository-Struktur
Verzeichnisse
Hessian-Deserialize-RCE-master: Forschungs- und Exploitation-Techniken für Hessian-Deserialisierungs-Schwachstellen in Dubbo
JNDI-Injection-Exploit-master: JNDI-Injection-Exploitation-Framework zum Angreifen von Dubbo-Diensten
dubbo-dubbo-2.7.5: Quellcode von Apache Dubbo 2.7.5 zur Schwachstellenanalyse
dubbo-exp-master: Erweitertes Exploitation-Framework für Dubbo-Schwachstellen
dubbo-samples-master: Beispiel-Dubbo-Anwendungen zum Testen und Demonstrieren
marshalsec-master: Werkzeuge für Marshalling/Unmarshalling-Schwachstellentests
Dateien
dubboExp.py: Python-basiertes Exploit-Skript für CVE-2020-1948
dubboPoc.py: Proof-of-Concept-Skript zur Überprüfung des Vorhandenseins der Schwachstelle
payload.ser: Serialisiertes Java-Payload für die Exploitation
ysoserial.jar: Tool zur Generierung von Java-Deserialisierungs-Payloads
Schwachstellenübersicht
Apache Dubbo-Versionen vor 2.7.8, 2.6.9 und 2.5.10 sind aufgrund unsicherer Deserialisierung anfällig für einen Remote-Code-Ausführungsangriff (CVE-2020-1948). Die Schwachstelle betrifft die Dubbo-Provider-Komponente, die Java-native Serialisierung ohne ordnungsgemäße Validierung verwendet.
Technische Details
Diese Schwachstelle kann über mehrere Vektoren ausgenutzt werden:
Hessian-Deserialisierung: Ausnutzung der Hessian-Serialisierungsprotokoll-Implementierung
JNDI-Injection: Nutzung von JNDI-Injection-Techniken zur Remote-Code-Ausführung
Java-Serialisierung: Einsatz traditioneller Java-Deserialisierungsangriffe mit Gadget-Ketten
Verwendung
Einrichtung einer verwundbaren Umgebung
root@kitploit:~
# Clone and build a vulnerable Dubbo version
cd dubbo-dubbo-2.7.5
mvn clean package
Überprüfung der Schwachstelle
root@kitploit:~
# Run the proof of concept
python dubboPoc.py -t <target_ip> -p <target_port>
Exploitation
root@kitploit:~
# Run the exploit
python dubboExp.py -t <target_ip> -p <target_port> -c "command_to_execute"
Benutzerdefinierte Payload-Generierung
Sie können ysoserial.jar verwenden, um benutzerdefinierte Payloads zu generieren:
Dieses Repository dient ausschließlich der Sicherheitsforschung und Bildungszwecken. Die bereitgestellten Codes und Tools sollten nur gegen Systeme verwendet werden, für die Sie die Erlaubnis zum Testen haben. Jeglicher Missbrauch dieser Informationen liegt nicht in der Verantwortung des Repository-Besitzers.