Manipolazione dei Token di Accesso: Access Token Manipulation (T1134)
La manipolazione dei token di accesso è una tecnica che sfrutta il modello di sicurezza di Windows per operare sotto un contesto utente diverso da quello originale del processo. Ogni processo in esecuzione porta con sé un access token che descrive privilegi, gruppi di appartenenza e SID del proprietario; alterando o sostituendo questo token, un attaccante fa apparire il proprio codice come se fosse eseguito da un altro utente, tipicamente NT AUTHORITY\SYSTEM.
MITRE cataloga la tecnica sotto due tattiche: TA0004 Privilege Escalation, perché consente il salto da amministratore locale a SYSTEM sfruttando privilegi come SeImpersonatePrivilege o SeDebugPrivilege, e TA0005 Defense Evasion, poiché mascherare la vera identità del processo permette di aggirare controlli basati su ownership, ACL e regole di correlazione utente-attività.
Sul piano operativo la tecnica si colloca a valle dell'Initial Access e dell'Execution: presuppone un foothold con privilegi almeno di service account o di web application pool. L'impatto è significativo perché 3 gruppi APT documentati e 19 famiglie di malware — tra cui Ryuk, BlackCat, Cuba, HermeticWiper, SUNSPOT e Qilin — la integrano nativamente. La campagna C0017 di APT41 contro sei reti governative statunitensi ha dimostrato quanto sia strategica: l'exploit BADPOTATO offuscato con ConfuserEx è stato usato per ottenere SYSTEM tramite named-pipe impersonation, aprendo la strada all'esfiltrazione di dati PII.
L'abuso dei token in un red team engagement segue una catena piuttosto stabile: si acquisisce un contesto con SeImpersonatePrivilege (tipicamente da IIS, MSSQL, o account di servizio), si forza un client privilegiato a connettersi a una named pipe controllata, si duplica il token risultante e si esegue codice come SYSTEM.
La famiglia Potato è il punto di partenza obbligato. JuicyPotato (open source, non più funzionante su Windows Server 2019+) è stato sostituito da RoguePotato, PrintSpoofer e GodPotato (tutti open source su GitHub). Un flusso tipico su una shell con privilegi di service account:
whoami /priv
Se SeImpersonatePrivilege è presente e abilitato, si procede con PrintSpoofer:
PrintSpoofer.exe -i -c cmd
Su sistemi dove il servizio Spooler è disabilitato, GodPotato sfrutta il DCOM RPC:
GodPotato.exe -cmd "cmd /c whoami"
Per la manipolazione diretta dei token via PowerShell, il modulo Invoke-TokenManipulation di PowerSploit (open source, non più mantenuto attivamente ma ancora funzionante) permette sia l'enumerazione sia il furto. Enumerare i token disponibili:
Invoke-TokenManipulation -ShowAll
Eseguire un processo con il token di un utente specifico:
Invoke-TokenManipulation -CreateProcess "cmd.exe" -Username "NT AUTHORITY\SYSTEM"
Empire (open source, fork BC-Security attivo) e PoshC2 (open source) integrano lo stesso modulo nei rispettivi framework post-exploitation. Sliver (open source, BishopFox) offre il comando make_token per creare token di logon con credenziali note e impersonate per rubarli da processi esistenti.
Sul fronte nativo, Metasploit Framework (open source, con edizione Pro a pagamento) espone getsystem in Meterpreter, che tenta quattro tecniche tra cui la named-pipe impersonation citata nel profilo FIN6. Incognito, integrato in Meterpreter e disponibile come tool standalone (open source), elenca e utilizza token delegati:
load incognito list_tokens -u impersonate_token "NT AUTHORITY\SYSTEM"
Per UAC bypass tramite token, come fa Gelsemium su Windows 7, è utile studiare UACME (open source) che documenta decine di tecniche di elevation, incluse quelle basate su token duplication da processi auto-elevated.
In laboratorio è fondamentale testare con Sysmon attivo per osservare in tempo reale gli EventID generati dalle proprie azioni, così da tarare le detection prima del deploy in produzione.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo