JuicyPotato
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
JuicyPotato nie działa na Windows Server 2019 i Windows 10 od wersji 1809. Jednakże, PrintSpoofer, RoguePotato, SharpEfsPotato mogą być użyte do uzyskania tych samych uprawnień i zdobycia dostępu na poziomie NT AUTHORITY\SYSTEM
. Sprawdź:
Juicy Potato (nadużywanie złotych uprawnień)
Słodsza wersja RottenPotatoNG, z odrobiną soku, tj. kolejne narzędzie do eskalacji uprawnień lokalnych, z kont usług Windows do NT AUTHORITY\SYSTEM
Możesz pobrać juicypotato z https://ci.appveyor.com/project/ohpe/juicy-potato/build/artifacts
Podsumowanie
RottenPotatoNG i jego warianty wykorzystują łańcuch eskalacji uprawnień oparty na BITS
usłudze mającej nasłuch MiTM na 127.0.0.1:6666
i gdy masz uprawnienia SeImpersonate
lub SeAssignPrimaryToken
. Podczas przeglądu wersji Windows znaleźliśmy konfigurację, w której BITS
był celowo wyłączony, a port 6666
był zajęty.
Postanowiliśmy uzbroić RottenPotatoNG: Powitaj Juicy Potato.
Dla teorii, zobacz Rotten Potato - Eskalacja uprawnień z kont usług do SYSTEM i śledź łańcuch linków i odniesień.
Odkryliśmy, że oprócz BITS
istnieje kilka serwerów COM, które możemy nadużyć. Muszą one tylko:
być instancjonowane przez bieżącego użytkownika, zazwyczaj „użytkownika usługi”, który ma uprawnienia do impersonacji
implementować interfejs
IMarshal
działać jako użytkownik z podwyższonymi uprawnieniami (SYSTEM, Administrator, …)
Po kilku testach uzyskaliśmy i przetestowaliśmy obszerną listę interesujących CLSID-ów na kilku wersjach Windows.
Soczyste szczegóły
JuicyPotato pozwala Ci:
Cel CLSID wybierz dowolny CLSID, który chcesz. Tutaj możesz znaleźć listę uporządkowaną według systemu operacyjnego.
Port nasłuchujący COM zdefiniuj preferowany port nasłuchujący COM (zamiast hardcodowanego 6666)
Adres IP nasłuchujący COM przypisz serwer do dowolnego adresu IP
Tryb tworzenia procesu w zależności od uprawnień użytkownika impersonowanego możesz wybierać spośród:
CreateProcessWithToken
(wymagaSeImpersonate
)CreateProcessAsUser
(wymagaSeAssignPrimaryToken
)oba
Proces do uruchomienia uruchom plik wykonywalny lub skrypt, jeśli eksploatacja się powiedzie
Argument procesu dostosuj argumenty uruchamianego procesu
Adres serwera RPC dla dyskretnego podejścia możesz uwierzytelnić się w zewnętrznym serwerze RPC
Port serwera RPC przydatne, jeśli chcesz uwierzytelnić się w zewnętrznym serwerze, a zapora blokuje port
135
…TRYB TESTOWY głównie do celów testowych, tj. testowanie CLSID-ów. Tworzy DCOM i drukuje użytkownika tokena. Zobacz tutaj do testowania
Użycie
Final thoughts
Jeśli użytkownik ma uprawnienia SeImpersonate
lub SeAssignPrimaryToken
, to jesteś SYSTEM.
Prawie niemożliwe jest zapobieżenie nadużywaniu wszystkich tych serwerów COM. Możesz pomyśleć o modyfikacji uprawnień tych obiektów za pomocą DCOMCNFG
, ale powodzenia, to będzie wyzwanie.
Rzeczywistym rozwiązaniem jest ochrona wrażliwych kont i aplikacji, które działają pod kontami * SERVICE
. Zatrzymanie DCOM
z pewnością uniemożliwiłoby to wykorzystanie, ale mogłoby mieć poważny wpływ na podstawowy system operacyjny.
Z: http://ohpe.it/juicy-potato/
Examples
Note: Odwiedź tę stronę, aby zobaczyć listę CLSID-ów do wypróbowania.
Get a nc.exe reverse shell
Powershell rev
Uruchom nowy CMD (jeśli masz dostęp RDP)
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F600722126-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FJtticLwENZ4i7WwgHiQe%252Fuploads%252Fgit-blob-540b55ef07a710be0b9fe24b65c17daf982cd794%252Fimage%2520%28300%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=be75184&sv=1)
Problemy z CLSID
Często domyślny CLSID, który używa JuicyPotato, nie działa i exploit się nie powodzi. Zazwyczaj wymaga to wielu prób, aby znaleźć działający CLSID. Aby uzyskać listę CLSID do przetestowania dla konkretnego systemu operacyjnego, powinieneś odwiedzić tę stronę:
Sprawdzanie CLSID
Najpierw będziesz potrzebować kilku plików wykonywalnych oprócz juicypotato.exe.
Pobierz Join-Object.ps1 i załaduj go do swojej sesji PS, a następnie pobierz i uruchom GetCLSID.ps1. Ten skrypt stworzy listę możliwych CLSID do przetestowania.
Następnie pobierz test_clsid.bat (zmień ścieżkę do listy CLSID i do pliku wykonywalnego juicypotato) i uruchom go. Zacznie próbować każdy CLSID, a gdy numer portu się zmieni, oznacza to, że CLSID zadziałał.
Sprawdź działające CLSID używając parametru -c
Odniesienia
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)
Last updated