hacktricks/windows-hardening/windows-local-privilege-escalation/privilege-escalation-abusing-tokens.md

19 KiB

Kudhuru Vitambulisho

Jifunze AWS hacking kutoka sifuri hadi shujaa na htARTE (HackTricks AWS Red Team Expert)!

Vitambulisho

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

{% content-ref url="access-tokens.md" %} access-tokens.md {% endcontent-ref %}

Labda unaweza kuwa na uwezo wa kudhuru vitambulisho ulivyonavyo tayari

SeImpersonatePrivilege

Hii ni haki inayoshikiliwa na mchakato wowote inayoruhusu uigaji (lakini sio uumbaji) wa kifungo chochote, ikitoa kwamba kushika kifungo kunaweza kupatikana. Kifungo cha kuheshimiwa kinaweza kupatikana kutoka kwa huduma ya Windows (DCOM) kwa kuiwezesha kufanya uthibitishaji wa NTLM dhidi ya shambulio, kisha kuwezesha utekelezaji wa mchakato na mamlaka ya SYSTEM. Udhaifu huu unaweza kutumiwa kwa kutumia zana mbalimbali, kama vile juicy-potato, RogueWinRM (ambayo inahitaji winrm iwe imelemazwa), SweetPotato, na PrintSpoofer.

{% content-ref url="roguepotato-and-printspoofer.md" %} roguepotato-and-printspoofer.md {% endcontent-ref %}

{% content-ref url="juicypotato.md" %} juicypotato.md {% endcontent-ref %}

SeAssignPrimaryPrivilege

Ni sawa sana na SeImpersonatePrivilege, itatumia njia ile ile kupata kifungo cha mamlaka.
Kisha, haki hii inaruhusu kuweka kifungo cha msingi kwa mchakato mpya/uliosimamishwa. Kwa kifungo cha uigaji kilichopewa mamlaka unaweza kuzalisha kifungo cha msingi (DuplicateTokenEx).
Kwa kifungo, unaweza kuunda mchakato mpya na 'CreateProcessAsUser' au kuunda mchakato uliosimamishwa na kuweka kifungo (kwa ujumla, huwezi kurekebisha kifungo cha msingi cha mchakato unaofanya kazi).

SeTcbPrivilege

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

SeBackupPrivilege

Mfumo unalazimishwa kutoa udhibiti wa kusoma kwa faili yoyote (imepunguzwa kwa shughuli za kusoma) kwa kibali hiki. Inatumika kwa kusoma vibonye vya nywila za akaunti za Wasimamizi wa Mitaa kutoka kwenye usajili, kufuatia hivyo, zana kama "psexec" au "wmicexec" zinaweza kutumika na kibonye hicho (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 utawala kutoka kwa Wasimamizi wa Mitaa wanaounganisha kijijini.
Unaweza kudhuru kibali hiki na:

{% content-ref url="../active-directory-methodology/privileged-groups-and-token-privileges.md" %} privileged-groups-and-token-privileges.md {% endcontent-ref %}

SeRestorePrivilege

Ruhusa ya upatikanaji wa kuandika kwa faili yoyote ya mfumo, bila kujali Orodha ya Kudhibiti Upatikanaji (ACL) ya faili hiyo, inatolewa na kibali hiki. Inafungua fursa nyingi za kudhuru, ikiwa ni pamoja na uwezo wa kurekebisha huduma, kutekeleza DLL Hijacking, na kuweka debuggers 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 kudanganya vitambulisho, lakini pia bila SeImpersonatePrivilege. Uwezo huu unategemea uwezo wa kudanganya kibali kinachowakilisha mtumiaji huyo huyo na kiwango chake cha usalama kisizidi kiwango cha mchakato wa sasa.

Mambo Muhimu:

  • Kudanganya bila SeImpersonatePrivilege: Inawezekana kutumia SeCreateTokenPrivilege kwa EoP kwa kudanganya vitambulisho chini ya hali maalum.
  • Hali za Kudanganya Vitambulisho: Kudanganya kwa mafanikio kunahitaji kibali cha lengo kuwa cha mtumiaji huyo huyo na kuwa na kiwango cha usalama ambacho ni kidogo au sawa na kiwango cha usalama wa mchakato unaojaribu kudanganya.
  • Uundaji na Urekebishaji wa Vitambulisho vya Kudanganya: Watumiaji wanaweza kuunda kibali cha kudanganya na kukiimarisha kwa kuongeza SID ya kikundi cha mamlaka.

SeLoadDriverPrivilege

Kibali hiki kuruhusu kupakia na kufuta madereva ya kifaa kwa kuunda kuingiza usajili na thamani maalum kwa ImagePath na Aina. Kwa kuwa upatikanaji 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 upatikanaji 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 kwa 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 katika 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-jalizi ya antivirus na suluhisho za kuzuia uingizaji wa mwenyeji, inaweza kutumika na haki hii.

Pindua kumbukumbu

Unaweza kutumia ProcDump kutoka Pakiti 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

Vitufe vinavyoonekana kama Vilivyozimwa vinaweza kuwezeshwa, kwa hivyo unaweza kutumia vitufe vilivyo Vilivyowezeshwa na Vilivyozimwa.

Wezesha Vitufe Vyote

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

.\EnableAllTokenPrivs.ps1
whoami /priv

Au script ingiza katika chapisho.

Jedwali

Lebo kamili ya mbinu za kukiuka haki za token zinapatikana kwa https://github.com/gtworek/Priv2Admin, muhtasari hapa chini utaorodhesha njia za moja kwa moja za kutumia haki hiyo kwa kupata kikao cha msimamizi au kusoma faili nyeti.

Haki ya Token Athari Zana Njia ya utekelezaji Maelezo
SeAssignPrimaryToken Admin Zana ya tatu "Ingeiruhusu mtumiaji kujifanya kuwa na tokens na kufanya upelelezi wa mfumo wa nt kwa kutumia zana kama vile potato.exe, rottenpotato.exe na 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 wakati wa kufungua faili.

- Robocopy inahitaji SeBackup na SeRestore kufanya kazi na kipengele cha /b.

SeCreateToken Admin Zana ya tatu Unda token ya kupindukia ikiwa ni pamoja na haki za msimamizi wa ndani kwa kutumia NtCreateToken.
SeDebug Admin PowerShell Nakili token ya lsass.exe. Script inapatikana kwa FuzzySecurity
SeLoadDriver Admin 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 udhaifu wa szkg64 uliumbwa na Parvez Anwar

SeRestore Admin PowerShell

1. Anzisha PowerShell/ISE na haki ya SeRestore ikiwepo.
2. Wezesha haki hiyo kwa kutumia Enable-SeRestorePrivilege).
3. Badilisha utilman.exe kuwa utilman.old
4. Badilisha 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 Admin Amri zilizojengwa

1. takeown.exe /f "%windir%\system32"
2. icalcs.exe "%windir%\system32" /grant "%username%":F
3. Badilisha 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 Admin Zana ya tatu

Tumia tokens kuwa na haki za msimamizi wa ndani pamoja. Inaweza kuhitaji SeImpersonate.

Kuthibitishwa.

Marejeo