JuicyPotato
Last updated
Last updated
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
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üfe:
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
RottenPotatoNG und seine Varianten nutzen die Privilegieneskalationskette basierend auf BITS
Dienst, der den MiTM-Listener auf 127.0.0.1:6666
hat und wenn du SeImpersonate
oder SeAssignPrimaryToken
Berechtigungen hast. 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: Sag Hallo zu Juicy Potato.
Für die Theorie siehe Rotten Potato - Privilegieneskalation von Dienstkonten zu SYSTEM und folge 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:
vom aktuellen Benutzer instanziierbar sein, normalerweise ein „Dienstbenutzer“, der über Impersonationsberechtigungen verfügt
das IMarshal
-Interface implementieren
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.
JuicyPotato ermöglicht dir:
Ziel-CLSID wähle jede CLSID, die du möchtest. Hier findest du die Liste, die nach OS organisiert ist.
COM-Listening-Port definiere den COM-Listening-Port, den du bevorzugst (anstatt des fest codierten 6666)
COM-Listening-IP-Adresse binde den Server an jede IP
Prozess-Erstellungsmodus je nach den Berechtigungen des impersonierten Benutzers kannst du wählen zwischen:
CreateProcessWithToken
(benötigt SeImpersonate
)
CreateProcessAsUser
(benötigt SeAssignPrimaryToken
)
beide
Prozess zum Starten starte eine ausführbare Datei oder ein Skript, wenn die Ausnutzung erfolgreich ist
Prozessargument passe die Argumente des gestarteten Prozesses an
RPC-Serveradresse für einen stealthy Ansatz kannst du dich bei einem externen RPC-Server authentifizieren
RPC-Serverport nützlich, wenn du dich bei einem externen Server authentifizieren möchtest und die Firewall den Port 135
blockiert…
TEST-Modus hauptsächlich für Testzwecke, d.h. zum Testen von CLSIDs. Es erstellt das DCOM und druckt den Benutzer des Tokens. Siehe hier für Tests
Wenn der Benutzer die Berechtigungen SeImpersonate
oder SeAssignPrimaryToken
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/
Hinweis: Besuchen Sie diese Seite, um eine Liste von CLSIDs auszuprobieren.
Oft funktioniert die standardmäßige CLSID, die JuicyPotato verwendet, nicht und der Exploit schlägt fehl. In der Regel sind mehrere Versuche erforderlich, um eine funktionierende CLSID zu finden. Um eine Liste von CLSIDs für ein bestimmtes Betriebssystem zu erhalten, solltest du diese Seite besuchen:
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-executablen 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
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)