Furto e Impersonazione di Token: Token Impersonation/Theft (T1134.001)

Ogni processo in Windows opera sotto un token di sicurezza che rappresenta l'identità e i privilegi dell'utente. La tecnica T1134.001 consente a un avversario di duplicare il token di un processo già in esecuzione — tipicamente uno con privilegi elevati — e di assegnarlo a un thread o processo sotto il proprio controllo. Il risultato è un'escalation di privilegi silenziosa: il codice malevolo eredita il contesto di sicurezza di un altro utente senza bisogno di credenziali.

Questa sottotecnica di Access Token Manipulation si colloca in due tattiche della kill chain. Nella fase di Privilege Escalation (TA0004) permette di passare da un contesto utente limitato a SYSTEM o a un account amministrativo. Nella fase di Defense Evasion (TA0005) consente al processo malevolo di operare sotto un'identità legittima, sfuggendo a controlli basati su user context e rendendo più difficile l'attribuzione delle azioni nei log.

Le API Windows coinvolte sono ben documentate: DuplicateToken e DuplicateTokenEx per la duplicazione, ImpersonateLoggedOnUser e SetThreadToken per l'assegnazione del token a thread esistenti, CreateProcessWithTokenW e CreateProcessAsUserW per generare nuovi processi con il token rubato. L'ecosistema offensivo che sfrutta questa tecnica è ampio: 15 software documentati, 2 gruppi APT e 1 campagna confermata la impiegano attivamente.


La simulazione di token impersonation in laboratorio richiede un ambiente Windows con almeno due sessioni utente attive — una non privilegiata da cui si opera e una con privilegi elevati da cui si ruba il token. L'obiettivo è dimostrare al cliente quanto sia semplice, con accesso amministrativo locale, assumere l'identità di qualsiasi utente connesso.

Il punto di partenza più immediato è Cobalt Strike (a pagamento), che rende l'operazione quasi banale. Il comando steal_token accetta il PID di un processo target e duplica il suo token assegnandolo al Beacon corrente. Per individuare un processo SYSTEM adatto si usa ps nella console Beacon, si identifica un processo come lsass.exe o winlogon.exe, e si lancia:

steal_token <PID>

Da quel momento ogni comando eseguito dal Beacon opera sotto il contesto SYSTEM. Il comando rev2self ripristina il token originale.

Con Meterpreter di Metasploit Framework (open source) l'approccio è analogo. Una volta ottenuta una sessione con privilegi sufficienti, il modulo incognito offre una gestione completa dei token:

load incognito list_tokens -u impersonate_token "DOMINIO\Utente"

Il comando list_tokens -u enumera tutti i token di delegation e impersonation disponibili sul sistema. La distinzione è importante: i token di delegation sono associati a logon interattivi e permettono operazioni di rete, mentre quelli di impersonation sono più limitati.

Per chi preferisce strumenti standalone, Pupy (open source) offre funzionalità analoghe consentendo di elencare SID e selezionare token di processo da impersonare direttamente dalla sua shell. Anche SILENTTRINITY (open source) può cercare un processo di proprietà di un utente specifico e impersonarne il token.

A livello di codice nativo, la catena API è lineare. Si apre un handle al processo target con OpenProcess, si ottiene il suo token con OpenProcessToken, lo si duplica con DuplicateTokenEx specificando SecurityImpersonation come livello, e infine si chiama ImpersonateLoggedOnUser oppure CreateProcessWithTokenW. Un esercizio formativo utile consiste nello scrivere un piccolo eseguibile C che implementa questa catena — permette di capire esattamente cosa vedranno i difensori nei log.

Un aspetto spesso trascurato nei test: il privilegio SeImpersonatePrivilege è necessario per impersonare token. Account di servizio come quelli di IIS o SQL Server lo possiedono di default, il che rende le web shell su questi servizi un vettore privilegiato per questa tecnica. Durante un engagement, vale la pena verificare con whoami /priv quali privilegi sono disponibili nel contesto corrente prima di tentare l'impersonazione.


Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?

Scarica la guida gratuita e segui il percorso corretto fin dal primo passo

We use cookies

Utilizziamo i cookie sul nostro sito Web. Alcuni di essi sono essenziali per il funzionamento del sito, mentre altri ci aiutano a migliorare questo sito e l'esperienza dell'utente (cookie di tracciamento). Puoi decidere tu stesso se consentire o meno i cookie. Ti preghiamo di notare che se li rifiuti, potresti non essere in grado di utilizzare tutte le funzionalità del sito.