
Vulnerabilità di escalation dei privilegi locali nel servizio client Steam

Video PoC: QUI
Un bel video di John Hammond QUI
Un saluto a @MSNIGHTMARE2000 per l'ispirazione - Per favore, dategli un lavoro e inviategli un'email!
Un saluto a Tookie, Hazetick, belogen e bet3rd per essere i migliori amici.
E mi devi ancora una sessione di gioco a Overwatch o Starlight Princess lusilly, miao :3
BrokenPipe dimostra un'escalation di privilegi locale da un account Windows standard a
NT AUTHORITY\SYSTEM tramite il Servizio Client di Steam. La proof avvia un prompt dei comandi
SYSTEM interattivo senza richiedere credenziali amministrative né mostrare un prompt UAC.
NT AUTHORITY\SYSTEM.whoami /user ha restituito il SID del Local System, S-1-5-18.Il Servizio Client di Steam (steamservice.exe), che viene sempre eseguito come SYSTEM, accetta una root di installazione controllata dal chiamante che non è coperta dalla
firma di un VDF di script di installazione autentico firmato da Valve. BrokenPipe sfrutta questa lacuna nella copertura della firma
per far eseguire al servizio privilegiato il launcher incluso da un percorso rilocato come SYSTEM. Non
falsifica, modifica o aggira la firma VDF.
Pipeline:
Establish IPC connection to Steam Client Service (No Admin Needed)
|
v
IClientInstallUtils::AddInstallScriptToWhiteList
|
| Genuine Valve-signed VDF
| Caller-controlled installation root <------ flaw exists 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
|
| BrokenPipe receives an interactive
| NT AUTHORITY\SYSTEM command prompt
v
IClientInstallUtils::GetInstallScriptExitCode
|
| Optional polling or result collection
v
Cleanup and receipt generation
La proof è stata validata contro la versione corrente di Steam 10.96.30.42 sulle ultime versioni di Windows 10 e Windows 11 x64.
Requisiti:
Apri PowerShell nella directory del progetto ed esegui:
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\build.ps1
L'eseguibile finale viene scritto in:
x64\Release\BrokenPipe.exe
Lo script di build trova MSBuild, verifica l'hash del payload incorporato, ricompila la configurazione x64 Release e stampa il percorso finale dell'eseguibile e lo SHA-256.
Puoi anche aprire BrokenPipe.sln in Visual Studio, selezionare Release | x64 e scegliere
Build > Rebuild Solution.
BrokenPipe.exe normalmente, senza elevazione.whoami o whoami /user o qualsiasi altro comando tu voglia eseguire.exit o chiudi il prompt SYSTEM quando hai finito.Non sono richiesti argomenti da riga di comando o file runtime esterni. Il ZIP del payload è compilato
nell'eseguibile. La proof non crea persistenza, avvia solo il canonico
C:\Windows\System32\cmd.exe e colloca l'albero dei processi elevati in un job Windows kill-on-close.
Le ricevute JSON vengono scritte in C:\Users\Public\BrokenPipe.
Se vuoi apportare modifiche al payload utilizzato, si trova nella cartella payloads con il nome BrokenPipePayload.zip
BrokenPipe\
assets\
brokenpipe-system-shell.png
payload\
BrokenPipePayload.zip
BrokenPipe-Bootstrap.ps1
BrokenPipe.cpp
BrokenPipe.rc
BrokenPipe.sln
BrokenPipe.vcxproj
build.ps1
resource.h
README.md
Il payload incorporato deve rimanere in payload\BrokenPipePayload.zip a meno che il suo percorso di risorsa non venga
aggiornato anche in BrokenPipe.rc.
D: Cos'è questo
R: Un'escalation di privilegi locale da Utente Standard -> SYSTEM
D: Come funziona?
R: Guarda in Payload\BrokenPipePayload.zip, decomprimilo e leggi il codice.
D: Non è inutile?
R: Per te, forse, per altri, probabilmente no.
D: Cosa c'è di così grave
R: Stai ottenendo privilegi SYSTEM, è un livello superiore ad Administrator (quello che clicchi con il tasto destro e selezioni) e un livello inferiore a TRUSTEDINSTALLER senza essere effettivamente un admin in primo luogo. Se non capisci questo, cercalo su Google (o chiedi al tuo LLM di quartiere come Grok, ChatGPT o Siri lol)
D: Perché?
R: Perché VALVE lo sa già da marzo, non l'hanno corretto e semplicemente perché non mi interessa di Steam o di qualsiasi gioco VALVE, specialmente quando CS2 è pieno di cheater ed exploiter. Dovrebbero correggerlo e dare un'occhiata a quel report vecchio di 5 mesi.
D: Qualche stupida domanda sull'installazione da Admin Standard o qualunque cosa che qualcuno ha fatto che mi ha causato una leggera perdita di neuroni...
R: Anche il tuo antivirus necessita dei diritti di amministratore quando lo installi, installare Steam ovviamente richiede i diritti di amministratore alla prima installazione. Dopo di che esegue semplicemente il servizio come SYSTEM anche per un utente standard. Non chiedere a me, chiedi a VALVE.
Questo progetto è fornito per la ricerca di sicurezza autorizzata e la validazione difensiva. Testa solo su sistemi che possiedi o per cui hai esplicita autorizzazione a valutare.