Writable Sys Path +Dll Hijacking Privesc
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.
Utangulizi
Ikiwa umegundua kwamba unaweza kuandika katika folda ya System Path (kumbuka kwamba hii haitafanya kazi ikiwa unaweza kuandika katika folda ya User Path) inawezekana kwamba unaweza kupandisha ruhusa kwenye mfumo.
Ili kufanya hivyo unaweza kunyanyasa Dll Hijacking ambapo utafanya hijack ya maktaba inayopakiwa na service au mchakato wenye ruhusa zaidi kuliko zako, na kwa sababu service hiyo inapakia Dll ambayo labda haipo hata kwenye mfumo mzima, itajaribu kuipakia kutoka System Path ambapo unaweza kuandika.
Kwa maelezo zaidi kuhusu ni nini Dll Hijackig angalia:
Privesc na Dll Hijacking
Kupata Dll iliyokosekana
Kitu cha kwanza unachohitaji ni kutambua mchakato unaokimbia na ruhusa zaidi kuliko zako ambao unajaribu kupakia Dll kutoka System Path ambayo unaweza kuandika ndani yake.
Shida katika kesi hizi ni kwamba uwezekano mchakato hizo tayari zinakimbia. Ili kupata Dll ambazo zinakosekana kwa services unahitaji kuanzisha procmon haraka iwezekanavyo (kabla mchakato haujapakiwa). Kwa hivyo, ili kutafuta .dll zilizokosekana fanya:
- Unda folda
C:\privesc_hijackingna ongeza pathC:\privesc_hijackingkwenye System Path env variable. Unaweza kufanya hivi kwa mkono au kwa PS:
# Set the folder path to create and check events for
$folderPath = "C:\privesc_hijacking"
# Create the folder if it does not exist
if (!(Test-Path $folderPath -PathType Container)) {
New-Item -ItemType Directory -Path $folderPath | Out-Null
}
# Set the folder path in the System environment variable PATH
$envPath = [Environment]::GetEnvironmentVariable("PATH", "Machine")
if ($envPath -notlike "*$folderPath*") {
$newPath = "$envPath;$folderPath"
[Environment]::SetEnvironmentVariable("PATH", $newPath, "Machine")
}
- Zindua
procmonna nenda kwenyeOptions–>Enable boot loggingkisha bonyezaOKkwenye mwito. - Kisha, anzisha upya. Kompyuta itakapowashwa tena
procmonitaanza kurekodi matukio mara moja iwezekanavyo. - Mara Windows itakapowashwa, endesha
procmontena, itakuambia kuwa imekuwa ikikimbia na itauliza ikiwa ungependa kuhifadhi matukio katika faili. Sema ndio na hifadhi matukio katika faili. - Baada faili ikizalishwa, funika dirisha la
procmonlililofunguliwa na fungua faili la matukio. - Ongeza hizi filters na utapata DLL zote ambazo baadhi ya process zilijaribu kuzileta kutoka kwenye folda ya writable System Path:
.png)
Dlls zilizokosewa
Nilipokimbia hii kwenye mashine ya virtual (vmware) ya Windows 11 bila malipo nilipata matokeo haya:
.png)
Katika kesi hii .exe hazina matumizi, zahirika, DLL zilizokosewa zilitoka kwa:
| Huduma | Dll | CMD line |
|---|---|---|
| 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 |
Baada ya kugundua hili, nilipata chapisho la blogu lenye kuvutia ambalo pia linaelezea jinsi ya abuse WptsExtensions.dll for privesc. Hilo ndilo tutakalofanya sasa.
Exploitation
Kwa hivyo, ili escalate privileges tutahijack maktaba WptsExtensions.dll. Tukiwa na path na name tunahitaji tu generate the malicious dll.
Unaweza jaribu kutumia mifano yoyote ya hizi. Unaweza kuendesha payloads kama: kupata rev shell, kuongeza user, kuendesha beacon…
Warning
Kumbuka kwamba si huduma zote zinaendeshwa kwa
NT AUTHORITY\SYSTEM— baadhi zinaendeshwa pia kwaNT AUTHORITY\LOCAL SERVICEambayo ina privileges chache na hutaweza kuunda user mpya kwa kutumia ruhusa zake.
Hata hivyo, user huyo ana ruhusa yaseImpersonate, hivyo unaweza kutumia potato suite to escalate privileges. Kwa hivyo, katika kesi hii rev shell ni chaguo zuri zaidi kuliko kujaribu kuunda user.
Kwa wakati wa kuandika hii huduma ya Task Scheduler inaendeshwa kwa Nt AUTHORITY\SYSTEM.
Mara baada ya kutengeneza Dll hasidi (kwangu nilitumia x64 rev shell na nilipata shell lakini defender iliiua kwa sababu ilitokana na msfvenom), ichiweke kwenye writable System Path kwa jina WptsExtensions.dll na anzisha upya kompyuta (au anzisha upya service au fanya chochote kinachohitajika ili kuendesha tena service/programu iliyohusishwa).
Wakati service itakapowashwa tena, dll inapaswa kuzipakiwa na kutekelezwa (unaweza tumia tena trick ya procmon ili kukagua ikiwa library ilizimwa kama ilivyotarajiwa).
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.
HackTricks

