
Steam Client Service Lokale Privilegieneskalations-Schwachstelle
Dies ist die Single-Script-Version. Der ursprüngliche kompilierte C++-PoC befindet sich im Legacy-Branch. Danke an John Hammond für den Vorschlag, abonniert ihn!

PoC-Video: YouTube
John Hammonds Analyse: YouTube
Grüße an @MSNIGHTMARE2000 für die Inspiration – gebt ihm bitte einen Job und schreibt ihm eine E-Mail!
Shoutout an Tookie, Hazetick, belogen und bet3rd dafür, dass sie die ultimativen Homies sind.
Ich warte immer noch auf unsere Gaming-Session lusilly •`_´•
BrokenPipe demonstriert eine lokale Privilegieneskalation von einem Standard-Windows-Konto zu NT AUTHORITY\SYSTEM über den Steam Client Service. Der Proof startet eine SYSTEM-Eingabeaufforderung, ohne Administrator-Anmeldedaten anzufordern oder eine UAC-Abfrage anzuzeigen.
NT AUTHORITY\SYSTEM.whoami /user gab die Local-System-SID S-1-5-18 zurück.Der Steam Client Service (steamservice.exe), der immer als SYSTEM läuft, akzeptiert ein vom Aufrufer kontrolliertes Installationsstammverzeichnis, das nicht von der Signatur eines echten, von Valve signierten Install-Script-VDF abgedeckt ist. BrokenPipe nutzt diese Lücke in der Signaturabdeckung aus, um den privilegierten Dienst dazu zu bringen, den enthaltenen Launcher von einem verlagerten Pfad aus als SYSTEM auszuführen. Es fälscht, verändert oder umgeht die VDF-Signatur nicht.
Pipeline:
Establish IPC connection to Steam Client Service (no admin needed)
|
v
IClientInstallUtils::AddInstallScriptToWhiteList
|
| genuine Valve-signed VDF
| caller-controlled installation root <-- flaw is here
| relocated launcher becomes whitelisted
v
IClientInstallUtils::RunInstallScript
|
| service processes the run VDF
| whitelisted launcher is selected
v
Steam Client Service launches the executable as SYSTEM
|
v
the relocated launcher.exe now runs as NT AUTHORITY\SYSTEM
Der Proof wurde gegen die aktuelle Version von Steam 10.96.30.42 auf den neuesten Versionen von Windows 10 und Windows 11 x64 validiert.
Kein Build-Schritt. BrokenPipe ist ein einzelnes, eigenständiges PowerShell-Skript. Die echte, von Valve signierte VDF ist als Base64 eingebettet, und der Steam Client Service IPC-Client ist ein Inline-C#-Typ, sodass keine externen Binärdateien kompiliert oder mitgeliefert werden müssen.
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\BrokenPipe-PowerShell.ps1
Standardmäßig kopiert das Skript C:\Windows\System32\cmd.exe und lässt den Steam Client Service es als SYSTEM starten. Dass die verschobene launcher.exe überhaupt als NT AUTHORITY\SYSTEM läuft, ist der Beweis (bestätigen Sie dies im Task-Manager oder Process Explorer). Wenn Steam nicht bereits läuft, startet das Skript es zuerst still im Hintergrund.
Richten Sie es mit Parametern auf Ihre eigene Payload:
.\BrokenPipe-PowerShell.ps1 -PayloadPath "C:\path\to\payload.exe" -PayloadArguments "your args"
BrokenPipe\
assets\
brokenpipe-system-shell.png
BrokenPipe-PowerShell.ps1
LICENSE
README.md
Alles befindet sich in BrokenPipe-PowerShell.ps1: Es richtet die Shared-Memory-IPC zum Steam Client Service ein, whitelistet die eingebettete, von Valve signierte VDF gegen ein vom Aufrufer kontrolliertes Installationsverzeichnis und führt anschließend den verschobenen Launcher als SYSTEM aus.
Was ist das?
Eine lokale Privilegieneskalation von einem Standardbenutzer zu SYSTEM.
Wie funktioniert es?
Alles steht in BrokenPipe-PowerShell.ps1, eine einzige Datei, lies sie von oben nach unten.
Ist das nicht nutzlos?
Für dich vielleicht, für andere wahrscheinlich nicht.
Was ist daran so schlimm?
Du erlangst SYSTEM-Privilegien, eine Stufe höher als Administrator (das, was du per Rechtsklick auswählst) und eine Stufe niedriger als TRUSTEDINSTALLER, ohne überhaupt Administrator zu sein. Wenn du das nicht verstehst, google es (oder frag dein freundliches LLM aus der Nachbarschaft wie Grok, ChatGPT oder Siri, lmao).
Warum?
Weil VALVE davon bereits seit März weiß, es nicht behoben hat und nur, weil ich mich nicht für Steam oder irgendwelche VALVE-Spiele interessiere, besonders wenn CS2 voll von Cheatern und Exploitern ist. Sie sollten es beheben und sich den 5 Monate alten Bericht ansehen.
Irgendeine blöde Frage zu Standard-Admin-Installation oder so, die jemand gestellt hat und die mir ein paar Gehirnzellen geraubt hat...
Selbst dein Antivirus braucht Administratorrechte, wenn du es installierst, und die Installation von Steam erfordert beim ersten Installieren natürlich Administratorrechte. Danach führt es den Dienst einfach als SYSTEM aus, selbst für einen Standardbenutzer. Frag nicht mich, frag VALVE.
Die ursprüngliche Veröffentlichung war ein kompilierter C++-Launcher (BrokenPipe.exe), der ein eingebettetes interaktives Lab entpackte, einschließlich eines Brokers, der eine vollständig interaktive SYSTEM-Konsole bereitstellte. Diese Version lebt im Branch legacy. Dieser Branch ist dieselbe Schwachstelle, destilliert in ein einziges PowerShell-Skript ohne Build-Schritt und ohne eingebettete Binärdateien.
Dieses Projekt wird für autorisierte Sicherheitsforschung und defensive Validierung bereitgestellt. Teste nur auf Systemen, die dir gehören oder für die du ausdrückliche Genehmigung zur Bewertung hast.