
Vulnerabilidade de Escalação de Privilégios Locais no Steam Client Service

Vídeo PoC: AQUI
Vídeo legal do John Hammond AQUI
Greetz to @MSNIGHTMARE2000 pela inspiração - Por favor, dê um emprego a ele e envie um e-mail!
Shoutout to Tookie, Hazetick, belogen e bet3rd por serem os melhores parceiros.
E você ainda me deve uma sessão de jogo de Overwatch ou Starlight Princess lusilly, meow :3
O BrokenPipe demonstra uma escalada de privilégios local de uma conta Windows padrão para
NT AUTHORITY\SYSTEM através do Serviço do Cliente Steam. A prova inicia um prompt de comando
SYSTEM interativo sem solicitar credenciais de administrador ou exibir um prompt UAC.
NT AUTHORITY\SYSTEM.whoami /user retornou o SID do Sistema Local, S-1-5-18.O Serviço do Cliente Steam (steamservice.exe), que sempre é executado como SYSTEM, aceita uma raiz de instalação controlada pelo chamador que não é coberta pela
assinatura de um VDF de script de instalação genuíno assinado pela Valve. O BrokenPipe usa essa lacuna de cobertura de assinatura
para fazer o serviço privilegiado executar o launcher incluído a partir de um caminho realocado como SYSTEM. Ele
não forja, modifica ou contorna a assinatura do 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
A prova foi validada contra a versão atual do Steam 10.96.30.42 nas versões mais recentes do Windows 10 e Windows 11 x64.
Requisitos:
Abra o PowerShell no diretório do projeto e execute:
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\build.ps1
O executável final é gravado em:
x64\Release\BrokenPipe.exe
O script de compilação localiza o MSBuild, verifica o hash do payload incorporado, recompila a configuração x64 Release e imprime o caminho final do executável e o SHA-256.
Você também pode abrir BrokenPipe.sln no Visual Studio, selecionar Release | x64 e escolher
Build > Rebuild Solution.
BrokenPipe.exe normalmente, sem elevação.whoami ou whoami /user ou qualquer outro comando que você queira executar.exit ou feche o prompt SYSTEM quando terminar.Nenhum argumento de linha de comando ou arquivo de runtime externo é necessário. O ZIP do payload é compilado dentro
do executável. A prova não cria persistência, inicia apenas o canônico
C:\Windows\System32\cmd.exe e coloca a árvore de processos elevados em um job do Windows com kill-on-close.
Os recibos JSON são gravados em C:\Users\Public\BrokenPipe.
Se você quiser fazer ajustes no payload usado, ele está localizado na pasta payloads com o 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
O payload incorporado deve permanecer em payload\BrokenPipePayload.zip, a menos que seu caminho de recurso também seja
atualizado em BrokenPipe.rc.
Q: O que é isso
A: Uma Escalada de Privilégios Local de Usuário Padrão -> SYSTEM
Q: Como funciona?
A: Olhe em Payload\BrokenPipePayload.zip, descompacte-o e leia o código.
Q: Não é inútil?
A: Para você, talvez, para outros, provavelmente não.
Q: O que há de tão ruim nisso
A: Você está obtendo privilégios SYSTEM, é um nível acima de Administrador (o que você clica com o botão direito e seleciona) e um nível abaixo de TRUSTEDINSTALLER sem realmente ser um administrador em primeiro lugar. Se você não entende isso, pesquise no Google (ou pergunte ao seu LLM amigável de confiança, como Grok, ChatGPT ou Siri, rsrs)
Q: Por quê?
A: Porque a VALVE já sabe disso desde março, eles não corrigiram e simplesmente porque eu não me importo com o Steam ou qualquer jogo da VALVE, especialmente quando o CS2 está repleto de trapaceiros e exploradores. Eles deveriam corrigir isso e analisar esse relatório de 5 meses atrás.
Q: Alguma pergunta idiota sobre instalação de Administrador Padrão ou qualquer coisa que alguém fez que me causou uma leve perda de neurônios...
A: Até o seu antivírus precisa de direitos de administrador quando você o instala; instalar o Steam, é claro, requer direitos de administrador na primeira instalação. Depois disso, ele apenas executa o serviço como SYSTEM, mesmo para um usuário padrão. Não me pergunte, pergunte à VALVE.
Este projeto é fornecido para pesquisa de segurança autorizada e validação defensiva. Teste apenas em sistemas que você possui ou tem permissão explícita para avaliar.