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)
Ako ste otkrili da možete pisati u folderu System Path (napomena: ovo neće raditi ako možete pisati u folderu User Path) moguće je da možete povećati privilegije u sistemu.
Da biste to uradili, možete zloupotrebiti Dll Hijacking gde ćete oteti biblioteku koja se učitava od strane servisa ili procesa sa većim privilegijama od vaših, i pošto taj servis učitava Dll koji verovatno čak ni ne postoji u celom sistemu, pokušaće da ga učita iz System Path-a gde možete pisati.
Za više informacija o onome što je Dll Hijacking proverite:
Dll HijackingPrva stvar koju treba da uradite je da identifikujete proces koji se izvršava sa većim privilegijama od vas i koji pokušava da učita Dll iz System Path-a u koji možete pisati.
Problem u ovim slučajevima je što su ti procesi verovatno već pokrenuti. Da biste saznali koje Dll-ove usluge nemaju, treba da pokrenete procmon što je pre moguće (pre nego što se procesi učitaju). Dakle, da biste pronašli nedostajuće .dll-ove uradite:
Kreirajte folder C:\privesc_hijacking
i dodajte putanju C:\privesc_hijacking
u System Path env variable. Ovo možete uraditi ručno ili sa PS:
Pokrenite procmon
i idite na Options
--> Enable boot logging
i pritisnite OK
u prozoru.
Zatim, ponovo pokrenite. Kada se računar ponovo pokrene, procmon
će početi snimati događaje odmah.
Kada se Windows pokrene, ponovo izvršite procmon
, reći će vam da je već radio i pitati vas da li želite da sačuvate događaje u datoteku. Recite da i sačuvajte događaje u datoteku.
Nakon što je datoteka generisana, zatvorite otvoreni procmon
prozor i otvorite datoteku sa događajima.
Dodajte ove filtre i pronaći ćete sve DLL-ove koje je neki proces pokušao da učita iz foldera sa zapisivim sistemskim putem:
Pokrećući ovo na besplatnoj virtuelnoj (vmware) Windows 11 mašini dobio sam ove rezultate:
U ovom slučaju .exe su beskorisni, pa ih ignorisite, propušteni DLL-ovi su bili iz:
Task Scheduler (Raspored)
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
Nakon što sam ovo pronašao, našao sam ovaj zanimljiv blog post koji takođe objašnjava kako da zloupotrebite WptsExtensions.dll za privesc. Što je ono što sada planiramo da uradimo.
Dakle, da bismo povećali privilegije, planiramo da preuzmemo biblioteku WptsExtensions.dll. Imajući putanju i ime, samo treba da generišemo maliciozni dll.
Možete pokušati da koristite neki od ovih primera. Možete pokrenuti payload-e kao što su: dobijanje rev shell-a, dodavanje korisnika, izvršavanje beacona...
Imajte na umu da nisu sve usluge pokrenute sa NT AUTHORITY\SYSTEM
, neke se takođe pokreću sa NT AUTHORITY\LOCAL SERVICE
što ima manje privilegija i nećete moći da kreirate novog korisnika zloupotrebljavajući njegove dozvole.
Međutim, taj korisnik ima privilegiju seImpersonate
, tako da možete koristiti potato suite za povećanje privilegija. Dakle, u ovom slučaju rev shell je bolja opcija nego pokušaj da se kreira korisnik.
U trenutku pisanja, usluga Task Scheduler se pokreće sa Nt AUTHORITY\SYSTEM.
Nakon što je generisan maliciozni DLL (u mom slučaju sam koristio x64 rev shell i dobio sam shell nazad, ali ga je defender ubio jer je bio iz msfvenom), sačuvajte ga u zapisivom sistemskom putu pod imenom WptsExtensions.dll i ponovo pokrenite računar (ili ponovo pokrenite uslugu ili uradite šta god je potrebno da ponovo pokrenete pogođenu uslugu/program).
Kada se usluga ponovo pokrene, dll bi trebao biti učitan i izvršen (možete ponovo koristiti procmon trik da proverite da li je biblioteka učitana kako se očekivalo).
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)