Prozesse als Local System ausführen

Unter Windows werden Prozesse in der Regel im eigenen Benutzerkontext gestartet. Um bei aktiver UAC auch administrative Rechte zu erhalten, kann z.B. die PowerShell Konsole entsprechend gestartet werden. Oftmals reicht es vielleicht nicht, als lokaler Administrator am System zu hantieren. Wenn eine „Brechstange“ notwendig ist, kann auch zu „Local System“ gegriffen werden. Damit erhält man volle Berechtigungen auf einem lokalen System. Daher könnte der Beitrag auch heißen „Wie zerstöre ich mein Windows“. Microsoft lässt einen derartigen Aufruf jedoch nicht so ohne weiteres zu.


Ein Versuch mit runas wird prompt mit einem Fehler quittiert.

Windows Local System psexec

Das heißt jetzt jedoch nicht, dass es nicht möglich ist, eine Aktion als Local System zu starten. Ein Weg ist es, sich aus der Sysinternals Suite das Tool „psexec“ zu holen. Damit lassen sich über die Kommandozeile beliebige Prozesse starten. Die heruntergeladene psexec.exe kann aus einem beliebigen Verzeichnis gestartet werden. Alternativ lässt sie sich auch unter „%windir%\System32“ ablegen. Die erfolgreiche Nutzung erfordert eine privilegierte Eingabeaufforderung. Die CMD muss also als Administrator ausgeführt werden, sofern die UAC aktiv ist. Nun lassen sich beliebige Befehle als Local System ausführen. Im Beispiel von PowerShell muss also folgender Befehl ausgeführt werden.

psexec.exe -i -s powershell.exe

Windows Local System psexec

Die Powershell Konsole öffnet sich dann in einer eigenen Instanz. Um zu sehen, welcher Benutzer dafür verwendet wird, lässt sich über „whoami“ herausfinden.

Windows Local System psexec
Somit ist es sehr einfach, Prozesse unter einer fremden Identität zu starten. Allerdings hier nochmal die Warnung, dass Local System der User mit den meisten Berechtigungen auf einem lokalen System ist!