Windows Credentials Protections
Reading time: 10 minutes
Credentials Protections
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)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
WDigest
Protokali ya WDigest, iliyozinduliwa na Windows XP, imeundwa kwa ajili ya uthibitishaji kupitia Protokali ya HTTP na imewezeshwa kwa default kwenye Windows XP hadi Windows 8.0 na Windows Server 2003 hadi Windows Server 2012. Mpangilio huu wa default unapelekea hifadhi ya nywila katika maandiko wazi kwenye LSASS (Local Security Authority Subsystem Service). Mshambuliaji anaweza kutumia Mimikatz ili kuchota hizi akidi kwa kutekeleza:
sekurlsa::wdigest
Ili kuwasha au kuzima kipengele hiki, funguo za rejista UseLogonCredential na Negotiate ndani ya HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\WDigest lazima ziwe zimewekwa kuwa "1". Ikiwa funguo hizi hazipo au zimewekwa kuwa "0", WDigest ime zimwa:
reg query HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential
Ulinzi wa LSA (Mchakato wa PP & PPL uliohifadhiwa)
Mchakato uliohifadhiwa (PP) na Mchakato wa Mwanga uliohifadhiwa (PPL) ni ulinzi wa ngazi ya kernel ya Windows ulioanzishwa ili kuzuia ufikiaji usioidhinishwa kwa michakato nyeti kama LSASS. Ilianzishwa katika Windows Vista, mfano wa PP awali ulitengenezwa kwa ajili ya utekelezaji wa DRM na iliruhusu tu binaries zilizotiwa saini na cheti maalum cha media kuweza kuhifadhiwa. Mchakato ulioashiriwa kama PP unaweza kufikiwa tu na michakato mingine ambayo ni pia PP na ina ngazi ya ulinzi sawa au ya juu, na hata hivyo, tu kwa haki za ufikiaji zilizopunguzwa isipokuwa zimeruhusiwa kwa mahsusi.
PPL, iliyoanzishwa katika Windows 8.1, ni toleo lenye kubadilika zaidi la PP. Inaruhusu matumizi mapana (mfano, LSASS, Defender) kwa kuanzisha "ngazi za ulinzi" kulingana na sehemu ya EKU (Enhanced Key Usage) ya saini ya kidijitali. Ngazi ya ulinzi inahifadhiwa katika uwanja wa EPROCESS.Protection
, ambao ni muundo wa PS_PROTECTION
wenye:
- Aina (
Protected
auProtectedLight
) - Msigner (mfano,
WinTcb
,Lsa
,Antimalware
, n.k.)
Muundo huu umefungwa katika byte moja na unamua nani anaweza kufikia nani:
- Thamani za msigner za juu zinaweza kufikia zile za chini
- PPLs haziwezi kufikia PPs
- Michakato isiyo na ulinzi haiwezi kufikia PPL/PP yoyote
Unachohitaji kujua kutoka kwa mtazamo wa mashambulizi
- Wakati LSASS inafanya kazi kama PPL, juhudi za kuifungua kwa kutumia
OpenProcess(PROCESS_VM_READ | QUERY_INFORMATION)
kutoka kwa muktadha wa kawaida wa admin zinashindwa na0x5 (Access Denied)
, hata kamaSeDebugPrivilege
imewezeshwa. - Unaweza kuangalia ngazi ya ulinzi ya LSASS kwa kutumia zana kama Process Hacker au kwa njia ya programu kwa kusoma thamani ya
EPROCESS.Protection
. - LSASS kwa kawaida itakuwa na
PsProtectedSignerLsa-Light
(0x41
), ambayo inaweza kufikiwa tu na michakato iliyotiwa saini na msigner wa ngazi ya juu, kamaWinTcb
(0x61
au0x62
). - PPL ni kizuizi cha Userland pekee; kanuni za ngazi ya kernel zinaweza kuzikwepa kabisa.
- LSASS kuwa PPL haizuizi kudondosha hati za kuingia ikiwa unaweza kutekeleza shellcode ya kernel au kutumia mchakato wa haki za juu wenye ufikiaji sahihi.
- Kuweka au kuondoa PPL kunahitaji kuanzisha upya au mipangilio ya Secure Boot/UEFI, ambayo inaweza kudumisha mipangilio ya PPL hata baada ya mabadiliko ya rejista kurudishwa nyuma.
Chaguzi za kuzikwepa ulinzi wa PPL:
Ikiwa unataka kudondosha LSASS licha ya PPL, una chaguzi 3 kuu:
- Tumia dereva wa kernel ulio saini (mfano, Mimikatz + mimidrv.sys) ili kuondoa bendera ya ulinzi ya LSASS:
- Leta Dereva Wako wa Hatari (BYOVD) ili kuendesha kanuni maalum ya kernel na kuondoa ulinzi. Zana kama PPLKiller, gdrv-loader, au kdmapper zinafanya hili kuwa rahisi.
- Pora kushughulikia LSASS iliyopo kutoka kwa mchakato mwingine ambao una wazi (mfano, mchakato wa AV), kisha iga ndani ya mchakato wako. Hii ndiyo msingi wa mbinu ya
pypykatz live lsa --method handledup
. - Tumia mchakato fulani wa haki ambao utaruhusu kupakia kanuni yoyote ndani ya nafasi yake ya anwani au ndani ya mchakato mwingine wa haki, kwa ufanisi kuzikwepa vizuizi vya PPL. Unaweza kuangalia mfano wa hili katika bypassing-lsa-protection-in-userland au https://github.com/itm4n/PPLdump.
Angalia hali ya sasa ya ulinzi wa LSA (PPL/PP) kwa LSASS:
reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA /v RunAsPPL
When you running mimikatz privilege::debug sekurlsa::logonpasswords
it'll probably fail with the error code 0x00000005
becasue of this.
- Kwa maelezo zaidi kuhusu hii angalia https://itm4n.github.io/lsass-runasppl/
Credential Guard
Credential Guard, kipengele ambacho ni maalum kwa Windows 10 (Enterprise na Education editions), kinaongeza usalama wa akiba za mashine kwa kutumia Virtual Secure Mode (VSM) na Virtualization Based Security (VBS). Kinatumia nyongeza za virtualisasi za CPU kutenga michakato muhimu ndani ya nafasi ya kumbukumbu iliyo salama, mbali na ufikiaji wa mfumo wa uendeshaji mkuu. Kutengwa huku kunahakikisha kwamba hata kernel haiwezi kufikia kumbukumbu katika VSM, kwa ufanisi ikilinda akiba kutoka kwa mashambulizi kama pass-the-hash. Local Security Authority (LSA) inafanya kazi ndani ya mazingira haya salama kama trustlet, wakati mchakato wa LSASS katika OS kuu unafanya kazi kama mwasiliani tu na LSA ya VSM.
Kwa kawaida, Credential Guard haifanyi kazi na inahitaji kuamshwa kwa mikono ndani ya shirika. Ni muhimu kwa kuongeza usalama dhidi ya zana kama Mimikatz, ambazo zinakabiliwa na uwezo wao wa kutoa akiba. Hata hivyo, udhaifu bado unaweza kutumiwa kupitia kuongeza Security Support Providers (SSP) za kawaida ili kukamata akiba katika maandiko wazi wakati wa majaribio ya kuingia.
Ili kuthibitisha hali ya uhamasishaji ya Credential Guard, funguo ya rejista LsaCfgFlags chini ya HKLM\System\CurrentControlSet\Control\LSA inaweza kukaguliwa. Thamani ya "1" inaonyesha uhamasishaji na UEFI lock, "2" bila lock, na "0" inaashiria haijawashwa. Ukaguzi huu wa rejista, ingawa ni kiashiria kizuri, si hatua pekee ya kuwasha Credential Guard. Mwongozo wa kina na skripti ya PowerShell ya kuwasha kipengele hiki zinapatikana mtandaoni.
reg query HKLM\System\CurrentControlSet\Control\LSA /v LsaCfgFlags
Kwa ufahamu wa kina na maelekezo juu ya kuwezesha Credential Guard katika Windows 10 na uanzishaji wake wa kiotomatiki katika mifumo inayofaa ya Windows 11 Enterprise na Education (toleo 22H2), tembelea dokumentasiyo ya Microsoft.
Maelezo zaidi juu ya kutekeleza SSPs za kawaida kwa ajili ya kukamata akidi yanapatikana katika hiki kiongozi.
RDP RestrictedAdmin Mode
Windows 8.1 na Windows Server 2012 R2 zilianzisha vipengele vingi vipya vya usalama, ikiwa ni pamoja na Restricted Admin mode kwa RDP. Hali hii ilipangwa kuboresha usalama kwa kupunguza hatari zinazohusiana na pass the hash mashambulizi.
Kawaida, unapounganisha na kompyuta ya mbali kupitia RDP, akidi zako zinahifadhiwa kwenye mashine lengwa. Hii inatoa hatari kubwa ya usalama, hasa unapokuwa ukitumia akaunti zenye mamlaka ya juu. Hata hivyo, kwa kuanzishwa kwa Restricted Admin mode, hatari hii inapungua kwa kiasi kikubwa.
Wakati wa kuanzisha muunganisho wa RDP kwa kutumia amri mstsc.exe /RestrictedAdmin, uthibitishaji wa kompyuta ya mbali unafanywa bila kuhifadhi akidi zako kwenye hiyo. Njia hii inahakikisha kwamba, katika tukio la maambukizi ya programu hasidi au ikiwa mtumiaji mbaya atapata ufikiaji wa seva ya mbali, akidi zako hazitakuwa hatarini, kwani hazihifadhiwi kwenye seva.
Ni muhimu kutambua kwamba katika Restricted Admin mode, juhudi za kufikia rasilimali za mtandao kutoka kwenye kikao cha RDP hazitatumia akidi zako binafsi; badala yake, utambulisho wa mashine unatumika.
Kipengele hiki kinatoa hatua muhimu mbele katika kulinda muunganisho wa desktop ya mbali na kulinda taarifa nyeti zisifichuliwe katika tukio la uvunjaji wa usalama.
Kwa maelezo zaidi tembelea rasilimali hii.
Cached Credentials
Windows inalinda akidi za kikoa kupitia Local Security Authority (LSA), ikisaidia michakato ya kuingia kwa kutumia itifaki za usalama kama Kerberos na NTLM. Kipengele muhimu cha Windows ni uwezo wake wa kuhifadhi kuingia kwa kikoa kumi za mwisho ili kuhakikisha watumiaji wanaweza bado kufikia kompyuta zao hata kama kikundi cha kudhibiti kikoa kiko offline—faida kwa watumiaji wa laptop ambao mara nyingi wako mbali na mtandao wa kampuni yao.
Idadi ya kuingia zilizohifadhiwa inaweza kubadilishwa kupitia funguo maalum za rejista au sera ya kikundi. Ili kuona au kubadilisha mipangilio hii, amri ifuatayo inatumika:
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\WINLOGON" /v CACHEDLOGONSCOUNT
Upatikanaji wa hizi akiba za hati za utambulisho umewekwa kwa udhibiti mkali, ambapo ni akaunti ya SYSTEM pekee yenye ruhusa zinazohitajika kuziangalia. Wasimamizi wanaohitaji kufikia taarifa hii lazima wafanye hivyo kwa ruhusa za mtumiaji wa SYSTEM. Hati hizo zimehifadhiwa katika: HKEY_LOCAL_MACHINE\SECURITY\Cache
Mimikatz inaweza kutumika kutoa hizi akiba za hati za utambulisho kwa kutumia amri lsadump::cache
.
Kwa maelezo zaidi, chanzo cha asili source kinatoa taarifa kamili.
Watumiaji Waliohifadhiwa
Uanachama katika kikundi cha Watumiaji Waliohifadhiwa unaleta maboresho kadhaa ya usalama kwa watumiaji, kuhakikisha viwango vya juu vya ulinzi dhidi ya wizi wa hati za utambulisho na matumizi mabaya:
- Delegation ya Hati (CredSSP): Hata kama mipangilio ya Sera ya Kundi kwa Ruhusu kuhamasisha hati za kawaida imewezeshwa, hati za kawaida za Watumiaji Waliohifadhiwa hazitahifadhiwa.
- Windows Digest: Kuanzia Windows 8.1 na Windows Server 2012 R2, mfumo hautahifadhi hati za kawaida za Watumiaji Waliohifadhiwa, bila kujali hali ya Windows Digest.
- NTLM: Mfumo hautahifadhi hati za kawaida za Watumiaji Waliohifadhiwa au kazi za NT moja kwa moja (NTOWF).
- Kerberos: Kwa Watumiaji Waliohifadhiwa, uthibitishaji wa Kerberos hautazalisha DES au RC4 keys, wala hautahifadhi hati za kawaida au funguo za muda mrefu zaidi ya upatikanaji wa Tiketi ya Kutoa Tiketi (TGT) ya awali.
- Kuingia Bila Mtandao: Watumiaji Waliohifadhiwa hawatakuwa na mthibitishaji wa akiba aliyeundwa wakati wa kuingia au kufungua, ikimaanisha kuwa kuingia bila mtandao hakusaidiwi kwa akaunti hizi.
Ulinzi huu unawashwa mara tu mtumiaji, ambaye ni mwanachama wa kikundi cha Watumiaji Waliohifadhiwa, anapoingia kwenye kifaa. Hii inahakikisha kuwa hatua muhimu za usalama zipo ili kulinda dhidi ya mbinu mbalimbali za kuathiri hati za utambulisho.
Kwa maelezo zaidi, angalia documentation.
Jedwali kutoka the docs.
Windows Server 2003 RTM | Windows Server 2003 SP1+ | Windows Server 2012, | Windows Server 2016 |
---|---|---|---|
Account Operators | Account Operators | Account Operators | Account Operators |
Administrator | Administrator | Administrator | Administrator |
Administrators | Administrators | Administrators | Administrators |
Backup Operators | Backup Operators | Backup Operators | Backup Operators |
Cert Publishers | |||
Domain Admins | Domain Admins | Domain Admins | Domain Admins |
Domain Controllers | Domain Controllers | Domain Controllers | Domain Controllers |
Enterprise Admins | Enterprise Admins | Enterprise Admins | Enterprise Admins |
Enterprise Key Admins | |||
Key Admins | |||
Krbtgt | Krbtgt | Krbtgt | Krbtgt |
Print Operators | Print Operators | Print Operators | Print Operators |
Read-only Domain Controllers | Read-only Domain Controllers | ||
Replicator | Replicator | Replicator | Replicator |
Schema Admins | Schema Admins | Schema Admins | Schema Admins |
Server Operators | Server Operators | Server Operators | Server Operators |
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)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.