19 KiB

Misbruik van Tokens

{{#include ../../../banners/hacktricks-training.md}}

Tokens

As jy nie weet wat Windows Toegangstokens is nie, lees hierdie bladsy voordat jy voortgaan:

{{#ref}} ../access-tokens.md {{#endref}}

Miskien kan jy bevoegdhede verhoog deur die tokens wat jy reeds het, te misbruik

SeImpersonatePrivilege

Dit is 'n voorreg wat deur enige proses gehou word wat die impersonasie (maar nie die skepping) van enige token toelaat, mits 'n handvatsel daarvoor verkry kan word. 'n Bevoorregte token kan van 'n Windows-diens (DCOM) verkry word deur dit te dwing om NTLM-verifikasie teen 'n exploit uit te voer, wat vervolgens die uitvoering van 'n proses met SYSTEM-bevoegdhede moontlik maak. Hierdie kwesbaarheid kan benut word met verskeie gereedskap, soos juicy-potato, RogueWinRM (wat vereis dat winrm gedeaktiveer moet wees), SweetPotato, EfsPotato, DCOMPotato en PrintSpoofer.

{{#ref}} ../roguepotato-and-printspoofer.md {{#endref}}

{{#ref}} ../juicypotato.md {{#endref}}

SeAssignPrimaryPrivilege

Dit is baie soortgelyk aan SeImpersonatePrivilege, dit sal die dieselfde metode gebruik om 'n bevoorregte token te verkry.
Dan laat hierdie voorreg toe om 'n primêre token aan 'n nuwe/onderbreekte proses toe te ken. Met die bevoorregte impersonasie-token kan jy 'n primêre token aflei (DuplicateTokenEx).
Met die token kan jy 'n nuwe proses skep met 'CreateProcessAsUser' of 'n proses onderbreek en die token stel (in die algemeen kan jy nie die primêre token van 'n lopende proses verander nie).

SeTcbPrivilege

As jy hierdie token geaktiveer het, kan jy KERB_S4U_LOGON gebruik om 'n impersonasie-token vir enige ander gebruiker te verkry sonder om die akrediteer te ken, voeg 'n arbitrêre groep (admins) by die token, stel die integriteitsvlak van die token op "medium", en ken hierdie token toe aan die huidige draad (SetThreadToken).

SeBackupPrivilege

Die stelsel word veroorsaak om alle lees toegang beheer aan enige lêer te verleen (beperk tot leesoperasies) deur hierdie voorreg. Dit word gebruik om die wagwoord-hashes van plaaslike Administrateur rekeninge uit die register te lees, waarna gereedskap soos "psexec" of "wmiexec" met die hash (Pass-the-Hash tegniek) gebruik kan word. Hierdie tegniek faal egter onder twee toestande: wanneer die Plaaslike Administrateur rekening gedeaktiveer is, of wanneer 'n beleid in plek is wat administratiewe regte van Plaaslike Administrateurs wat afstand doen, verwyder.
Jy kan hierdie voorreg misbruik met:

{{#ref}} ../../active-directory-methodology/privileged-groups-and-token-privileges.md {{#endref}}

SeRestorePrivilege

Toestemming vir skrywe toegang tot enige stelsellêer, ongeag die lêer se Toegang Beheer Lys (ACL), word deur hierdie voorreg verskaf. Dit bied talle moontlikhede vir verhoogde bevoegdhede, insluitend die vermoë om dienste te wysig, DLL Hijacking uit te voer, en debuggers via Image File Execution Options in te stel, onder verskeie ander tegnieke.

SeCreateTokenPrivilege

SeCreateTokenPrivilege is 'n kragtige toestemming, veral nuttig wanneer 'n gebruiker die vermoë het om tokens te impersonate, maar ook in die afwesigheid van SeImpersonatePrivilege. Hierdie vermoë hang af van die vermoë om 'n token te impersonate wat dieselfde gebruiker verteenwoordig en wie se integriteitsvlak nie hoër is as dié van die huidige proses nie.

Belangrike Punten:

  • Impersonasie sonder SeImpersonatePrivilege: Dit is moontlik om SeCreateTokenPrivilege te benut vir EoP deur tokens onder spesifieke toestande te impersonate.
  • Toestande vir Token Impersonasie: Succesvolle impersonasie vereis dat die teiken token aan dieselfde gebruiker behoort en 'n integriteitsvlak het wat minder of gelyk is aan die integriteitsvlak van die proses wat impersonasie probeer.
  • Skepping en Wysiging van Impersonasie Tokens: Gebruikers kan 'n impersonasie-token skep en dit verbeter deur 'n bevoorregte groep se SID (Security Identifier) by te voeg.

SeLoadDriverPrivilege

Hierdie voorreg laat toe om toestel bestuurders te laai en te ontlaai met die skepping van 'n registerinskrywing met spesifieke waardes vir ImagePath en Type. Aangesien direkte skrywe toegang tot HKLM (HKEY_LOCAL_MACHINE) beperk is, moet HKCU (HKEY_CURRENT_USER) eerder gebruik word. Om egter HKCU vir die kern herkenbaar te maak vir bestuurderkonfigurasie, moet 'n spesifieke pad gevolg word.

Hierdie pad is \Registry\User\<RID>\System\CurrentControlSet\Services\DriverName, waar <RID> die Relatiewe Identifiseerder van die huidige gebruiker is. Binne HKCU moet hierdie hele pad geskep word, en twee waardes moet gestel word:

  • ImagePath, wat die pad na die binaire is wat uitgevoer moet word
  • Type, met 'n waarde van SERVICE_KERNEL_DRIVER (0x00000001).

Stappe om te Volg:

  1. Toegang tot HKCU eerder as HKLM weens beperkte skrywe toegang.
  2. Skep die pad \Registry\User\<RID>\System\CurrentControlSet\Services\DriverName binne HKCU, waar <RID> die huidige gebruiker se Relatiewe Identifiseerder verteenwoordig.
  3. Stel die ImagePath op die binaire se uitvoeringspad.
  4. Ken die Type as SERVICE_KERNEL_DRIVER (0x00000001) toe.
# Example Python code to set the registry values
import winreg as reg

# Define the path and values
path = r'Software\YourPath\System\CurrentControlSet\Services\DriverName' # Adjust 'YourPath' as needed
key = reg.OpenKey(reg.HKEY_CURRENT_USER, path, 0, reg.KEY_WRITE)
reg.SetValueEx(key, "ImagePath", 0, reg.REG_SZ, "path_to_binary")
reg.SetValueEx(key, "Type", 0, reg.REG_DWORD, 0x00000001)
reg.CloseKey(key)

Meer maniere om hierdie voorreg te misbruik in https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges#seloaddriverprivilege

SeTakeOwnershipPrivilege

Dit is soortgelyk aan SeRestorePrivilege. Die primêre funksie laat 'n proses toe om eienaarskap van 'n objek aan te neem, wat die vereiste vir eksplisiete diskresionêre toegang omseil deur die verskaffing van WRITE_OWNER toegangregte. Die proses behels eers die verkryging van eienaarskap van die beoogde registriesleutel vir skryfdoeleindes, en dan die verandering van die DACL om skryfoperasies moontlik te maak.

takeown /f 'C:\some\file.txt' #Now the file is owned by you
icacls 'C:\some\file.txt' /grant <your_username>:F #Now you have full access
# Use this with files that might contain credentials such as
%WINDIR%\repair\sam
%WINDIR%\repair\system
%WINDIR%\repair\software
%WINDIR%\repair\security
%WINDIR%\system32\config\security.sav
%WINDIR%\system32\config\software.sav
%WINDIR%\system32\config\system.sav
%WINDIR%\system32\config\SecEvent.Evt
%WINDIR%\system32\config\default.sav
c:\inetpub\wwwwroot\web.config

SeDebugPrivilege

Hierdie voorreg stel die debug ander prosesse in staat, insluitend om in die geheue te lees en te skryf. Verskeie strategieë vir geheue-inspuiting, wat in staat is om die meeste antivirus- en gasheer-inbraakvoorkomingsoplossings te omseil, kan met hierdie voorreg gebruik word.

Dump geheue

Jy kan ProcDump van die SysInternals Suite of SharpDump gebruik om die geheue van 'n proses te vang. Spesifiek kan dit van toepassing wees op die Local Security Authority Subsystem Service (LSASS) proses, wat verantwoordelik is vir die stoor van gebruikersakkrediteer nadat 'n gebruiker suksesvol in 'n stelsel aangemeld het.

Jy kan dan hierdie dump in mimikatz laai om wagwoorde te verkry:

mimikatz.exe
mimikatz # log
mimikatz # sekurlsa::minidump lsass.dmp
mimikatz # sekurlsa::logonpasswords

RCE

As jy 'n NT SYSTEM shell wil kry, kan jy gebruik maak van:

# Get the PID of a process running as NT SYSTEM
import-module psgetsys.ps1; [MyProcess]::CreateProcessFromParent(<system_pid>,<command_to_execute>)

SeManageVolumePrivilege

Die SeManageVolumePrivilege is 'n Windows gebruikersreg wat gebruikers toelaat om skyf volumes te bestuur, insluitend die skep en verwyder van hulle. Alhoewel dit bedoel is vir administrateurs, kan dit, indien aan nie-admin gebruikers toegeken, uitgebuit word vir privilige-eskalasie.

Dit is moontlik om hierdie privilige te benut om volumes te manipuleer, wat lei tot volle volume toegang. Die SeManageVolumeExploit kan gebruik word om volle toegang aan alle gebruikers vir C:\ te gee.

Boonop beskryf die proses uiteengesit in hierdie Medium artikel die gebruik van DLL-hijacking in samewerking met SeManageVolumePrivilege om privilige te eskaleer. Deur 'n payload DLL C:\Windows\System32\wbem\tzres.dll te plaas en systeminfo aan te roep, word die dll uitgevoer.

Check privileges

whoami /priv

Die tokens wat as Gestremde verskyn kan geaktiveer word, jy kan eintlik Geaktiveerde en Gestremde tokens misbruik.

Aktiveer Alle die tokens

As jy tokens het wat gestremd is, kan jy die skrip EnableAllTokenPrivs.ps1 gebruik om al die tokens te aktiveer:

.\EnableAllTokenPrivs.ps1
whoami /priv

Of die script ingebed in hierdie plasing.

Tabel

Volledige token bevoegdhede cheatsheet by https://github.com/gtworek/Priv2Admin, samevatting hieronder sal slegs direkte maniere lys om die bevoegdheid te benut om 'n admin-sessie te verkry of sensitiewe lêers te lees.

Bevoegdheid Impak Gereedskap Uitvoeringspad Opmerkings
SeAssignPrimaryToken Admin 3de party gereedskap "Dit sal 'n gebruiker toelaat om tokens na te boots en privesc na nt stelsel te gebruik met gereedskap soos potato.exe, rottenpotato.exe en juicypotato.exe" Dankie Aurélien Chalot vir die opdatering. Ek sal probeer om dit binnekort in iets meer resep-agtig te herformuleer.
SeBackup Dreig Ingeboude opdragte Lees sensitiewe lêers met robocopy /b

- Mag meer interessant wees as jy %WINDIR%\MEMORY.DMP kan lees

- SeBackupPrivilege (en robocopy) is nie nuttig wanneer dit kom by oop lêers nie.

- Robocopy vereis beide SeBackup en SeRestore om met /b parameter te werk.

SeCreateToken Admin 3de party gereedskap Skep arbitrêre token insluitend plaaslike admin regte met NtCreateToken.
SeDebug Admin PowerShell Dubbel die lsass.exe token. Skrip om te vind by FuzzySecurity
SeLoadDriver Admin 3de party gereedskap

1. Laai foutiewe kern bestuurder soos szkg64.sys
2. Benut die bestuurder kwesbaarheid

Alternatiewelik kan die bevoegdheid gebruik word om sekuriteitsverwante bestuurders met ftlMC ingeboude opdrag te ontlaai. d.w.z.: fltMC sysmondrv

1. Die szkg64 kwesbaarheid is gelys as CVE-2018-15732
2. Die szkg64 benuttingskode is geskep deur Parvez Anwar

SeRestore Admin PowerShell

1. Begin PowerShell/ISE met die SeRestore bevoegdheid teenwoordig.
2. Aktiveer die bevoegdheid met Enable-SeRestorePrivilege).
3. Hernoem utilman.exe na utilman.old
4. Hernoem cmd.exe na utilman.exe
5. Sluit die konsole en druk Win+U

Die aanval mag deur sommige AV sagteware opgespoor word.

Alternatiewe metode berus op die vervanging van diens binaire wat in "Program Files" gestoor is met dieselfde bevoegdheid

SeTakeOwnership Admin Ingeboude opdragte

1. takeown.exe /f "%windir%\system32"
2. icalcs.exe "%windir%\system32" /grant "%username%":F
3. Hernoem cmd.exe na utilman.exe
4. Sluit die konsole en druk Win+U

Die aanval mag deur sommige AV sagteware opgespoor word.

Alternatiewe metode berus op die vervanging van diens binaire wat in "Program Files" gestoor is met dieselfde bevoegdheid.

SeTcb Admin 3de party gereedskap

Manipuleer tokens om plaaslike admin regte ingesluit te hê. Mag SeImpersonate vereis.

Om geverifieer te word.

Verwysing

{{#include ../../../banners/hacktricks-training.md}}