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)
As jy gevind het dat jy kan skryf in 'n Stelselpaaie-gids (let op dat dit nie sal werk as jy in 'n Gebruikerspaaie-gids kan skryf nie) is dit moontlik dat jy privileges kan eskaleer in die stelsel.
Om dit te doen, kan jy 'n Dll Hijacking misbruik waar jy 'n biblioteek wat deur 'n diens of proses gelaai word gaan hijack met meer privileges as joune, en omdat daardie diens 'n Dll laai wat waarskynlik glad nie in die hele stelsel bestaan nie, gaan dit probeer om dit vanaf die Stelselpaaie te laai waar jy kan skryf.
Vir meer inligting oor wat Dll Hijacking is, kyk:
Dll HijackingDie eerste ding wat jy nodig het, is om 'n proses te identifiseer wat met meer privileges as jy loop en wat probeer om 'n Dll vanaf die Stelselpaaie te laai waarin jy kan skryf.
Die probleem in hierdie gevalle is dat daardie prosesse waarskynlik reeds loop. Om te vind watter Dlls die dienste ontbreek, moet jy procmon so gou as moontlik begin (voor die prosesse gelaai word). So, om ontbrekende .dlls te vind, doen:
Skep die gids C:\privesc_hijacking
en voeg die pad C:\privesc_hijacking
by die Stelselpaaie omgewingsvariabele. Jy kan dit handmatig doen of met PS:
Begin procmon
en gaan na Options
--> Enable boot logging
en druk OK
in die prompt.
Dan, herbegin. Wanneer die rekenaar herbegin, sal procmon
begin gebeurtenisse opneem so gou as moontlik.
Sodra Windows begin het, voer procmon
weer uit, dit sal jou vertel dat dit aan die gang was en sal vraag of jy die gebeurtenisse in 'n lêer wil stoor. Sê ja en stoor die gebeurtenisse in 'n lêer.
Nadat die lêer gegenereer is, sluit die geopende procmon
venster en open die gebeurtenis lêer.
Voeg hierdie filters by en jy sal al die Dlls vind wat 'n proses probeer het om te laai vanaf die skryfbare Stelselpaaie-gids:
Ek het hierdie resultate gekry deur dit in 'n gratis virtuele (vmware) Windows 11 masjien te loop:
In hierdie geval is die .exe nutteloos, so ignoreer hulle, die gemiste DLLs was van:
Taak Skedule (Schedule)
WptsExtensions.dll
C:\Windows\system32\svchost.exe -k netsvcs -p -s Schedule
Diagnostiese Beleid Diens (DPS)
Unknown.DLL
C:\Windows\System32\svchost.exe -k LocalServiceNoNetwork -p -s DPS
???
SharedRes.dll
C:\Windows\system32\svchost.exe -k UnistackSvcGroup
Nadat ek dit gevind het, het ek hierdie interessante blogpos gevind wat ook verduidelik hoe om WptsExtensions.dll vir privesc te misbruik. Dit is wat ons nou gaan doen.
So, om privileges te verhoog gaan ons die biblioteek WptsExtensions.dll oorneem. Met die pad en die naam moet ons net die kwaadwillige dll genereer.
Jy kan enige van hierdie voorbeelde probeer. Jy kan payloads soos: 'n rev shell kry, 'n gebruiker byvoeg, 'n beacon uitvoer...
Let daarop dat nie al die dienste met NT AUTHORITY\SYSTEM
gedraai word nie, sommige word ook met NT AUTHORITY\LOCAL SERVICE
gedraai wat minder privileges het en jy sal nie in staat wees om 'n nuwe gebruiker te skep om sy toestemmings te misbruik.
Daarom het daardie gebruiker die seImpersonate
voorreg, so jy kan die potato suite gebruik om privileges te verhoog. So, in hierdie geval is 'n rev shell 'n beter opsie as om te probeer om 'n gebruiker te skep.
Op die oomblik van skryf word die Taak Skedule diens met Nt AUTHORITY\SYSTEM gedraai.
Nadat ek die kwaadwillige Dll (in my geval het ek x64 rev shell gebruik en ek het 'n shell teruggekry maar defender het dit doodgemaak omdat dit van msfvenom was), stoor dit in die skryfbare Stelselpaaie met die naam WptsExtensions.dll en herbegin die rekenaar (of herbegin die diens of doen wat ook al nodig is om die betrokke diens/program weer te laat loop).
Wanneer die diens weer begin, moet die dll gelaai en uitgevoer word (jy kan die procmon truuk hergebruik om te kyk of die biblioteek soos verwag gelaai is).
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)