Windows Access Token Impersonation: Guida Tecnica Avanzata
Nel contesto delle operazioni di post-exploitation su sistemi Windows, gli access token rappresentano un elemento cruciale per comprendere e sfruttare il modello di sicurezza del sistema operativo. Qu
Windows Access Token Impersonation: Guida Tecnica Avanzata
Introduzione
Nel contesto delle operazioni di post-exploitation su sistemi Windows, gli access token rappresentano un elemento cruciale per comprendere e sfruttare il modello di sicurezza del sistema operativo. Questo documento fornisce una panoramica approfondita sull'architettura degli access token, le tecniche di impersonation, le implicazioni in ambito offensivo e difensivo, e strumenti noti per effettuare tali attività.
Cos'è un Access Token
Un access token su Windows è una struttura dati generata e gestita dal servizio LSASS (Local Security Authority Subsystem Service), utilizzata per rappresentare l'identità di un processo o thread. Serve a definire il contesto di sicurezza sotto cui un'applicazione viene eseguita.
Ogni volta che un utente esegue correttamente l'autenticazione:
- Il processo winlogon.exe genera un token.
- Questo token è legato a userinit.exe, il quale lo eredita e lo propaga a tutti i processi figlio.
- In questo modo, tutti i processi dell'utente eseguono con lo stesso contesto di sicurezza.
Tipologie di Access Token
Gli access token si suddividono principalmente in:
● Impersonate-Level Token
- Creati durante login non interattivi (es. servizi, accessi di sistema).
- Utilizzabili solo localmente sul sistema dove sono stati generati.
● Delegate-Level Token
- Generati tramite login interattivi (es. desktop locale, RDP).
- Più pericolosi: possono essere utilizzati per accedere ad altri sistemi in rete, mantenendo il contesto dell'utente autenticato.
⚠️ I token di tipo delegate sono obiettivi ad alto valore durante operazioni di lateral movement.
Privilegi Necessari per l'Impersonazione
Affinché un attaccante possa impersonare un access token, sono necessari specifici privilegi:
- SeImpersonatePrivilege: consente l'esecuzione di processi nel contesto di un altro utente.
- SeAssignPrimaryTokenPrivilege: consente di assegnare un token primario a un processo.
- SeCreateTokenPrivilege: consente la creazione arbitraria di nuovi token.
Questi privilegi sono solitamente assegnati ad account ad alto livello (SYSTEM, amministratori).
Tecniche di Token Impersonation
1. Token Stealing via Incognito (Meterpreter)
Utilizzando la sessione di Meterpreter, è possibile:
- Enumerare i token disponibili:
use incognito
list_tokens -u- Impersonare un token:
impersonate_token "DOMAIN\\Username"2. Token Duplication (Impersonation APIs)
Utilizzando funzioni di Windows API:
OpenProcessToken()
DuplicateTokenEx()
ImpersonateLoggedOnUser()
Queste tecniche sono spesso implementate in strumenti come Mimikatz, SharpImpersonation, o Rubeus.
3. Named Pipe Impersonation (Privilege Escalation)
Una tecnica che sfrutta:
- La creazione di una pipe nominata da parte dell'attaccante.
- L'attesa che un processo con alti privilegi si connetta alla pipe.
- L'utilizzo di
ImpersonateNamedPipeClient()per ottenere i privilegi del client.
Questa tecnica è spesso utilizzata da potato family exploits come JuicyPotato, PrintSpoofer, RoguePotato, etc.
4. Kerberos Delegation Token Abuse
Abusando della delegazione unconstrained (impostazione Active Directory), un attaccante può:
- Acquisire ticket TGT di altri utenti.
- Utilizzare i ticket per autenticarsi su altri sistemi (pass-the-ticket).
Strumenti correlati: Rubeus, Mimikatz, Kekeo.
Persistenza tramite Token Impersonation
Un attaccante può sfruttare token salvati o impersonabili per mantenere accesso persistente:
- Creazione di un Scheduled Task usando un token privilegiato.
- Utilizzo di token validi per accedere a risorse di rete in momenti successivi.
- Uso di
runascon token pre-esistenti.
Mitigazioni e Best Practices Difensive
- Limitare i privilegi: evitare che account con basso privilegio abbiano SeImpersonatePrivilege.
- Abilitare Credential Guard: previene l'accesso non autorizzato a credenziali in memoria.
- Monitoraggio eventi:
- Segmentazione della rete: separare in maniera netta gli ambienti privilegiati da quelli non privilegiati.
Conclusione
L'access token impersonation è una delle tecniche più potenti e silenziose per l'elevazione di privilegi e il movimento laterale in ambienti Windows. La comprensione profonda del funzionamento di questi meccanismi permette sia di sfruttare queste vulnerabilità in contesti red team, sia di progettare adeguate strategie di difesa.
Nel contesto della preparazione per l'eJPT o certificazioni superiori (OSCP, CRTP), la padronanza di queste tecniche è fondamentale per comprendere il vero potenziale di un attaccante post-exploitation.
Strumenti utili:
- Mimikatz
- Rubeus
- Incognito (Meterpreter)
- SharpImpersonation
- JuicyPotato / RoguePotato / PrintSpoofer
- Kekeo
Se desideri, possiamo trasformare questa guida in un articolo GitBook nella sezione "Tools" oppure "Tutorials". Fammi sapere dove preferisci pubblicarla.