Eine zuckerhaltige Version von Rottenpotatong mit ein wenig Saft, dh ein weiteres lokales Eskalationsinstrument, von einem Windows -Service -Konten bis hin zu NT Authority System
Rottenpotatong und seine Varianten nutzen die Eskalationskette, die auf BITS -Service basiert, der den MITM -Hörer am 127.0.0.1:6666 hat und wenn Sie SeImpersonate oder SeAssignPrimaryToken -Privilegien haben. Während einer Windows -Build -Bewertung fanden wir ein Setup, bei dem BITS absichtlich deaktiviert und Port 6666 eingenommen wurde.
Wir beschlossen, Rottenpotatong zu waffen: Begrüßen Sie Hallo zu saftiger Kartoffel .
Für die Theorie siehe Rotten Potato - Privilegs Eskalation von Service -Konten zu System und folgen Sie der Kette der Verbindungen und Referenzen.
Wir haben festgestellt, dass wir außer BITS mehrere COM -Server missbrauchen können. Sie müssen nur:
IMarshal -SchnittstelleNach einigen Tests haben wir eine umfangreiche Liste interessanter CLSIDs auf mehreren Windows -Versionen erhalten und getestet.
Juicypotato ermöglicht es Ihnen:
Target CLSID
Wählen Sie alle gewünschten CLSID. Hier finden Sie die von Betriebssystem organisierte Liste.
Com Hörport
Definieren Sie den Sie bevorzugen Com -Listening -Port (anstelle des marschallierten hartcodierten 6666)
Com -Hör -IP -Adresse
Binden Sie den Server an jeder IP ein
Prozesserstellungsmodus
Abhängig von den Berechtigungen des verpflichteten Benutzers können Sie auswählen:
CreateProcessWithToken (braucht SeImpersonate )CreateProcessAsUser (braucht SeAssignPrimaryToken )both Prozess zum Starten
Starten Sie eine ausführbare Datei oder ein Skript, wenn die Ausbeutung erfolgreich ist
Prozessargument
Passen Sie die gestarteten Prozessargumente an
RPC -Serveradresse
Für einen verstohlenen Ansatz können Sie sich mit einem externen RPC -Server authentifizieren
RPC Server -Port
Nützlich, wenn Sie sich mit einem externen Server authentifizieren möchten, und die Firewall blockiert Port 135 ...
Testmodus
hauptsächlich zu Testzwecken, dh Testing clSIDs. Es erstellt den DCOM und druckt den Benutzer von Token. Siehe hier zum Testen
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)
-c <{clsid}>: CLSID (default BITS:{4991d34b-80a1-4291-83b6-3328366b9097})
-z only test CLSID and print token's user

Wenn der Benutzer SeImpersonate oder SeAssignPrimaryToken -Berechtigungen hat, sind Sie ein System .
Es ist fast unmöglich, den Missbrauch all dieser COM -Server zu verhindern. Sie könnten sich vorstellen, die Berechtigungen dieser Objekte über DCOMCNFG zu ändern, aber viel Glück, das wird eine Herausforderung sein.
Die tatsächliche Lösung besteht darin, sensible Konten und Anwendungen zu schützen, die unter den * SERVICE Servicekonten ausgeführt werden. Das Stoppen DCOM würde diesen Exploit sicherlich hemmen, könnte aber ernsthafte Auswirkungen auf das zugrunde liegende Betriebssystem haben.
Ein automatischer Build ist verfügbar. Binärdateien können hier aus dem Abschnitt Artefakte heruntergeladen werden.
Auch in Blackarch erhältlich.