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 ne znate šta su Windows Access Tokens read this page before continuing:
Mož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 exploita, što omogućava izvršenje procesa sa SYSTEM privilegijama. Ova ranjivost može se iskoristiti korišćenjem raznih alata, kao što su juicy-potato, RogueWinRM (koji zahteva da winrm bude onemogućen), SweetPotato, i PrintSpoofer.
Veoma 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 sa '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 (Pass-the-Hash tehnika). 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 privilegija, 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 putem impersonacije 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
, ovaj ceo 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 Local Security Authority Subsystem Service (LSASS) proces, 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:
Or the script embed in this post.
Full token privileges cheatsheet at https://github.com/gtworek/Priv2Admin, summary below will only list direct ways to exploit the privilege to obtain an admin session or read sensitive files.
SeAssignPrimaryToken
Admin
3rd party tool
"Omogućava korisniku da imitira tokene i privede se nt sistemu koristeći alate kao što su potato.exe, rottenpotato.exe i juicypotato.exe"
SeBackup
Threat
Built-in commands
Čitajte osetljive datoteke sa robocopy /b
- Može biti zanimljivije ako možete da pročitate %WINDIR%\MEMORY.DMP
- SeBackupPrivilege
(i robocopy) nisu od pomoći kada su u pitanju otvorene datoteke.
- Robocopy zahteva i SeBackup i SeRestore da bi radio sa /b parametrom.
SeCreateToken
Admin
3rd party tool
Kreirajte proizvoljni token uključujući lokalna administratorska prava sa NtCreateToken
.
SeDebug
Admin
PowerShell
Duplirajte lsass.exe
token.
SeLoadDriver
Admin
3rd party tool
1. Učitajte greškom kernel drajver kao što je szkg64.sys
2. Iskoristite ranjivost drajvera
Alternativno, privilegija se može koristiti za uklanjanje drajvera vezanih za bezbednost sa ftlMC
ugrađenom komandom. tj.: fltMC sysmondrv
SeRestore
Admin
PowerShell
Napad može biti otkriven od strane nekog AV softvera.
Alternativna metoda se oslanja na zamenu servisnih binarnih datoteka smeštenih u "Program Files" koristeći istu privilegiju
SeTakeOwnership
Admin
Built-in commands
1. takeown.exe /f "%windir%\system32"
2. icalcs.exe "%windir%\system32" /grant "%username%":F
3. Preimenujte cmd.exe u utilman.exe
4. 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 datoteka smeštenih u "Program Files" koristeći istu privilegiju.
SeTcb
Admin
3rd party tool
Manipulišite tokenima da uključite lokalna administratorska prava. Može zahtevati SeImpersonate.
Da se proveri.
Take a look to this table defining Windows tokens: https://github.com/gtworek/Priv2Admin
Take a look to this paper about privesc with tokens.
Thank you for the update. I will try to re-phrase it to something more recipe-like soon.
Script to be found at
1. Ranjivost szkg64
je navedena kao
2. szkg64
je kreirao
1. Pokrenite PowerShell/ISE sa prisutnom SeRestore privilegijom. 2. Omogućite privilegiju sa ). 3. Preimenujte utilman.exe u utilman.old 4. Preimenujte cmd.exe u utilman.exe 5. Zaključajte konzolu i pritisnite Win+U
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)