Dump di passwd e shadow: /etc/passwd and /etc/shadow (T1003.008)
La tecnica T1003.008 descrive l'estrazione dei file /etc/passwd e /etc/shadow dai sistemi Linux con l'obiettivo di effettuare cracking offline delle credenziali. Si colloca nella tattica TA0006 (Credential Access) e rappresenta uno dei metodi più diretti per ottenere hash di password su piattaforme Unix-like, sfruttando la struttura standard dell'autenticazione POSIX.
Su ogni distribuzione Linux moderna, /etc/passwd contiene metadati utente (UID, GID, home directory, shell di login) ed è leggibile da tutti, mentre /etc/shadow custodisce gli hash delle password ed è accessibile solo a root. Un attaccante che ottiene privilegi elevati — tramite exploit di kernel, misconfigurazioni sudo, escape da container o vulnerabilità applicative come CVE-2023-48022 sfruttata nella campagna ShadowRay — può copiare entrambi i file e trasferirli su un sistema controllato.
L'utility unshadow, distribuita con il pacchetto John the Ripper, ricombina i due file in un formato consumabile da cracker offline come John o Hashcat. Il valore per l'avversario è duplice: gli hash contengono spesso password riutilizzate su altri sistemi (movimento laterale) e permettono la persistenza tramite backdoor account. L'impatto è particolarmente critico su server esposti, workload cloud e sistemi di orchestrazione dove l'account root è compromesso una sola volta ma genera credenziali riutilizzabili in tutta l'infrastruttura.
In un ingaggio red team autorizzato, la simulazione di T1003.008 inizia sempre dopo aver acquisito privilegi sufficienti a leggere /etc/shadow. Il vettore può essere un'escalation locale (CVE del kernel, sudo misconfigurato, SUID binari), un'evasione da container mal configurato, oppure — come nel caso ShadowRay — l'exploitation di un servizio esposto che gira già come root.
La lettura diretta è banale: cat /etc/shadow e cat /etc/passwd sono i comandi canonici. Alternative meno rumorose includono cp, awk, sed, oppure la lettura tramite descrittori aperti da linguaggi interpretati (python3 -c "print(open('/etc/shadow').read())"). Per esfiltrare in un colpo solo, la sequenza classica è:
tar czf /tmp/creds.tgz /etc/passwd /etc/shadow
seguita da trasferimento via scp, curl verso un endpoint controllato, oppure encoding base64 e ping DNS per canali covert.
Una volta sul sistema di analisi, la combinazione dei due file avviene con John the Ripper (open source):
/usr/bin/unshadow /etc/passwd /etc/shadow > crack.db
e successivamente john --wordlist=rockyou.txt crack.db. Su hardware con GPU, Hashcat (open source) è preferibile per gli algoritmi moderni come SHA-512 crypt (modalità -m 1800) o yescrypt: hashcat -m 1800 crack.db rockyou.txt.
Per arricchire il post-exploitation, tool come LaZagne (open source) automatizzano la raccolta tramite il modulo shadow.py, utile in operazioni multi-host dove serve consistenza. In ambienti containerizzati vale la pena verificare i file montati dal namespace host: un container privilegiato con /etc in bind mount espone gli hash del sistema sottostante.
Durante l'esercizio è utile testare varianti evasive per validare la telemetria del blue team: lettura tramite syscall openat con path relativi (/proc/1/root/etc/shadow), utilizzo di BusyBox per bypassare monitoring su binari specifici, oppure exfiltration lenta tramite chunking DNS con tool come dnscat2 (open source) o iodine (open source). Documentare quale combinazione supera il tuning delle regole EDR è il vero deliverable del test. Ricorda che ogni azione richiede scope scritto e rollback plan: la copia di /etc/shadow è materiale sensibile che va cifrato in transito e distrutto al termine dell'ingaggio.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo