Bypass UAC: Bypass User Account Control (T1548.002)
Il Bypass User Account Control è una delle tecniche di elevazione privilegi più abusate su Windows, catalogata da MITRE ATT&CK come T1548.002 e mappata sulle tattiche TA0004 (Privilege Escalation) e TA0005 (Defense Evasion). L'obiettivo è passare da un'esecuzione a integrità Medium — tipica di un account amministratore in modalità utente — a High Integrity, senza generare il prompt di conferma che avviserebbe la vittima.
Il meccanismo UAC introdotto con Windows Vista prevede che alcuni binari firmati Microsoft possano auto-elevarsi silenziosamente se il livello di enforcement non è al massimo. Gli attaccanti sfruttano questa caratteristica dirottando il flusso di esecuzione di eseguibili auto-elevate come eventvwr.exe, fodhelper.exe, sdclt.exe o computerdefaults.exe, tipicamente manipolando chiavi di registro sotto HKCU che vengono lette dal processo elevato.
L'impatto operativo è rilevante: i dati MITRE contano 11 gruppi APT, 49 famiglie di malware e tool offensivi e 1 campagna documentata che impiegano questa tecnica. Il ventaglio spazia da ransomware come LockBit 3.0, BlackCat, Avaddon e BitPaymer a framework post-exploitation quali Cobalt Strike, Empire, Sliver e PoshC2, fino a impianti sofisticati come InvisiMole, Gelsemium e Winnti for Windows. La disponibilità pubblica di UACMe ha reso queste tecniche accessibili a qualsiasi livello di sofisticazione.
Per un red team, la simulazione di T1548.002 in laboratorio parte quasi sempre da UACMe (open source), il repository di riferimento mantenuto da hfiref0x che raccoglie oltre settanta metodi documentati. La sintassi di base è Akagi64.exe [metodo] [comando], ad esempio invocando il metodo 41 (Fodhelper) per lanciare una shell elevata. È fondamentale operare da un account già membro del gruppo Administrators, altrimenti nessun bypass funziona: UAC non concede privilegi che l'utente non possiede.
Il metodo Fodhelper rimane didatticamente il più chiaro. La logica prevede la creazione di una chiave di registro sotto HKCU\Software\Classes\ms-settings\Shell\Open\command con valore predefinito puntato al binario da elevare e la stringa DelegateExecute vuota. All'avvio di fodhelper.exe, il processo auto-elevate consulta HKCU prima di HKCR e lancia il payload a High Integrity senza prompt. La stessa logica si applica a computerdefaults.exe.
Un secondo classico è il metodo eventvwr, che manipola HKCU\Software\Classes\mscfile\shell\open\command: quando l'utente o uno script lancia eventvwr.msc, la MMC invoca la chiave dirottata. BitPaymer e ZeroT hanno usato varianti di questo pattern in produzione.
Per chi opera con Cobalt Strike (a pagamento) sono disponibili i comandi elevate uac-token-duplication e elevate uac-schtasks, mentre Empire (open source, fork PowerShell Empire e Starkiller) espone moduli come powershell/privesc/bypassuac_fodhelper e powershell/privesc/bypassuac_eventvwr. PoshC2 (open source) e Sliver (open source) offrono set analoghi. Per PowerShell puro esistono script standalone in PowerSploit (open source, non più mantenuto ma funzionante) come Invoke-BypassUAC.
Un approccio più moderno, usato da Avaddon e BADHATCH, sfrutta l'interfaccia COM CMSTPLUA ({3E5FC7F9-9A51-4367-9063-A120244FBEC7}): un client COM richiede l'oggetto tramite CoGetObject con moniker Elevation:Administrator!new:, ottenendo un'istanza a integrità elevata che espone metodi con side-effect di esecuzione. La tecnica SilentCleanup, adottata da CSPY Downloader, BADHATCH e CHIMNEYSWEEP, sfrutta invece un task pianificato che gira come Highest Available leggendo variabili d'ambiente utente controllabili — in particolare %windir% — per redirigere l'esecuzione.
In lab consigliato usare macchine Windows 10/11 senza patch aggressive, con UAC al livello di default (Notify me only when apps try to make changes), e Sysmon attivo per validare le detection prima di ogni test.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo