Bypass UAC: Bypass User Account Control (T1548.002)

Il bypass di User Account Control rappresenta una delle tecniche di escalation più diffuse negli ambienti Windows. UAC è il meccanismo che interpone un prompt di conferma tra un processo a integrità media e l'esecuzione con privilegi amministrativi, ma decenni di retrocompatibilità hanno introdotto numerose falle sfruttabili senza alcuna interazione dell'utente.

La tecnica si colloca in due tattiche distinte: Privilege Escalation (TA0004), dove l'attaccante passa da un contesto a integrità media a uno ad integrità alta o SYSTEM, e Defense Evasion (TA0005), perché l'elevazione silenziosa evita la generazione del prompt UAC — un segnale che potrebbe insospettire l'utente o attivare telemetria legata alla conferma interattiva. La doppia appartenenza tattica riflette la natura duale del bypass: è contemporaneamente un passo verso il controllo completo della macchina e un modo per farlo senza lasciare tracce visibili.

I numeri confermano la popolarità della tecnica: 11 gruppi APT documentati, 49 software che la implementano, 1 campagna tracciata e 4 mitigazioni formali. La superficie d'attacco è amplissima perché Windows contiene decine di binari auto-elevabili — da eventvwr.exe a fodhelper.exe, da sdclt.exe a computerdefaults.exe — ciascuno con peculiarità sfruttabili attraverso manipolazioni del registro o hijack di DLL e interfacce COM.


Il bypass UAC è un esercizio fondamentale in qualsiasi laboratorio di privilege escalation Windows. Prima di tutto, verifica il livello UAC corrente sulla macchina target: il valore della chiave di registro ConsentPromptBehaviorAdmin determina quale metodo funzionerà. Un valore di 5 (default su Windows 10/11) significa che il prompt appare solo per binari non auto-elevabili, lasciando aperta la porta a tutti i bypass tramite binari trusted.

reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v ConsentPromptBehaviorAdmin

Il metodo eventvwr è uno dei più classici e ancora didatticamente valido. Consiste nel creare una chiave di registro sotto HKCU\Software\Classes\mscfile\shell\open\command contenente il percorso del payload, quindi lanciare eventvwr.exe. Poiché eventvwr è auto-elevabile e cerca la classe mscfile nel registry dell'utente prima di quello di macchina, il payload viene eseguito con integrità alta senza prompt.

reg add HKCU\Software\Classes\mscfile\shell\open\command /d "C:\temp\payload.exe" /f

eventvwr.exe

Dopo l'esecuzione, ripulisci la chiave per non lasciare artefatti:

reg delete HKCU\Software\Classes\mscfile\shell\open\command /f

Il metodo fodhelper funziona in modo analogo ma sfrutta fodhelper.exe e la chiave HKCU\Software\Classes\ms-settings\shell\open\command. È particolarmente rilevante perché usato in-the-wild da malware come Saint Bot, KOCTOPUS e Raspberry Robin. Per attivarlo occorre anche creare il valore DelegateExecute vuoto nella stessa chiave.

Per un approccio più strutturato, UACMe (open source) è il riferimento assoluto: è un progetto che raccoglie decine di metodi di bypass, ciascuno identificato da un numero, e permette di testare quale funziona sulla specifica build di Windows del target. In un red team engagement si lancia specificando il numero del metodo e il percorso del payload.

In ambienti Cobalt Strike (a pagamento) o Sliver (open source), il bypass UAC è integrato come modulo. Cobalt Strike offre il comando elevate con diversi profili UAC, mentre Sliver espone funzionalità analoghe. Anche Empire (open source) e PoshC2 (open source) includono moduli dedicati con multiple tecniche selezionabili.

Per il metodo COM-based, usato da LockBit 3.0 e Avaddon tramite l'interfaccia CMSTPLUA, il concetto è istanziare un oggetto COM auto-elevato e usare il suo metodo ShellExec per lanciare il payload. Questa variante è più silenziosa perché non tocca chiavi di registro sotto HKCU\Software\Classes.


Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?

Scarica la guida gratuita e segui il percorso corretto fin dal primo passo