Furto di Token: Token Impersonation/Theft (T1134.001)
La tecnica T1134.001 descrive l'abuso dei meccanismi di gestione dei token di accesso di Windows per duplicare il contesto di sicurezza di un utente già autenticato e assumerne l'identità. L'attaccante non forgia un token ex novo, ma sfrutta handle esistenti attraverso API documentate come DuplicateToken, DuplicateTokenEx, ImpersonateLoggedOnUser e SetThreadToken, oppure crea nuovi processi con CreateProcessWithTokenW e CreateProcessAsUserW.
Il posizionamento nella matrice ATT&CK è duplice: TA0004 (Privilege Escalation), perché il furto di un token SYSTEM o di un amministratore di dominio consente il salto di privilegio senza sfruttare vulnerabilità kernel, e TA0005 (Defense Evasion), perché il processo che assume il token appare al sistema operativo come legittimamente eseguito da quell'utente, ingannando controlli di accesso e log basati sull'identità.
Nella kill chain la tecnica si colloca dopo un accesso iniziale con privilegi locali di amministratore — requisito minimo per invocare le API di token — e precede tipicamente movimento laterale, credential access o esecuzione di payload in contesti privilegiati. I dati MITRE censiscono 2 gruppi APT (APT28 e FIN8), 15 famiglie di malware con capacità native di token theft — da Cobalt Strike a Emotet, da REvil a Havoc — e la campagna HomeLand Justice contro il governo albanese. Le mitigazioni ufficiali sono due: User Account Management e Privileged Account Management.
L'operatore red team dispone di un ventaglio consolidato di tecniche per riprodurre T1134.001 in ambiente autorizzato. Il prerequisito è quasi sempre un contesto con privilegio SeDebugPrivilege o SYSTEM, ottenibile in laboratorio tramite escalation locale o esecuzione via servizio.
Il percorso classico parte da Cobalt Strike (a pagamento), il cui comando steal_token
Per scenari puramente C2-less, SharpToken e TokenPlayer su GitHub (open source) permettono di enumerare processi con OpenProcessToken, duplicare handle e lanciare cmd.exe nel contesto impersonato. Un pattern molto usato è quello di SILENTTRINITY (open source), che tramite modulo Boo cerca processi appartenenti a un utente specifico e ne ruba il token per movimento laterale in memoria senza toccare LSASS.
Un esempio di catena operativa in laboratorio:
- enumerazione dei processi target con tasklist /v per identificare processi eseguiti da account di dominio privilegiati
- da un beacon SYSTEM: ps per elencare PID e owner, quindi steal_token 1234 per assumere l'identità
- verifica del contesto con shell whoami /all e shell klist per confermare TGT ereditati
- esecuzione laterale con jump psexec64 target-host smb-listener che riutilizza le credenziali di rete del token rubato
Per test di CreateProcessWithTokenW, Rubeus (open source) integra la funzionalità createnetonly che avvia un processo con un token logon di tipo 9, utile a proiettare credenziali su servizi remoti senza modificarle localmente. Impacket (open source) non implementa direttamente il furto di token Windows ma è complementare per lo sfruttamento del contesto ottenuto, ad esempio con smbexec.py o wmiexec.py usando hash o ticket derivati.
In laboratorio è utile riprodurre anche il pattern FIN8 e BADHATCH, che impersonano il token di lsass.exe o vmtoolsd.exe: si scelgono processi long-running con SID di alto valore, riducendo il rumore rispetto a un semplice runas. Ogni test dovrebbe essere accompagnato da baseline Sysmon per validare la telemetria difensiva.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo