Incognito
Access Token Impersonation su Windows: Guida Avanzata per Attacchi Post-Sfruttamento ---
Access Token Impersonation su Windows: Guida Avanzata per Attacchi Post-Sfruttamento
Cos'è un Access Token
Gli access token sono una componente fondamentale del meccanismo di autenticazione in ambiente Windows. Rappresentano il contesto di sicurezza associato a un processo o thread e sono generati ogni volta che un utente effettua una login con successo. Vengono gestiti dal servizio LSASS (Local Security Authority Subsystem Service).
Ogni token include:
- Identità dell'utente
- SID (Security Identifier)
- Gruppi a cui appartiene
- Privilegi
- Informazioni sull'autenticazione (interattiva, remota, batch, ecc.)
Questi token sono ereditati dai processi figlio e determinano cosa un processo può o non può fare.
Tipologie di Token
I token si dividono in due categorie principali, in base al loro livello di delega:
- Delegate-level Tokens: associati a login interattivi o RDP. Possono essere utilizzati su sistemi remoti.
- Impersonate-level Tokens: associati a login non interattivi (es. tramite servizi). Possono essere usati solo localmente.
Nota: I token di tipo "Delegate" sono più rischiosi, in quanto possono essere utilizzati per impersonare utenti su altri sistemi remoti.
Privilegi Necessari per l'Impersonation
Alcuni privilegi di sistema sono richiesti per poter impersonare un altro utente:
- SeImpersonatePrivilege: consente di impersonare un altro utente.
- SeAssignPrimaryTokenPrivilege: consente di assegnare un access token primario a un nuovo processo.
- SeCreateTokenPrivilege: consente la creazione di token arbitrari (raro, altamente privilegiato).
Questi privilegi possono essere presenti su servizi, processi o utenti compromessi.
Utilizzo del Modulo incognito in Meterpreter
Prerequisiti:
- Sessione Meterpreter attiva sulla macchina target
Passaggi:
load incognito
list_tokens -uEsempio di Output:
Delegation Tokens Available
========================================
ATTACKDEFENSE\Administrator
NT AUTHORITY\LOCAL SERVICE
Impersonation Tokens Available
========================================
No tokens available
Impersonazione Token:
impersonate_token "ATTACKDEFENSE\Administrator"Dopo questo comando, la sessione assumerà i privilegi dell'utente impersonato. Puoi verificarlo con getuid.
Situazione: Nessun Token Disponibile
Se il comando list_tokens -u non restituisce token utili, è possibile forzare la creazione di un token SYSTEM sfruttando vulnerabilità come:
#### Potato Attacks (UAC Bypass & Privilege Escalation)
- RottenPotato / JuicyPotato / PrintSpoofer / RoguePotato / SweetPotato
- Sfruttano l'abuso di COM Service o Named Pipes in presenza del privilegio
SeImpersonatePrivilege
- Generano un token SYSTEM che può poi essere impersonato con
incognito
Esempio con JuicyPotato (x64):
JuicyPotato.exe -l 1337 -p C:\Windows\System32\cmd.exe -t *Output atteso: apertura di una shell SYSTEM, oppure generazione di un token SYSTEM da impersonare.
Attenzione: Questi attacchi dipendono dalla versione di Windows, dai privilegi, e dal livello di patch.
Tecniche Alternative di Token Manipulation
#### 1. Token Theft con mimikatz
privilege::debug
token::list
token::elevate#### 2. Usare Rubeus per LAPS, Pass-the-Ticket o Overpass-the-Hash
Rubeus consente di:
- Enumerare token ("s4u" attack)
- Richiedere ticket TGT (Kerberos)
#### 3. Accesso a Token da Servizi o Processi
- Enumerare servizi con alti privilegi
- Iniettare codice e rubare token tramite strumenti come SharpUp, Seatbelt, PowerView
Difese e Mitigazioni
- Applicare patch e mantenere il sistema aggiornato
- Limitare l'uso del privilegio
SeImpersonatePrivilegea soli utenti e servizi necessari
- Monitorare le API Windows come
ImpersonateLoggedOnUser,SetThreadToken
- Abilitare il controllo degli eventi di sicurezza su LSASS e uso sospetto dei token
- Abilitare LSA Protection (RunAsPPL)
Conclusione
L'access token impersonation è una tecnica potente nel post-exploitation in ambienti Windows, specialmente se combinata con vulnerabilità locali e strumenti avanzati. Conoscere come funziona, come rilevarla e come difendersi è fondamentale per chi lavora in ambito offensive e defensive security.
Tip Pro: In ambienti reali, privilegia approcci stealthy come MakeToken o S4U combinati a misure di OPSEC avanzate per evitare detection da EDR.
Strumenti utili:
- Meterpreter / Incognito
- JuicyPotato, PrintSpoofer, RoguePotato
- Mimikatz
- Rubeus
- PowerView / Seatbelt / SharpUp