Writable Sys Path +Dll Hijacking Privesc
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ikiwa umeona kwamba unaweza kuandika katika folda ya System Path (kumbuka kwamba hii haitafanya kazi ikiwa unaweza kuandika katika folda ya User Path) inawezekana kwamba unaweza kuinua mamlaka katika mfumo.
Ili kufanya hivyo unaweza kutumia Dll Hijacking ambapo uta hijack maktaba inayopakiwa na huduma au mchakato wenye mamlaka zaidi kuliko yako, na kwa sababu huduma hiyo inachukua Dll ambayo labda hata haipo katika mfumo mzima, itajaribu kuipakia kutoka kwa System Path ambapo unaweza kuandika.
Kwa maelezo zaidi kuhusu nini Dll Hijacking angalia:
Jambo la kwanza unahitaji ni kubaini mchakato unaotembea na mamlaka zaidi kuliko wewe ambao unajaribu kupakia Dll kutoka kwa System Path unayoweza kuandika.
Shida katika kesi hizi ni kwamba labda michakato hiyo tayari inatembea. Ili kupata ni Dll zipi zinakosekana huduma unahitaji kuanzisha procmon haraka iwezekanavyo (kabla ya michakato kupakiwa). Hivyo, ili kupata .dll zinazokosekana fanya:
Unda folda C:\privesc_hijacking
na ongeza njia C:\privesc_hijacking
kwenye System Path env variable. Unaweza kufanya hivi kwa mikono au kwa PS:
Fungua procmon
na nenda kwenye Options
--> Enable boot logging
na bonyeza OK
kwenye ujumbe.
Kisha, reboot. Wakati kompyuta inapoanzishwa upya procmon
itaanza kurekodi matukio mara moja.
Mara Windows inapokuwa imeanzishwa, tekeleza procmon
tena, itakuambia kuwa imekuwa ikifanya kazi na itaku uliza kama unataka kuhifadhi matukio kwenye faili. Sema ndiyo na hifadhi matukio kwenye faili.
Baada ya faili kutengenezwa, funga dirisha lililo wazi la procmon
na fungua faili la matukio.
Ongeza hizi filters na utaona Dll zote ambazo baadhi ya proccess zilijaribu kupakia kutoka kwenye folda ya System Path inayoweza kuandikwa:
Nilipokimbia hii kwenye mashine ya bure ya virtual (vmware) Windows 11 nilipata matokeo haya:
Katika kesi hii .exe hazina maana hivyo zipuuzie, Dll zilizokosekana zilikuwa kutoka:
Baada ya kupata hii, nilipata chapisho la blog linalovutia ambalo pia linaelezea jinsi ya kudhulumu WptsExtensions.dll kwa privesc. Ambayo ndiyo tunayo enda kufanya sasa.
Hivyo, ili kuinua mamlaka tunakwenda kudhulumu maktaba WptsExtensions.dll. Tukiwa na njia na jina tunahitaji tu kutengeneza dll mbaya.
Unaweza jaribu kutumia mfano yoyote ya hizi. Unaweza kukimbia payloads kama: pata rev shell, ongeza mtumiaji, tekeleza beacon...
Kumbuka kuwa sio huduma zote zinaendeshwa na NT AUTHORITY\SYSTEM
baadhi pia zinaendeshwa na NT AUTHORITY\LOCAL SERVICE
ambayo ina mamlaka kidogo na hu wezi kuunda mtumiaji mpya kudhulumu ruhusa zake.
Hata hivyo, mtumiaji huyo ana seImpersonate
ruhusa, hivyo unaweza kutumia potato suite kuinua mamlaka. Hivyo, katika kesi hii rev shell ni chaguo bora kuliko kujaribu kuunda mtumiaji.
Wakati wa kuandika huduma ya Task Scheduler inaendeshwa na Nt AUTHORITY\SYSTEM.
Baada ya kutengeneza Dll mbaya (katika kesi yangu nilitumia x64 rev shell na nilipata shell lakini defender iliuua kwa sababu ilikuwa kutoka msfvenom), ihifadhi kwenye System Path inayoweza kuandikwa kwa jina WptsExtensions.dll na anzisha upya kompyuta (au anzisha upya huduma au fanya chochote kinachohitajika ili kuanzisha tena huduma/programu iliyoathiriwa).
Wakati huduma inapoanzishwa tena, dll inapaswa kupakiwa na kutekelezwa (unaweza kurudia hila ya procmon kuangalia kama maktaba ilipakiwa kama inavyotarajiwa).
Huduma | Dll | CMD line |
---|---|---|
Jifunze & fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Jifunze & fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Task Scheduler (Schedule)
WptsExtensions.dll
C:\Windows\system32\svchost.exe -k netsvcs -p -s Schedule
Diagnostic Policy Service (DPS)
Unknown.DLL
C:\Windows\System32\svchost.exe -k LocalServiceNoNetwork -p -s DPS
???
SharedRes.dll
C:\Windows\system32\svchost.exe -k UnistackSvcGroup