Guida Approfondita: Uso di smbclient per l'enumerazione e l'accesso SMB
smbclient è uno strumento della suite Samba che consente di interfacciarsi con condivisioni di rete SMB/CIFS, simile a un client FTP. Può essere utilizzato per elencare le condivisioni, accedere a dir
Guida Approfondita: Uso di smbclient per l'enumerazione e l'accesso SMB
Introduzione
smbclient è uno strumento della suite Samba che consente di interfacciarsi con condivisioni di rete SMB/CIFS, simile a un client FTP. Può essere utilizzato per elencare le condivisioni, accedere a directory remote, caricare o scaricare file, e può rivelarsi molto utile in fase di post-exploitation o recon su una macchina Windows.
Sintassi Generale
smbclient //<host>/<share> -U <username>1. Enumerare le Share Disponibili
Per elencare le share disponibili su un host SMB:
smbclient -L <host> -U <username>Esempio:
smbclient -L demo.ine.local -U userTi verrà chiesta la password: puoi premere invio se l'utente non ne ha una, oppure fornire quella corretta.
Opzioni utili:
-N: non richiede password (utile con account guest)
smbclient -L <host> -N--option='client min protocol=NT1': forza SMBv1 (se richiesto da server legacy)
2. Accesso ad una Condivisione SMB
Per accedere direttamente a una condivisione:
smbclient //<host>/<share> -U <username>Esempio:
smbclient //demo.ine.local/backup -U adminUna volta all'interno si apre una shell simile a un client FTP:
Comandi interattivi principali:
ls→ Elenca i file presenti nella share
cd→ Entra in una directory
get→ Scarica un file dalla share
put→ Carica un file nella share
mget→ Scarica tutti i file nella directory corrente
lcd→ Cambia directory locale
exitoquit→ Uscita dal client
Esempio di sessione interattiva:
smb: > ls
smb: > get secret.txt
smb: > put backdoor.exe3. Autenticazione con Credenziali da File
Puoi usare file esterni per automatizzare l'accesso:
smbclient //<host>/<share> -A auth.txtDove auth.txt ha il seguente formato:
username = admin
password = Password123!
domain = WORKGROUP4. Montare Share SMB su Linux
Al di fuori di smbclient, è possibile montare una share direttamente nel filesystem Linux:
sudo mount -t cifs //<host>/<share> /mnt/smb -o username=<user>,password=<pass>Questo approccio è utile per lavorare con strumenti locali su file remoti.
5. Enumerazione in Post-Exploitation
Una volta ottenuto accesso a una macchina compromessa, puoi:
- Esplorare share di backup in cerca di file di configurazione, password in chiaro o script di automazione.
- Cercare directory con permessi di scrittura per caricare un payload o persistere.
Comando per verificare permessi (da smbclient):
allinfo <nome_file>6. Tecniche Offensive Aggiuntive
- Ricerca file sensibili:
passwords.txt, config.php, secrets.json, backup.sql
- Usare recurse ON + prompt OFF + mget per scaricare tutto:
smb: > recurse ON
smb: > prompt OFF
smb: > mget *- Accesso con utente "Guest" o senza password:
smbclient //<host>/<share> -N- Accesso in dominio Active Directory:
smbclient //<host>/<share> -U domain\\utente7. Difese e Mitigazioni (Blue Team)
- Limitare accesso alle share a utenti e gruppi specifici
- Audit su accessi SMB
- Disabilitare SMBv1
- Usare ACL avanzate e NTFS permissions
Conclusione
smbclient è uno strumento fondamentale in ambito offensive per l'esplorazione e l'interazione con share SMB. Integrato correttamente in un flusso di penetration testing, permette di ottenere informazioni riservate, scaricare payload o accedere a dati critici in scenari di post-exploitation.