UAC - User Account Control
Koristite Trickest da lako izgradite i automatizujete radne tokove pokretane najnaprednijim alatima zajednice na svetu. Pristupite danas:
UAC
User Account Control (UAC) je funkcija koja omogućava zahtev za pristanak za povišene aktivnosti. Aplikacije imaju različite integritetne
nivoe, i 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 odobri ovim aplikacijama/zadacima pristup nivou administratora da bi se izvršavali. To je funkcija koja olakšava administratore od nenamernih promena, ali se ne smatra sigurnosnom granicom.
Za više informacija o nivoima integriteta:
pageIntegrity LevelsKada je UAC na snazi, administratoru je dodeljeno 2 tokena: standardni korisnički ključ, da obavlja redovne akcije kao običan nivo, 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-a koje se mogu postaviti za UAC. Sledeća tabela pruža dodatne detalje:
Postavka Group Policy-a | Registry ključ | Podrazumevano podešavanje |
---|---|---|
FilterAdministratorToken | Isključeno | |
EnableUIADesktopToggle | Isključeno | |
ConsentPromptBehaviorAdmin | Zahtev za pristanak za ne-Windows binarne datoteke | |
ConsentPromptBehaviorUser | Zahtev za akreditacije na sigurnom desktopu | |
EnableInstallerDetection | Omogućeno (podrazumevano za kućnu) Isključeno (podrazumevano za preduzeće) | |
ValidateAdminCodeSignatures | Isključeno | |
EnableSecureUIAPaths | Omogućeno | |
EnableLUA | Omogućeno | |
PromptOnSecureDesktop | Omogućeno | |
EnableVirtualization | Omogućeno | |
### Teorija UAC Bypass-a |
Neke programe automatski podižu ako korisnik pripada grupi administratora. Ovi binarni fajlovi imaju u svom Manifestu 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 (od Sysinternals-a).
Provera UAC-a
Da potvrdite da li je UAC omogućen uradite:
Ako je 1
, tada je UAC aktiviran, ako je 0
ili ne postoji, tada je UAC neaktivan.
Zatim, proverite koji nivo je konfigurisan:
Ako je
0
onda, UAC neće tražiti potvrdu (kao onemogućeno)Ako je
1
administratoru se traži korisničko ime i lozinka da bi izvršio binarnu datoteku 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-uAko je
4
kao2
ali nije neophodno na Secure Desktop-uAko je
5
(podrazumevano) tražiće potvrdu od administratora da pokrene ne-Windows binarne datoteke 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 kogaAko je
EnableLua=1
iLocalAccountTokenFilterPolicy=1
, Nema UAC-a za bilo kogaAko 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:
UAC zaobilazak
Imajte na umu da ako imate grafički pristup žrtvi, UAC zaobilazak je jednostavan jer jednostavno možete kliknuti na "Da" kada se pojavi UAC prozor.
UAC zaobilazak je potreban u sledećoj situaciji: UAC je aktiviran, vaš proces se izvršava u kontekstu srednjeg 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 obrnutu ljusku sa administratorskim privilegijama (visok nivo integriteta) koristeći nešto poput:
UAC zaobilaženje sa duplikacijom tokena
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 fascikli Administratora).
Izgleda da ovaj trik više ne funkcioniše
UAC zaobilaženje pomoću Cobalt Strike-a
Tehnike Cobalt Strike-a će raditi samo ako UAC nije postavljen na svoj maksimalni nivo bezbednosti
Empire i Metasploit takođe imaju nekoliko modula za zaobilaženje UAC-a.
KRBUACBypass
Dokumentacija i alat na https://github.com/wh0amitz/KRBUACBypass
UAC prevarni eksploiti
UACME koji je kompilacija nekoliko UAC prevarnih eksploita. Imajte na umu da će vam biti potrebno da kompajlirate UACME koristeći Visual Studio ili msbuild. Kompilacija će kreirati nekoliko izvršnih datoteka (kao što su Source\Akagi\outout\x64\Debug\Akagi.exe
), trebaće vam znati koja vam je potrebna.
Trebalo bi da budete oprezni jer će neka zaobilazenja 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:
Takođe, koristeći ovu stranicu možete dobiti Windows izdanje 1607
iz verzija izgradnje.
Više UAC zaobilazaka
Sve tehnike korišćene ovde zaobilaženja UAC zahtevaju potpuno interaktivnu ljusku sa žrtvom (obična nc.exe ljuska nije dovoljna).
Možete dobiti meterpreter sesiju. Migrirajte na proces koji ima vrednost Session jednaku 1:
(explorer.exe bi trebalo da radi)
UAC Bypass sa GUI
Ako imate pristup GUI možete jednostavno prihvatiti UAC prozor kada se pojavi, zaobilazak nije zaista potreban. 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 prikazivanja UAC prozora 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 da se dozvole privilegije dok korisnik to ne prihvati.
Vaš sopstveni zaobilazak - Osnovna metodologija UAC zaobilaska
Ako pogledate UACME primetićete da većina UAC zaobilazaka zloupotrebljava Dll Hijacking ranjivost (uglavnom pisanjem zlonamernog dll-a na C:\Windows\System32). Pročitajte ovo da biste saznali kako pronaći Dll Hijacking ranjivost.
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 na visokom nivou 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 UAC zaobilaska
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:
Last updated