Integrity Levels
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
U Windows Vista i novijim verzijama, svi zaštićeni predmeti dolaze sa oznakom nivoa integriteta. Ova postavka uglavnom dodeljuje "srednji" nivo integriteta datotekama i registracionim ključevima, osim za određene foldere i datoteke kojima Internet Explorer 7 može pisati na niskom nivou integriteta. Podrazumevano ponašanje je da procesi koje pokreću standardni korisnici imaju srednji nivo integriteta, dok usluge obično rade na sistemskom nivou integriteta. Oznaka visokog integriteta štiti korenski direktorijum.
Ključna pravila su da objekti ne mogu biti modifikovani od strane procesa sa nižim nivoom integriteta od nivoa objekta. Nivoi integriteta su:
Nepouzdano: Ovaj nivo je za procese sa anonimnim prijavama. %%%Primer: Chrome%%%
Nizak: Uglavnom za internet interakcije, posebno u Zaštićenom režimu Internet Explorera, utičući na povezane datoteke i procese, kao i određene foldere poput Privremenog internet foldera. Procesi sa niskim integritetom suočavaju se sa značajnim ograničenjima, uključujući nedostatak pristupa za pisanje u registru i ograničen pristup pisanju korisničkog profila.
Srednji: Podrazumevani nivo za većinu aktivnosti, dodeljen standardnim korisnicima i objektima bez specifičnih nivoa integriteta. Čak i članovi Administratorske grupe rade na ovom nivou podrazumevano.
Visok: Rezervisan za administratore, omogućavajući im da modifikuju objekte na nižim nivoima integriteta, uključujući one na visokom nivou.
Sistem: Najviši operativni nivo za Windows kernel i osnovne usluge, van domašaja čak i za administratore, osiguravajući zaštitu vitalnih sistemskih funkcija.
Instalater: Jedinstveni nivo koji stoji iznad svih drugih, omogućavajući objektima na ovom nivou da deinstaliraju bilo koji drugi objekat.
Možete dobiti nivo integriteta procesa koristeći Process Explorer iz Sysinternals, pristupajući svojstvima procesa i gledajući karticu "Bezbednost":
Takođe možete dobiti svoj trenutni nivo integriteta koristeći whoami /groups
Objekat unutar fajl sistema može imati minimalne zahteve za nivo integriteta i ako proces nema ovaj nivo integriteta, neće moći da interaguje sa njim. Na primer, hajde da napravimo regularnu datoteku iz konzole regularnog korisnika i proverimo dozvole:
Sada dodelimo minimalni nivo integriteta High datoteci. Ovo mora biti urađeno iz konzole koja se pokreće kao administrator, jer će obična konzola raditi na Medium Integrity nivou i neće biti dozvoljeno dodeliti High Integrity nivo objektu:
Ovdje stvari postaju zanimljive. Možete vidjeti da korisnik DESKTOP-IDJHTKP\user
ima PUNE privilegije nad datotekom (zaista, to je bio korisnik koji je kreirao datoteku), međutim, zbog minimalnog nivoa integriteta koji je implementiran, neće moći više da modifikuje datoteku osim ako ne radi unutar Visokog Nivoa Integriteta (napomena: moći će da je pročita):
Dakle, kada datoteka ima minimalni nivo integriteta, da biste je izmenili, morate raditi barem na tom nivou integriteta.
Napravio sam kopiju cmd.exe
u C:\Windows\System32\cmd-low.exe
i postavio joj nivo integriteta nizak iz administratorske konzole:
Sada, kada pokrenem cmd-low.exe
, on će raditi pod niskim nivoom integriteta umesto pod srednjim:
Za radoznale, ako dodelite visoki nivo integriteta binarnom fajlu (icacls C:\Windows\System32\cmd-high.exe /setintegritylevel high
), on se neće automatski pokrenuti sa visokim nivoom integriteta (ako ga pozovete iz srednjeg nivoa integriteta --po defaultu-- pokrenuće se pod srednjim nivoom integriteta).
Nisu svi fajlovi i fascikle imaju minimalni nivo integriteta, ali svi procesi rade pod nivoom integriteta. I slično onome što se desilo sa fajl sistemom, ako proces želi da piše unutar drugog procesa, mora imati barem isti nivo integriteta. To znači da proces sa niskim nivoom integriteta ne može otvoriti handle sa punim pristupom procesu sa srednjim nivoom integriteta.
Zbog ograničenja komentisanih u ovoj i prethodnoj sekciji, sa bezbednosnog stanovišta, uvek je preporučljivo pokrenuti proces na najnižem mogućem nivou integriteta.