Abusing Tokens
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)
If you don't know what are Windows Access Tokens read this page before continuing:
Access TokensMožda biste mogli da eskalirate privilegije zloupotrebom tokena koje već imate
Ovo je privilegija koju drži bilo koji proces koji omogućava impersonaciju (ali ne i kreiranje) bilo kog tokena, pod uslovom da se može dobiti rukohvat za njega. Privilegovan token može se dobiti iz Windows servisa (DCOM) izazivanjem da izvrši NTLM autentifikaciju protiv eksploata, što omogućava izvršenje procesa sa SYSTEM privilegijama. Ova ranjivost može se iskoristiti koristeći razne alate, kao što su juicy-potato, RogueWinRM (koji zahteva da winrm bude onemogućen), SweetPotato, i PrintSpoofer.
RoguePotato, PrintSpoofer, SharpEfsPotato, GodPotatoJuicyPotatoVeoma je slična SeImpersonatePrivilege, koristiće istu metodu za dobijanje privilegovanog tokena. Zatim, ova privilegija omogućava dodeljivanje primarnog tokena novom/obustavljenom procesu. Sa privilegovanim tokenom za impersonaciju možete izvesti primarni token (DuplicateTokenEx). Sa tokenom, možete kreirati novi proces koristeći 'CreateProcessAsUser' ili kreirati proces u obustavljenom stanju i postaviti token (generalno, ne možete modifikovati primarni token pokrenutog procesa).
Ako ste omogućili ovaj token, možete koristiti KERB_S4U_LOGON da dobijete token za impersonaciju za bilo kog drugog korisnika bez poznavanja kredencijala, dodati proizvoljnu grupu (administratore) u token, postaviti nivo integriteta tokena na "srednji", i dodeliti ovaj token trenutnoj niti (SetThreadToken).
Sistem je prinuđen da dodeli sve pristupne kontrole za čitanje bilo kog fajla (ograničeno na operacije čitanja) ovom privilegijom. Koristi se za čitanje hešova lozinki lokalnih Administrator naloga iz registra, nakon čega se alati poput "psexec" ili "wmiexec" mogu koristiti sa hešom (tehnika Pass-the-Hash). Međutim, ova tehnika ne uspeva pod dva uslova: kada je lokalni Administrator nalog onemogućen, ili kada je politika na snazi koja uklanja administrativna prava lokalnim administratorima koji se povezuju na daljinu. Možete zloupotrebiti ovu privilegiju sa:
prateći IppSec na https://www.youtube.com/watch?v=IfCysW0Od8w&t=2610&ab_channel=IppSec
Ili kako je objašnjeno u sekciji eskaliranje privilegija sa Backup Operatorima:
Ova privilegija omogućava pristup za pisanje bilo kojoj sistemskoj datoteci, bez obzira na Access Control List (ACL) datoteke. Otvara brojne mogućnosti za eskalaciju, uključujući mogućnost modifikacije servisa, izvođenje DLL Hijacking-a, i postavljanje debuggera putem Image File Execution Options među raznim drugim tehnikama.
SeCreateTokenPrivilege je moćna dozvola, posebno korisna kada korisnik ima sposobnost da impersonira tokene, ali i u odsustvu SeImpersonatePrivilege. Ova sposobnost zavisi od mogućnosti da se impersonira token koji predstavlja istog korisnika i čiji nivo integriteta ne prelazi nivo trenutnog procesa.
Ključne tačke:
Impersonacija bez SeImpersonatePrivilege: Moguće je iskoristiti SeCreateTokenPrivilege za EoP impersonacijom tokena pod specifičnim uslovima.
Uslovi za impersonaciju tokena: Uspešna impersonacija zahteva da ciljni token pripada istom korisniku i da ima nivo integriteta koji je manji ili jednak nivou integriteta procesa koji pokušava impersonaciju.
Kreiranje i modifikacija tokena za impersonaciju: Korisnici mogu kreirati token za impersonaciju i poboljšati ga dodavanjem SID-a privilegovane grupe (Security Identifier).
Ova privilegija omogućava učitavanje i uklanjanje drajvera uređaja kreiranjem unosa u registru sa specifičnim vrednostima za ImagePath
i Type
. Pošto je direktan pristup za pisanje na HKLM
(HKEY_LOCAL_MACHINE) ograničen, umesto toga mora se koristiti HKCU
(HKEY_CURRENT_USER). Međutim, da bi HKCU
bio prepoznat od strane jezgra za konfiguraciju drajvera, mora se pratiti specifičan put.
Ovaj put je \Registry\User\<RID>\System\CurrentControlSet\Services\DriverName
, gde je <RID>
Relativni Identifikator trenutnog korisnika. Unutar HKCU
, ceo ovaj put mora biti kreiran, i dve vrednosti treba postaviti:
ImagePath
, što je putanja do binarnog fajla koji treba izvršiti
Type
, sa vrednošću SERVICE_KERNEL_DRIVER
(0x00000001
).
Koraci koje treba pratiti:
Pristupite HKCU
umesto HKLM
zbog ograničenog pristupa za pisanje.
Kreirajte put \Registry\User\<RID>\System\CurrentControlSet\Services\DriverName
unutar HKCU
, gde <RID>
predstavlja Relativni Identifikator trenutnog korisnika.
Postavite ImagePath
na putanju izvršenja binarnog fajla.
Dodelite Type
kao SERVICE_KERNEL_DRIVER
(0x00000001
).
Više načina za zloupotrebu ovog privilegija u https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges#seloaddriverprivilege
Ovo je slično SeRestorePrivilege. Njegova primarna funkcija omogućava procesu da preuzme vlasništvo nad objektom, zaobilazeći zahtev za eksplicitnim diskrecionim pristupom kroz obezbeđivanje WRITE_OWNER prava pristupa. Proces uključuje prvo obezbeđivanje vlasništva nad nameravanom registracionom ključem u svrhu pisanja, a zatim menjanje DACL-a kako bi se omogućile operacije pisanja.
Ova privilegija omogućava debugovanje drugih procesa, uključujući čitanje i pisanje u memoriju. Različite strategije za injekciju memorije, sposobne da izbegnu većinu antivirusnih i rešenja za prevenciju upada, mogu se koristiti sa ovom privilegijom.
Možete koristiti ProcDump iz SysInternals Suite da zabeležite memoriju procesa. Konkretno, ovo se može primeniti na proces Local Security Authority Subsystem Service (LSASS), koji je odgovoran za čuvanje korisničkih kredencijala nakon što se korisnik uspešno prijavi na sistem.
Zatim možete učitati ovaj dump u mimikatz da dobijete lozinke:
Ako želite da dobijete NT SYSTEM
shell, možete koristiti:
Tokeni koji se pojavljuju kao Onemogućeni mogu se omogućiti, zapravo možete zloupotrebiti Omogućene i Onemogućene tokene.
Ako imate tokene koji su onemogućeni, možete koristiti skriptu EnableAllTokenPrivs.ps1 da omogućite sve tokene:
Ili skripta ugrađena u ovu objavu.
Potpuna lista privilegija tokena na https://github.com/gtworek/Priv2Admin, sažetak u nastavku će navesti samo direktne načine za iskorišćavanje privilegije za dobijanje admin sesije ili čitanje osetljivih fajlova.
Privilegija | Uticaj | Alat | Putanja izvršenja | Napomene |
---|---|---|---|---|
| Admin | alat treće strane | "Omogućava korisniku da imitira tokene i privesc do nt sistema koristeći alate kao što su potato.exe, rottenpotato.exe i juicypotato.exe" | Hvala Aurélien Chalot na ažuriranju. Pokušaću da to preformulišem u nešto više nalik receptu uskoro. |
| Pretnja | Ugrađene komande | Čitajte osetljive fajlove sa | - Može biti zanimljivije ako možete da pročitate %WINDIR%\MEMORY.DMP
- |
| Admin | alat treće strane | Kreirajte proizvoljni token uključujući lokalne admin privilegije sa | |
| Admin | PowerShell | Duplirajte | Skripta se može naći na FuzzySecurity |
| Admin | alat treće strane | 1. Učitajte greškom kernel drajver kao što je | 1. Ranjivost |
| Admin | PowerShell | 1. Pokrenite PowerShell/ISE sa prisutnom SeRestore privilegijom. 2. Omogućite privilegiju sa Enable-SeRestorePrivilege). 3. Preimenujte utilman.exe u utilman.old 4. Preimenujte cmd.exe u utilman.exe 5. Zaključajte konzolu i pritisnite Win+U | Napad može biti otkriven od strane nekog AV softvera. Alternativna metoda se oslanja na zamenu servisnih binarnih fajlova smeštenih u "Program Files" koristeći istu privilegiju |
| Admin | Ugrađene komande | 1. | Napad može biti otkriven od strane nekog AV softvera. Alternativna metoda se oslanja na zamenu servisnih binarnih fajlova smeštenih u "Program Files" koristeći istu privilegiju. |
| Admin | alat treće strane | Manipulišite tokenima da uključite lokalne admin privilegije. Može zahtevati SeImpersonate. Da se proveri. |
Pogledajte ovu tabelu koja definiše Windows tokene: https://github.com/gtworek/Priv2Admin
Pogledajte ovaj rad o privesc-u sa tokenima.
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)