Iscriviti al webinar gratuito del 12 Maggio per diventare Forensic Analyst! Scopri di più
Corso Ethical Hacker: accedi alla promozione fino al 30 Arile! Scopri di più
Pass the Hash è una tecnica che consente a un attaccante di autenticarsi su un sistema remoto utilizzando direttamente l'hash NTLM di una password, senza mai conoscerne il valore in chiaro. Il meccanismo sfrutta il modo in cui il protocollo NTLM gestisce l'autenticazione di rete: il challenge-response si basa sull'hash, non sulla password originale. Questo significa che chiunque possieda l'hash ha, a tutti gli effetti, le stesse capacità di chi conosce la password.
La tecnica si colloca in due tattiche distinte. Nella fase di Defense Evasion (TA0005), l'attaccante aggira i normali controlli di autenticazione evitando di inserire credenziali in chiaro e riducendo le tracce nei log tradizionali. Nella fase di Lateral Movement (TA0008), l'hash rubato diventa il lasciapassare per spostarsi tra i sistemi della rete, accedendo a share SMB, sessioni RDP — quando RestrictedAdmin è abilitato — e servizi remoti.
Una variante nota come overpass-the-hash combina l'hash NTLM con una richiesta Kerberos: l'attaccante usa l'hash per ottenere un Ticket Granting Ticket (TGT) valido, aprendo la strada anche ad attacchi Pass the Ticket. I numeri confermano la popolarità di questa tecnica: 11 gruppi APT, 8 software offensivi, 1 campagna documentata e 4 mitigazioni specifiche la rendono una delle più utilizzate nel panorama delle intrusioni reali.
Per simulare Pass the Hash in laboratorio servono due ingredienti: un hash NTLM valido e un tool in grado di iniettarlo nel flusso di autenticazione. Il primo passo è il dump delle credenziali — una fase di Credential Access che precede il movimento laterale vero e proprio.
Estrazione degli hash con Mimikatz (open source). Su una macchina Windows compromessa con privilegi SYSTEM o di amministratore locale, il modulo sekurlsa consente di estrarre gli hash dalla memoria LSASS:
mimikatz # privilege::debug mimikatz # sekurlsa::logonpasswords
L'output mostra gli hash NTLM degli utenti con sessioni attive. Una volta in possesso dell'hash, il modulo pth di Mimikatz avvia un nuovo processo con l'identità rubata:
mimikatz # sekurlsa::pth /user:admin /domain:lab.local /ntlm:<hash_ntlm>
Questo comando apre una shell cmd.exe il cui token di sicurezza è associato all'hash fornito. Da quella shell, qualsiasi connessione SMB o WMI verso sistemi remoti utilizzerà automaticamente l'hash come credenziale.
Movimento laterale con CrackMapExec/NetExec (open source — il progetto originale CrackMapExec è stato rinominato in NetExec). Il tool permette di validare l'hash su più host contemporaneamente e di eseguire comandi:
netexec smb 192.168.1.0/24 -u administrator -H <hash_ntlm> --exec-method smbexec -x "whoami"
Il flag -H specifica l'hash al posto della password. Il parametro --exec-method consente di scegliere tra diversi metodi di esecuzione remota (smbexec, wmiexec, atexec), ognuno con un profilo di detection differente.
PoshC2 (open source) e Empire (open source) offrono moduli integrati per PtH. In Empire il modulo lateral_movement/invoke_smbexec accetta direttamente l'hash NTLM. In Cobalt Strike (a pagamento), l'operatore usa il comando pth dalla Beacon console per iniettare l'hash nel token corrente.
Per simulare la variante overpass-the-hash, Mimikatz crea un TGT Kerberos partendo dall'hash:
mimikatz # sekurlsa::pth /user:admin /domain:lab.local /ntlm:<hash_ntlm> /run:powershell.exe
Dalla sessione PowerShell risultante, un semplice accesso a una risorsa di rete (es. dir \\dc01\c$) forza la richiesta Kerberos e genera un TGT valido nel ticket cache locale, verificabile con klist.
Come setup di laboratorio consigliato: due macchine Windows in dominio Active Directory, Sysmon installato per catturare i log, e un account locale amministratore con la stessa password su entrambi i sistemi — condizione comune in ambienti reali e prerequisito perfetto per dimostrare il rischio.
Scarica la guida gratuita e segui il percorso corretto fin dal primo passo