Missbrauch des Service Control Managers für Privilege Escalation in Windows

Dieser Artikel beschreibt eine interessante Methode, mit der Penetrationstester den Windows Service Control Manager missbrauchen können, um die Rechte auf einem lokalen System zu erweitern.

Dazu wird ein kompromittiertes privilegiertes Benutzerkonto benötigt. Mit diesen Rechten wird der Service Control Manager so manipuliert, dass er einem beliebigen nicht-administrativen Benutzer dauerhaft volle SYSTEM-Rechte auf einem Rechner einräumt. Dazu wird dem Service Control Manager mit dem Befehl sdset eine übermäßig großzügige Access Control List (ACL) übergeben.

Dem Artikel zufolge reicht es aus, den Befehl sc.exe sdset scmanager D:(A;;KA;;;;WD) aus einer erweiterten Windows-Shell (z.B. mit lokalen Admin-Rechten) auszuführen.

Um zu verstehen, wie dieser Angriff funktioniert, muss man sich sowohl mit sdset als auch mit Microsofts Security Descriptor Definition Language (SDDL) vertraut machen.

Eigentlich muss man nur wissen, dass das Format eine nullterminierte Zeichenkette mit Token ist. Sie gibt die vier Hauptkomponenten eines Sicherheitsdeskriptors an:
Eigentümer (O:), primäre Gruppe (G:), DACL (D:) und SACL (S:). Sicherheitsdeskriptoren können jede Kombination dieser Token enthalten. Nicht alle sind zwingend erforderlich.

Zusammenfassend kann gesagt werden, dass dieser Befehl jedem alle Berechtigungen für den System Control Manager gewährt. Mit anderen Worten, man kann (als nicht privilegierter Benutzer) einen Dienst erstellen, der es ihm erlaubt, jeden beliebigen Befehl auszuführen, als ob er SYSTEM-Privilegien hätte. Dies ist möglich, da der scmanager im SYSTEM-Kontext läuft.

Test unter Windows 11

Wir haben diese Methode unter Windows 11 getestet. Dazu haben wir auf einem lokalen Rechner folgende Benutzerkonten eingerichtet:

John: Benutzer und lokaler Administrator
Susi: Benutzer

In diesem Szenario wurde das Benutzerkonto von John im Rahmen eines Penetrationstests kompromittiert. Der Angreifer hat so lokale Administrationsrechte erlangt.

Für den nächsten Schritt ist die folgende Vorgehensweise nicht unbedingt erforderlich. Hier wird gezeigt, wie man mit Hilfe der PsExec.exe der Sysinternals Suite von Microsoft SYSTEM-Rechte auf dem lokalen PC erhält, wenn man bereits lokale Administratorrechte hat. Führen Sie dazu in der Administratoren Eingabeaufforderung folgenden Befehl aus:

PsExec.exe -s -i cmd.exe

Das Ergebnis ist ein weiters Fenster, indem der Angreifer SYSTEM-Rechte hat.

Aber zurück zum Thema. Im nächsten Schritt werden wir den Service Control Manager mit großzügigen Rechten ausstatten, um später einen neuen Service installieren zu können, der uns diese Privilege Escalation ermöglicht. Öffnen Sie dazu eine Eingabeaufforderung mit lokalen Administratorrechten. Hier führen Sie folgenden Befehl aus:

sc.exe sdset scmanager D:(A;;KA;;;WD) 

Achten Sie auf die Ausgabe! Wenn alles richtig läuft, dann sollten Sie eine entsprechende Erfolgsmeldung erhalten.

Im letzten Schritt wird ein Dienst eingerichtet, der das lokale Benutzerkonto Susi zur Gruppe der lokalen Administratoren hinzufügt. Der Parameter auto gibt an, dass der Dienst bei jedem Neustart des Computers automatisch gestartet wird und auch dann läuft, wenn sich niemand am Computer anmeldet. Den Dienst haben wir als “AdobeUpdater” getarnt.

sc create AdobeUpdater displayName= "AdobeUpdater"  binPath= "c:\windows\system32\net.exe localgroup Administratoren Susi /add"  start= auto

Sie können den Test machen und den Benutzer Susi aus der Gruppe der lokalen Administratoren entfernen. Beim nächsten Neustart des PCs wird er wieder hinzugefügt.

net localgroup Administratoren Susi /del

Gegenmaßnahmen:

Hierbei handelt es sich um eine raffinierte Methode, den Service Control Manager mit Hilfe der LotL-Technik (Living oft he Land) zu missbrauchen. In diesem Fall sollten die Blue-Teams Regeln in ihr SIEM einbauen, die auf diese Manipulation hinweisen. Denkbar wäre die Suche nach Zeichenketten wie “scmanager”, “sdset” oder “D:(A;;KA;;;WD)”

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Diese Seite verwendet Cookies, um die Nutzerfreundlichkeit zu verbessern. Mit der weiteren Verwendung stimmst du dem zu.

Datenschutzerklärung