Abusing Tokens
Reading time: 10 minutes
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Tokens
Ikiwa hujui ni nini Windows Access Tokens, soma ukurasa huu kabla ya kuendelea:
{{#ref}} access-tokens.md {{#endref}}
Labda unaweza kuweza kupandisha mamlaka kwa kutumia tokens ulizonazo tayari
SeImpersonatePrivilege
Hii ni mamlaka ambayo inashikiliwa na mchakato wowote inaruhusu uigaji (lakini si uundaji) wa token yoyote, ikiwa tu kushughulikia kwake kunaweza kupatikana. Token yenye mamlaka inaweza kupatikana kutoka kwa huduma ya Windows (DCOM) kwa kuifanya ifanye uthibitishaji wa NTLM dhidi ya exploit, kisha kuwezesha utekelezaji wa mchakato wenye mamlaka ya SYSTEM. Uthibitisho huu unaweza kutumika kwa kutumia zana mbalimbali, kama juicy-potato, RogueWinRM (ambayo inahitaji winrm kuzuiliwa), SweetPotato, na PrintSpoofer.
{{#ref}} roguepotato-and-printspoofer.md {{#endref}}
{{#ref}} juicypotato.md {{#endref}}
SeAssignPrimaryPrivilege
Ni sawa sana na SeImpersonatePrivilege, itatumia njia ile ile kupata token yenye mamlaka.
Kisha, mamlaka hii inaruhusu kuteua token ya msingi kwa mchakato mpya/uliokamatwa. Kwa token ya uigaji yenye mamlaka unaweza kuunda token ya msingi (DuplicateTokenEx).
Kwa token hiyo, unaweza kuunda mchakato mpya kwa 'CreateProcessAsUser' au kuunda mchakato uliokamatwa na kuteua token (kwa ujumla, huwezi kubadilisha token ya msingi ya mchakato unaoendelea).
SeTcbPrivilege
Ikiwa umewezesha token hii unaweza kutumia KERB_S4U_LOGON kupata token ya uigaji kwa mtumiaji mwingine yeyote bila kujua taarifa za kuingia, ongeza kundi lolote (admins) kwenye token, weka kiwango cha uaminifu cha token kuwa "medium", na kuteua token hii kwa thread ya sasa (SetThreadToken).
SeBackupPrivilege
Mfumo unalazimishwa kutoa udhibiti wa ufikiaji wa kusoma kwa faili yoyote (iliyopunguzwa kwa operesheni za kusoma) kwa mamlaka hii. Inatumika kwa kusoma hash za nywila za akaunti za Msimamizi wa ndani kutoka kwenye rejista, baada ya hapo, zana kama "psexec" au "wmiexec" zinaweza kutumika na hash hiyo (Pass-the-Hash technique). Hata hivyo, mbinu hii inashindwa chini ya hali mbili: wakati akaunti ya Msimamizi wa ndani imezuiliwa, au wakati sera ipo inayondoa haki za kiutawala kutoka kwa Wasimamizi wa ndani wanaounganisha kwa mbali.
Unaweza kuitumia mamlaka hii na:
- https://github.com/Hackplayers/PsCabesha-tools/blob/master/Privesc/Acl-FullControl.ps1
- https://github.com/giuliano108/SeBackupPrivilege/tree/master/SeBackupPrivilegeCmdLets/bin/Debug
- kufuata IppSec katika https://www.youtube.com/watch?v=IfCysW0Od8w&t=2610&ab_channel=IppSec
- Au kama ilivyoelezwa katika sehemu ya kupandisha mamlaka na Watoa Hifadhi ya:
{{#ref}} ../active-directory-methodology/privileged-groups-and-token-privileges.md {{#endref}}
SeRestorePrivilege
Ruhusa ya ufikiaji wa kuandika kwa faili yoyote ya mfumo, bila kujali Orodha ya Udhibiti wa Ufikiaji (ACL) ya faili hiyo, inatolewa na mamlaka hii. Inafungua uwezekano mwingi wa kupandisha, ikiwa ni pamoja na uwezo wa kubadilisha huduma, kufanya DLL Hijacking, na kuweka debuggers kupitia Chaguzi za Utekelezaji wa Faili ya Picha kati ya mbinu nyingine mbalimbali.
SeCreateTokenPrivilege
SeCreateTokenPrivilege ni ruhusa yenye nguvu, hasa inavyofaa wakati mtumiaji ana uwezo wa kuigiza tokens, lakini pia bila SeImpersonatePrivilege. Uwezo huu unategemea uwezo wa kuigiza token inayowakilisha mtumiaji yule yule na ambayo kiwango chake cha uaminifu hakizidi kile cha mchakato wa sasa.
Mambo Muhimu:
- Uigaji bila SeImpersonatePrivilege: Inawezekana kutumia SeCreateTokenPrivilege kwa EoP kwa kuigiza tokens chini ya hali maalum.
- Hali za Uigaji wa Token: Uigaji wa mafanikio unahitaji token lengwa kuwa ya mtumiaji yule yule na kuwa na kiwango cha uaminifu ambacho ni kidogo au sawa na kiwango cha uaminifu cha mchakato unaojaribu kuigiza.
- Uundaji na Kubadilisha Tokens za Uigaji: Watumiaji wanaweza kuunda token ya uigaji na kuiboresha kwa kuongeza SID ya kundi lenye mamlaka (Security Identifier).
SeLoadDriverPrivilege
Mamlaka hii inaruhusu kuchaji na kuondoa madereva ya vifaa kwa kuunda kipengee cha rejista chenye thamani maalum za ImagePath
na Type
. Kwa kuwa ufikiaji wa moja kwa moja wa kuandika kwenye HKLM
(HKEY_LOCAL_MACHINE) umepunguzika, HKCU
(HKEY_CURRENT_USER) lazima itumike badala yake. Hata hivyo, ili kufanya HKCU
itambulike kwa kernel kwa ajili ya usanidi wa dereva, njia maalum lazima ifuatwe.
Njia hii ni \Registry\User\<RID>\System\CurrentControlSet\Services\DriverName
, ambapo <RID>
ni Kitambulisho cha Kijumla cha mtumiaji wa sasa. Ndani ya HKCU
, njia hii yote lazima iundwe, na thamani mbili zinahitaji kuwekwa:
ImagePath
, ambayo ni njia ya binary itakayotekelezwaType
, ikiwa na thamani yaSERVICE_KERNEL_DRIVER
(0x00000001
).
Hatua za Kufuatia:
- Fikia
HKCU
badala yaHKLM
kutokana na ufikiaji wa kuandika uliozuiliwa. - Unda njia
\Registry\User\<RID>\System\CurrentControlSet\Services\DriverName
ndani yaHKCU
, ambapo<RID>
inawakilisha Kitambulisho cha Kijumla cha mtumiaji wa sasa. - Weka
ImagePath
kuwa njia ya utekelezaji wa binary. - Teua
Type
kamaSERVICE_KERNEL_DRIVER
(0x00000001
).
# 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)
Zaidi ya njia za kutumia ruhusa hii katika https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges#seloaddriverprivilege
SeTakeOwnershipPrivilege
Hii ni sawa na SeRestorePrivilege. Kazi yake kuu inaruhusu mchakato kuchukua umiliki wa kitu, ikiepuka hitaji la ufikiaji wa hiari kupitia utoaji wa haki za WRITE_OWNER. Mchakato huu unahusisha kwanza kupata umiliki wa funguo za rejista zinazokusudiwa kwa madhumuni ya kuandika, kisha kubadilisha DACL ili kuwezesha operesheni za kuandika.
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
Haki hii inaruhusu kudebug mchakato mingine, ikiwa ni pamoja na kusoma na kuandika katika kumbukumbu. Mikakati mbalimbali ya kuingiza kumbukumbu, inayoweza kukwepa suluhisho nyingi za antivirus na ulinzi wa uvamizi wa mwenyeji, zinaweza kutumika kwa haki hii.
Dump memory
Unaweza kutumia ProcDump kutoka kwa SysInternals Suite ili kukamata kumbukumbu ya mchakato. Kwa hakika, hii inaweza kutumika kwa mchakato wa Local Security Authority Subsystem Service (LSASS), ambao unawajibika kuhifadhi akidi za mtumiaji mara tu mtumiaji anapofanikiwa kuingia kwenye mfumo.
Kisha unaweza kupakia dump hii katika mimikatz ili kupata nywila:
mimikatz.exe
mimikatz # log
mimikatz # sekurlsa::minidump lsass.dmp
mimikatz # sekurlsa::logonpasswords
RCE
Ikiwa unataka kupata NT SYSTEM
shell unaweza kutumia:
# Get the PID of a process running as NT SYSTEM
import-module psgetsys.ps1; [MyProcess]::CreateProcessFromParent(<system_pid>,<command_to_execute>)
Angalia mamlaka
whoami /priv
tokens ambazo zinaonekana kama Zimezimwa zinaweza kuwezeshwa, unaweza kweli kutumia Zimewezeshwa na Zimezimwa tokens.
Wezesha Tokens Zote
Ikiwa una tokens zilizozimwa, unaweza kutumia script EnableAllTokenPrivs.ps1 kuwezesha tokens zote:
.\EnableAllTokenPrivs.ps1
whoami /priv
Au script ulio ndani ya post.
Jedwali
Cheatsheet kamili ya ruhusa za tokeni inapatikana kwenye https://github.com/gtworek/Priv2Admin, muhtasari hapa chini utaorodhesha tu njia za moja kwa moja za kutumia ruhusa ili kupata kikao cha admin au kusoma faili nyeti.
Ruhusa | Athari | Chombo | Njia ya utekelezaji | Maelezo |
---|---|---|---|---|
SeAssignPrimaryToken | Admin | Chombo cha upande wa tatu | "It would allow a user to impersonate tokens and privesc to nt system using tools such as potato.exe, rottenpotato.exe and juicypotato.exe" | Asante Aurélien Chalot kwa sasisho. Nitajaribu kuandika upya kuwa kitu cha kupika hivi karibuni. |
SeBackup | Hatari | Amri zilizojengwa | Soma faili nyeti kwa kutumia robocopy /b | - Inaweza kuwa ya kuvutia zaidi ikiwa unaweza kusoma %WINDIR%\MEMORY.DMP |
SeCreateToken | Admin | Chombo cha upande wa tatu | Unda tokeni za kiholela ikiwa na haki za admin za ndani kwa kutumia NtCreateToken . | |
SeDebug | Admin | PowerShell | Nakili tokeni ya lsass.exe . | Script inapatikana kwenye FuzzySecurity |
SeLoadDriver | Admin | Chombo cha upande wa tatu | 1. Pakua dereva wa kernel wenye hitilafu kama | 1. Udhaifu wa |
SeRestore | Admin | PowerShell | 1. Anzisha PowerShell/ISE ikiwa na ruhusa ya SeRestore. | Shambulio linaweza kugunduliwa na baadhi ya programu za AV. Njia mbadala inategemea kubadilisha binaries za huduma zilizohifadhiwa katika "Program Files" kwa kutumia ruhusa hiyo hiyo |
SeTakeOwnership | Admin | Amri zilizojengwa | 1. | Shambulio linaweza kugunduliwa na baadhi ya programu za AV. Njia mbadala inategemea kubadilisha binaries za huduma zilizohifadhiwa katika "Program Files" kwa kutumia ruhusa hiyo hiyo. |
SeTcb | Admin | Chombo cha upande wa tatu | Manipulate tokens ili kuwa na haki za admin za ndani. Inaweza kuhitaji SeImpersonate. Ithibitishwe. |
Marejeleo
- Angalia jedwali hili linalofafanua tokeni za Windows: https://github.com/gtworek/Priv2Admin
- Angalia karatasi hii kuhusu privesc na tokeni.
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za udukuzi kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.