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)
Jeśli odkryłeś, że możesz zapisywać w folderze System Path (zauważ, że to nie zadziała, jeśli możesz zapisywać w folderze User Path), istnieje możliwość, że możesz eskalować uprawnienia w systemie.
Aby to zrobić, możesz wykorzystać Dll Hijacking, gdzie zamierzasz przechwycić bibliotekę ładowaną przez usługę lub proces z większymi uprawnieniami niż twoje, a ponieważ ta usługa ładuje Dll, która prawdopodobnie nawet nie istnieje w całym systemie, spróbuje załadować ją z System Path, w którym możesz zapisywać.
Aby uzyskać więcej informacji na temat czym jest Dll Hijacking, sprawdź:
Dll HijackingPierwszą rzeczą, którą musisz zrobić, jest zidentyfikowanie procesu działającego z większymi uprawnieniami niż ty, który próbuje załadować Dll z System Path, w którym możesz zapisywać.
Problem w tych przypadkach polega na tym, że prawdopodobnie te procesy już działają. Aby znaleźć, które Dll brakuje usługom, musisz uruchomić procmon tak szybko, jak to możliwe (zanim procesy zostaną załadowane). Aby znaleźć brakujące .dll, wykonaj:
Utwórz folder C:\privesc_hijacking
i dodaj ścieżkę C:\privesc_hijacking
do zmiennej środowiskowej System Path. Możesz to zrobić ręcznie lub za pomocą PS:
Uruchom procmon
i przejdź do Options
--> Enable boot logging
i naciśnij OK
w oknie dialogowym.
Następnie zrestartuj komputer. Gdy komputer się uruchomi, procmon
zacznie rejestrować zdarzenia jak najszybciej.
Po uruchomieniu Windows ponownie uruchom procmon
, powie ci, że działał i zapyta, czy chcesz zapisać zdarzenia w pliku. Powiedz tak i zapisz zdarzenia w pliku.
Po wygenerowaniu pliku, zamknij otwarte okno procmon
i otwórz plik ze zdarzeniami.
Dodaj te filtry, a znajdziesz wszystkie Dll, które niektóre procesy próbowały załadować z folderu zapisywalnego System Path:
Uruchamiając to na darmowej wirtualnej maszynie (vmware) Windows 11 uzyskałem te wyniki:
W tym przypadku .exe są bezużyteczne, więc je zignoruj, przegapione DLL pochodziły od:
Harmonogram zadań (Schedule)
WptsExtensions.dll
C:\Windows\system32\svchost.exe -k netsvcs -p -s Schedule
Usługa polityki diagnostycznej (DPS)
Unknown.DLL
C:\Windows\System32\svchost.exe -k LocalServiceNoNetwork -p -s DPS
???
SharedRes.dll
C:\Windows\system32\svchost.exe -k UnistackSvcGroup
Po znalezieniu tego, znalazłem ten interesujący post na blogu, który również wyjaśnia, jak nadużyć WptsExtensions.dll do eskalacji uprawnień. Co właśnie zamierzamy teraz zrobić.
Aby eskalować uprawnienia, zamierzamy przejąć bibliotekę WptsExtensions.dll. Mając ścieżkę i nazwę, musimy tylko wygenerować złośliwy dll.
Możesz spróbować użyć któregokolwiek z tych przykładów. Możesz uruchomić ładunki takie jak: uzyskać powłokę rev, dodać użytkownika, wykonać beacon...
Zauważ, że nie wszystkie usługi są uruchamiane z NT AUTHORITY\SYSTEM
, niektóre są również uruchamiane z NT AUTHORITY\LOCAL SERVICE
, które mają mniejsze uprawnienia i nie będziesz w stanie stworzyć nowego użytkownika nadużywając jego uprawnień.
Jednak ten użytkownik ma uprawnienie seImpersonate
, więc możesz użyć potato suite do eskalacji uprawnień. W tym przypadku powłoka rev jest lepszą opcją niż próba stworzenia użytkownika.
W momencie pisania usługa Harmonogram zadań jest uruchamiana z Nt AUTHORITY\SYSTEM.
Mając wygenerowany złośliwy Dll (w moim przypadku użyłem x64 rev shell i uzyskałem powłokę, ale defender ją zabił, ponieważ pochodziła z msfvenom), zapisz go w zapisywalnym System Path pod nazwą WptsExtensions.dll i zrestartuj komputer (lub zrestartuj usługę lub zrób cokolwiek, aby ponownie uruchomić dotkniętą usługę/program).
Gdy usługa zostanie ponownie uruchomiona, dll powinien zostać załadowany i wykonany (możesz ponownie użyć sztuczki procmon, aby sprawdzić, czy biblioteka została załadowana zgodnie z oczekiwaniami).
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)