Abusing Tokens

Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Vitambulisho

Ikiwa hujui ni nini Vitambulisho vya Kufikia Windows soma ukurasa huu kabla ya kuendelea:

pageAccess Tokens

Labda unaweza kuwa na uwezo wa kudhuru vitambulisho unavyo tayari

SeImpersonatePrivilege

Hii ni haki inayoshikiliwa na mchakato wowote inayoruhusu uigaji (lakini sio uumbaji) wa vitambulisho vyovyote, ikizingatiwa kwamba kushika kwa hicho kunaweza kupatikana. Vitambulisho vilivyo na haki vinaweza kupatikana kutoka kwa huduma ya Windows (DCOM) kwa kuchochea kufanya uthibitishaji wa NTLM dhidi ya shambulio, kisha kuruhusu utekelezaji wa mchakato na haki za SYSTEM. Udhaifu huu unaweza kutumiwa kwa kutumia zana mbalimbali, kama vile juicy-potato, RogueWinRM (ambayo inahitaji winrm iwe imelemazwa), SweetPotato, na PrintSpoofer.

pageRoguePotato, PrintSpoofer, SharpEfsPotato, GodPotatopageJuicyPotato

SeAssignPrimaryPrivilege

Ni sawa sana na SeImpersonatePrivilege, itatumia njia ile ile kupata vitambulisho vilivyo na haki. Kisha, haki hii inaruhusu kuweka kipaumbele cha vitambulisho kwa mchakato mpya/uliosimamishwa. Kwa vitambulisho vya uigaji vilivyo na haki unaweza kuzalisha kipaumbele cha msingi (DuplicateTokenEx). Kwa kutumia vitambulisho, unaweza kuunda mchakato mpya na 'CreateProcessAsUser' au kuunda mchakato uliosimamishwa na kuweka kipaumbele cha vitambulisho (kwa ujumla, huwezi kurekebisha kipaumbele cha msingi cha mchakato unaotumika).

SeTcbPrivilege

Ikiwa umewezesha kibali hiki unaweza kutumia KERB_S4U_LOGON kupata vitambulisho vya uigaji kwa mtumiaji mwingine yeyote bila kujua siri, kuongeza kikundi cha aina yoyote (wasimamizi) kwenye kibali, kuweka kiwango cha usalama cha kibali kuwa "wa kati", na kuweka kibali hiki kwa mnyororo wa sasa (SetThreadToken).

SeBackupPrivilege

Mfumo unahimizwa kutoa ufikiaji wa kusoma wote kwa faili yoyote (mdogo kwa shughuli za kusoma) kwa kibali hiki. Hutumiwa kwa kusoma nywila za wakala wa Msimamizi wa Mitaa kutoka kwa usajili, kufuatia ambayo, zana kama "psexec" au "wmicexec" zinaweza kutumika na hash (mbinu ya Pass-the-Hash). Walakini, mbinu hii inashindwa chini ya hali mbili: wakati akaunti ya Msimamizi wa Mitaa imelemazwa, au wakati sera inawekwa ambayo inaondoa haki za usimamizi kutoka kwa Msimamizi wa Mitaa anayeunganisha kijijini. Unaweza kudhuru kibali hiki na:

pagePrivileged Groups

SeRestorePrivilege

Kibali cha ufikiaji wa kuandika kwa faili yoyote ya mfumo, bila kujali Orodha ya Kudhibiti ya Ufikiaji (ACL) ya faili hiyo, kinatolewa na kibali hiki. Hii inafungua fursa nyingi za kudhuru, ikiwa ni pamoja na uwezo wa kurekebisha huduma, kutekeleza DLL Hijacking, na kuweka wadukuzi kupitia Chaguo za Utekelezaji wa Faili ya Picha kati ya mbinu mbalimbali.

SeCreateTokenPrivilege

SeCreateTokenPrivilege ni kibali chenye nguvu, hasa muhimu wakati mtumiaji ana uwezo wa kudai vitambulisho, lakini pia bila SeImpersonatePrivilege. Uwezo huu unategemea uwezo wa kudai vitambulisho vinavyowakilisha mtumiaji huyo huyo na ambao kiwango chake cha usalama hakiendi zaidi ya kiwango cha sasa cha mchakato.

Mambo Muhimu:

  • Uigaji bila SeImpersonatePrivilege: Inawezekana kutumia SeCreateTokenPrivilege kwa EoP kwa kudai vitambulisho chini ya hali maalum.

  • Hali za Uigaji wa Vitambulisho: Uigaji mafanikio unahitaji vitambulisho vya lengo kuwa vya mtumiaji huyo huyo na kuwa na kiwango cha usalama ambacho ni kidogo au sawa na kiwango cha usalama cha mchakato unaojaribu uigaji.

  • Uundaji na Marekebisho ya Vitambulisho vya Uigaji: Watumiaji wanaweza kuunda vitambulisho vya uigaji na kuviboresha kwa kuongeza SID ya kikundi cha haki.

SeLoadDriverPrivilege

Kibali hiki kuruhusu kupakia na kufuta madereva ya kifaa kwa kuunda kuingiza usajili na thamani maalum kwa ImagePath na Aina. Kwa kuwa ufikiaji wa kuandika moja kwa moja kwa HKLM (HKEY_LOCAL_MACHINE) umepunguzwa, HKCU (HKEY_CURRENT_USER) lazima itumike badala yake. Walakini, ili kufanya HKCU iweze kutambulika na kernel kwa usanidi wa dereva, njia maalum lazima ifuatwe.

Njia hii ni \Registry\User\<RID>\System\CurrentControlSet\Services\DriverName, ambapo <RID> ni Kitambulisho cha Kihusishi cha mtumiaji wa sasa. Ndani ya HKCU, njia nzima hii lazima iundwe, na thamani mbili zinahitaji kuwekwa:

  • ImagePath, ambayo ni njia ya utekelezaji wa binary

  • Aina, na thamani ya SERVICE_KERNEL_DRIVER (0x00000001).

Hatua za Kufuata:

  1. Fikia HKCU badala ya HKLM kutokana na ufikiaji mdogo wa kuandika.

  2. Unda njia \Registry\User\<RID>\System\CurrentControlSet\Services\DriverName ndani ya HKCU, ambapo <RID> inawakilisha Kitambulisho cha Kihusishi cha mtumiaji wa sasa.

  3. Weka ImagePath kuwa njia ya utekelezaji wa binary.

  4. Weka Aina kama SERVICE_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)

Njia zaidi za kutumia haki hii kwa https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges#seloaddriverprivilege

SeTakeOwnershipPrivilege

Hii inafanana na SeRestorePrivilege. Kazi yake kuu ni kuruhusu mchakato kuchukua umiliki wa kitu, kuzunguka mahitaji ya ufikiaji wa hiari kupitia utoaji wa haki za ufikiaji wa WRITE_OWNER. Mchakato huanza kwa kwanza kusimika umiliki wa funguo ya usajili inayokusudiwa kwa madhumuni ya kuandika, kisha kubadilisha DACL kuruhusu 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 kudebugi michakato mingine, ikiwa ni pamoja na kusoma na kuandika kwenye kumbukumbu. Mikakati mbalimbali ya kuingiza kumbukumbu, inayoweza kuepuka zaidi ya programu za kupambana na virusi na ufumbuzi wa kuzuia uvamizi wa mwenyeji, inaweza kutumika na haki hii.

Pindua kumbukumbu

Unaweza kutumia ProcDump kutoka Suite ya SysInternals kwa kukamata kumbukumbu ya mchakato. Hasa, hii inaweza kutumika kwa mchakato wa Local Security Authority Subsystem Service (LSASS), ambao unahusika na kuhifadhi sifa za mtumiaji mara tu mtumiaji anapofanikiwa kuingia kwenye mfumo.

Kisha unaweza kupakia pindu hili kwenye mimikatz ili upate nywila:

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

RCE

Ikiwa unataka kupata kifaa cha NT SYSTEM 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

Vidakuzi vinavyoonekana kama Vilivyozimwa vinaweza kuwezeshwa, kwa kweli unaweza kutumia vidakuzi vilivyo Vilivyowezeshwa na Vilivyozimwa.

Wezesha Vidakuzi Vyote

Ikiwa una vidakuzi vilivyozimwa, unaweza kutumia skripti EnableAllTokenPrivs.ps1 kuwezesha vidakuzi vyote:

.\EnableAllTokenPrivs.ps1
whoami /priv

Au script uliowekwa katika chapisho hili.

Jedwali

Mwongozo kamili wa mbinu za kukiuka haki za token unaweza kupatikana hapa https://github.com/gtworek/Priv2Admin, muhtasari hapa chini utaorodhesha njia za moja kwa moja za kutumia haki hiyo kwa lengo la kupata kikao cha msimamizi au kusoma faili nyeti.

HakiAthariZanaNjia ya utekelezajiMaelezo

SeAssignPrimaryToken

Msimamizi

Zana ya 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 kubadilisha maneno kuwa kama mapishi hivi karibuni.

SeBackup

Tishio

Amri zilizojengwa

Soma faili nyeti kwa kutumia robocopy /b

- Inaweza kuwa ya kuvutia zaidi ikiwa unaweza kusoma %WINDIR%\MEMORY.DMP - SeBackupPrivilege (na robocopy) haifai linapokuja suala la kufungua faili. - Robocopy inahitaji SeBackup na SeRestore kufanya kazi na parameta /b.

SeCreateToken

Msimamizi

Zana ya tatu

Unda token ya kupindukia ikiwa ni pamoja na haki za msimamizi wa ndani kwa kutumia NtCreateToken.

SeDebug

Msimamizi

PowerShell

Nakili token ya lsass.exe.

Script inapatikana kwenye FuzzySecurity

SeLoadDriver

Msimamizi

Zana ya tatu

1. Pakia dereva dhaifu wa kernel kama vile szkg64.sys 2. Tumia udhaifu wa dereva Kwa upande mwingine, haki hiyo inaweza kutumika kufuta dereva zinazohusiana na usalama kwa kutumia amri ya kujengwa ya ftlMC. yaani: fltMC sysmondrv

1. Udhaifu wa szkg64 umetajwa kama CVE-2018-15732 2. Msimbo wa kudanganya wa szkg64 ulibuniwa na Parvez Anwar

SeRestore

Msimamizi

PowerShell

1. Anzisha PowerShell/ISE na haki ya SeRestore ikiwepo. 2. Wezesha haki hiyo kwa kutumia Enable-SeRestorePrivilege). 3. Badilisha jina la utilman.exe kuwa utilman.old 4. Badilisha jina la cmd.exe kuwa utilman.exe 5. Funga konsoli na bonyeza Win+U

Shambulio linaweza kugunduliwa na programu fulani za AV.

Njia mbadala inategemea kubadilisha programu za huduma zilizohifadhiwa katika "Program Files" kwa kutumia haki hiyo hiyo

SeTakeOwnership

Msimamizi

Amri zilizojengwa

1. takeown.exe /f "%windir%\system32" 2. icalcs.exe "%windir%\system32" /grant "%username%":F 3. Badilisha jina la cmd.exe kuwa utilman.exe 4. Funga konsoli na bonyeza Win+U

Shambulio linaweza kugunduliwa na programu fulani za AV.

Njia mbadala inategemea kubadilisha programu za huduma zilizohifadhiwa katika "Program Files" kwa kutumia haki hiyo hiyo.

SeTcb

Msimamizi

Zana ya tatu

Tumia mbinu za kudanganya kuwa na haki za msimamizi wa ndani zilizojumuishwa. Inaweza kuhitaji SeImpersonate.

Kuthibitishwa.

Marejeo

Last updated