Writable Sys Path +Dll Hijacking Privesc
Inleiding
As jy gevind het dat jy kan skryf in 'n Stelselpaaie-gids (let daarop dat dit nie sal werk as jy in 'n Gebruikerspad-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 met meer privileges as joune gelaai word, gaan hijack, 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 is Dll Hijacking kyk:
Dll HijackingPrivesc met Dll Hijacking
Vind 'n ontbrekende Dll
Die 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 (voordat prosesse gelaai word). So, om ontbrekende .dlls te vind, doen:
Skep die gids
C:\privesc_hijacking
en voeg die padC:\privesc_hijacking
by die Stelselpaaie omgewingsvariabele. Jy kan dit handmatig doen of met PS:
Begin
procmon
en gaan naOptions
-->Enable boot logging
en drukOK
in die prompt.Dan, herbegin. Wanneer die rekenaar herbegin, sal
procmon
begin gebeurtenisse opneem so gou as moontlik.Sodra Windows begin is, 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:
Gemiste Dlls
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:
Diens | Dll | CMD lyn |
---|---|---|
Taak Skedule (Schedule) | WptsExtensions.dll |
|
Diagnostiese Beleid Diens (DPS) | Unknown.DLL |
|
??? | SharedRes.dll |
|
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.
Exploitatie
So, om privileges te verhoog gaan ons die biblioteek WptsExtensions.dll kaap. 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.
Die gebruiker het egter 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 gegenereer het (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 herbegin word, moet die dll gelaai en uitgevoer word (jy kan die procmon truuk hergebruik om te kyk of die biblioteek soos verwag gelaai is).
Last updated