Abusing Tokens
Tokeni
Ako ne znate šta su Windows Access Tokeni, pročitajte ovu stranicu pre nego što nastavite:
pageAccess TokensMožda ćete moći da eskalirate privilegije zloupotrebom tokena koje već imate
SeImpersonatePrivilege
Ovo je privilegija koju poseduje bilo koji proces koji omogućava impersonaciju (ali ne i kreiranje) bilo kog tokena, pod uslovom da se može dobiti ručka za njega. Privilegovani token može biti dobijen od Windows servisa (DCOM) indukujući ga da izvrši NTLM autentikaciju protiv eksploatacije, omogućavajući izvršenje procesa sa SISTEM privilegijama. Ova ranjivost može biti iskorišćena korišćenjem različitih alata, poput juicy-potato, RogueWinRM (koji zahteva onemogućavanje winrm-a), SweetPotato i PrintSpoofer.
pageRoguePotato, PrintSpoofer, SharpEfsPotato, GodPotatopageJuicyPotatoSeAssignPrimaryPrivilege
Veoma je sličan SeImpersonatePrivilege, koristiće isti metod za dobijanje privilegovanog tokena. Onda, ova privilegija omogućava dodelu primarnog tokena novom/suspendovanom procesu. Sa privilegovanim impersonacionim tokenom možete izvesti primarni token (DuplicateTokenEx). Sa tokenom, možete kreirati novi proces sa 'CreateProcessAsUser' ili kreirati proces suspendovan i postaviti token (generalno, ne možete modifikovati primarni token pokrenutog procesa).
SeTcbPrivilege
Ako ste omogućili ovaj token, možete koristiti KERB_S4U_LOGON da dobijete impersonacioni token za bilo kog drugog korisnika bez poznavanja akreditiva, dodati proizvoljnu grupu (administratori) tokenu, postaviti nivo integriteta tokena na "srednji" i dodeliti ovaj token trenutnom thread-u (SetThreadToken).
SeBackupPrivilege
Sistem je primoran da dodeli sva prava za čitanje kontrole bilo kog fajla (ograničeno na operacije čitanja) ovom privilegijom. Koristi se za čitanje heševa lozinki lokalnih Administratora sa registra, nakon čega se mogu koristiti alati poput "psexec" ili "wmicexec" sa hešom (Pass-the-Hash tehnika). Međutim, ova tehnika ne uspeva pod dva uslova: kada je lokalni administratorski nalog onemogućen ili kada je politika koja uklanja administratorska prava od lokalnih administratora koji se povezuju na daljinu. Možete zloupotrebiti ovu privilegiju sa:
prateći IppSec u https://www.youtube.com/watch?v=IfCysW0Od8w&t=2610&ab_channel=IppSec
Ili kako je objašnjeno u odeljku eskalacija privilegija sa Backup Operatorima u:
SeRestorePrivilege
Dozvola za pisanje pristupa bilo kom sistemskom fajlu, bez obzira na Access Control List (ACL) fajla, obezbeđuje se ovom privilegijom. Otvora se mnogo mogućnosti za eskalaciju, uključujući mogućnost modifikacije servisa, izvođenje DLL Hijacking-a i postavljanje debugera putem Image File Execution Options među raznim drugim tehnikama.
SeCreateTokenPrivilege
SeCreateTokenPrivilege je moćna dozvola, posebno korisna kada korisnik poseduje mogućnost impersonacije tokena, ali i u odsustvu SeImpersonatePrivilege-a. Ova sposobnost zavisi od mogućnosti impersonacije tokena koji predstavlja istog korisnika i čiji nivo integriteta ne premašuje nivo integriteta trenutnog procesa.
Ključne tačke:
Impersonacija bez SeImpersonatePrivilege-a: Moguće je iskoristiti SeCreateTokenPrivilege za EoP impersonacijom tokena pod određenim uslovima.
Uslovi za Impersonaciju Tokena: Uspešna impersonacija zahteva da ciljni token pripada istom korisniku i ima nivo integriteta koji je manji ili jednak nivou integriteta procesa koji pokušava impersonaciju.
Kreiranje i Modifikacija Impersonacionih Tokena: Korisnici mogu kreirati impersonacioni token i unaprediti ga dodavanjem SID-a privilegovane grupe.
SeLoadDriverPrivilege
Ova privilegija omogućava učitavanje i oslobađanje drajvera uređaja sa kreiranjem unosa u registar sa specifičnim vrednostima za ImagePath
i Type
. Pošto je direktni pristup pisanju u HKLM
(HKEY_LOCAL_MACHINE) ograničen, umesto toga mora se koristiti HKCU
(HKEY_CURRENT_USER). Međutim, da bi se HKCU
prepoznao od strane kernela za konfiguraciju drajvera, mora se pratiti određena putanja.
Ova putanja je \Registry\User\<RID>\System\CurrentControlSet\Services\DriverName
, gde <RID>
predstavlja Relativni Identifikator trenutnog korisnika. Unutar HKCU
, mora se kreirati cela ova putanja, i postaviti dve vrednosti:
ImagePath
, što je putanja do binarnog fajla koji će se izvršitiType
, sa vrednošćuSERVICE_KERNEL_DRIVER
(0x00000001
).
Koraci koje treba pratiti:
Pristupiti
HKCU
umestoHKLM
zbog ograničenog pristupa pisanju.Kreirati putanju
\Registry\User\<RID>\System\CurrentControlSet\Services\DriverName
unutarHKCU
, gde<RID>
predstavlja Relativni Identifikator trenutnog korisnika.Postaviti
ImagePath
na putanju izvršenja binarnog fajla.Dodeliti
Type
kaoSERVICE_KERNEL_DRIVER
(0x00000001
).
Više načina za zloupotrebu ovog privilegovanja možete pronaći na https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges#seloaddriverprivilege
SeTakeOwnershipPrivilege
Ovo je slično SeRestorePrivilege. Njegova osnovna funkcija omogućava procesu da preuzme vlasništvo nad objektom, zaobilazeći zahtev za eksplicitnim pristupom putem prava pristupa WRITE_OWNER. Proces uključuje prvo obezbeđivanje vlasništva nad odgovarajućim registarskim ključem u svrhu pisanja, a zatim izmenu DACL-a radi omogućavanja operacija pisanja.
SeDebugPrivilege
Ova privilegija dozvoljava debugovanje drugih procesa, uključujući čitanje i pisanje u memoriju. Različite strategije za ubacivanje u memoriju, sposobne da izbegnu većinu antivirusnih i rešenja za prevenciju upada na hostu, mogu se koristiti sa ovom privilegijom.
Dump memorije
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 podataka nakon što se korisnik uspešno prijavi na sistem.
Zatim možete učitati ovaj dump u mimikatz-u da biste dobili lozinke:
RCE
Ako želite da dobijete NT SYSTEM
shell, možete koristiti:
Provera privilegija
Tokeni koji se pojavljuju kao Onemogućeni mogu se omogućiti, zapravo možete zloupotrebiti Omogućene i Onemogućene tokene.
Omogućite sve tokene
Ako imate onemogućene tokene, možete koristiti skriptu EnableAllTokenPrivs.ps1 da omogućite sve tokene:
Ili skript ugrađen u ovom postu.
Tabela
Potpuna lista privilegija tokena nalazi se na https://github.com/gtworek/Priv2Admin, u nastavku je samo sažetak direktnih načina za iskorišćavanje privilegija radi dobijanja administratorske sesije ili čitanja osetljivih fajlova.
Privilegija | Uticaj | Alat | Put izvršenja | Napomene |
---|---|---|---|---|
| Admin | Alat treće strane | "Omogućava korisniku da se predstavi kao tokeni i pređe na nt sistem koristeći alate poput potato.exe, rottenpotato.exe i juicypotato.exe" | Hvala Aurélien Chalot na ažuriranju. Pokušaću da to preformulišem u nešto slično receptu uskoro. |
| Pretnja | Ugrađene komande | Čitanje osetljivih fajlova pomoću | - Može biti interesantno ako možete čitati %WINDIR%\MEMORY.DMP
- |
| Admin | Alat treće strane | Kreiranje proizvoljnog tokena uključujući lokalna administratorska prava pomoću | |
| Admin | PowerShell | Dupliranje tokena | Skripta se može pronaći na FuzzySecurity |
| Admin | Alat treće strane | 1. Učitajte problematični drajver jezgra poput | 1. Ranjivost |
| Admin | PowerShell | 1. Pokrenite PowerShell/ISE sa prisutnom SeRestore privilegijom. 2. Omogućite privilegiju pomoću 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 nekih AV softvera. Alternativna metoda se oslanja na zamenu binarnih fajlova servisa smeštenih u "Program Files" koristeći istu privilegiju |
| Admin | Ugrađene komande | 1. | Napad može biti otkriven od strane nekih AV softvera. Alternativna metoda se oslanja na zamenu binarnih fajlova servisa smeštenih u "Program Files" koristeći istu privilegiju. |
| Admin | Alat treće strane | Manipulacija tokenima radi uključivanja lokalnih administratorskih prava. Može zahtevati SeImpersonate. Da se proveri. |
Reference
Pogledajte ovu tabelu koja definiše Windows tokene: https://github.com/gtworek/Priv2Admin
Pogledajte ovaj rad o eskalaciji privilegija pomoću tokena.
Last updated