Tutorials

Incognito

Access Token Impersonation su Windows: Guida Avanzata per Attacchi Post-Sfruttamento ---

#exploitation#post-exploitation#windows#privesc

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:

bash
load incognito
list_tokens -u

Esempio di Output:

bash
Delegation Tokens Available
========================================
ATTACKDEFENSE\Administrator
NT AUTHORITY\LOCAL SERVICE

Impersonation Tokens Available ======================================== No tokens available

Impersonazione Token:

bash
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):

bash
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

powershell
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 SeImpersonatePrivilege a 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