Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
BrokenPipe — Vulnérabilité d’élévation de privilèges locaux dans Steam Client Service | Kitploit
Outils/GitHubGitHub/killaboi/brokenpipe
Escalade de PrivilègesAnalyse des VulnérabilitésExploitationPost-ExploitationTests d'IntrusionRed Teaming
GitHubkillaboi/brokenpipe

BrokenPipe

Vulnérabilité d’élévation de privilèges locaux dans Steam Client Service

Voir le dépôt
2355291il y a 1 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

BrokenPipe - Vulnérabilité LPE du service client Steam

Ceci est la version mono-script. Le PoC C++ compilé original se trouve sur la branche legacy. Merci à John Hammond pour la suggestion, abonnez-vous à lui !

BrokenPipe lançant une invite de commandes NT AUTHORITY\SYSTEM

Vidéo du PoC : YouTube
Analyse de John Hammond : YouTube


Salutations à @MSNIGHTMARE2000 pour l'inspiration - donnez-lui un emploi et envoyez-lui un e-mail !
Coucou à Tookie, Hazetick, belogen et bet3rd pour être les meilleurs potes.
J'attends toujours notre session de jeu lusilly •`_´•

Qu'est-ce que BrokenPipe ?

BrokenPipe démontre une élévation de privilèges locale depuis un compte Windows standard vers NT AUTHORITY\SYSTEM via le service client Steam. La preuve de concept lance une invite de commandes SYSTEM sans demander d'identifiants administrateur ni afficher d'invite UAC.

Ce que la capture d'écran ci-dessus prouve

  • BrokenPipe a été lancé par un utilisateur Windows standard.
  • Steam était ouvert sur son écran de connexion non authentifié.
  • L'invite de commandes résultante s'exécutait en tant que NT AUTHORITY\SYSTEM.
  • whoami /user a renvoyé le SID Local System, S-1-5-18.
  • Aucun jeu n'a été lancé.

Résumé technique

Le service client Steam (steamservice.exe), qui s'exécute toujours en tant que SYSTEM, accepte une racine d'installation contrôlée par l'appelant qui n'est pas couverte par la signature d'un script d'installation VDF authentique signé par Valve. BrokenPipe exploite cette lacune de couverture de signature pour amener le service privilégié à exécuter le lanceur inclus depuis un chemin déplacé, en tant que SYSTEM. Il ne falsifie, ne modifie ni ne contourne la signature VDF.

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

La preuve a été validée contre la version actuelle de Steam 10.96.30.42 sur les dernières versions de Windows 10 et Windows 11 x64.

Prérequis

  • Windows 10 ou Windows 11 x64
  • Steam installé, avec le service client Steam en cours d'exécution
  • Windows PowerShell 5.1 (fourni avec Windows)

Aucune étape de compilation. BrokenPipe est un script PowerShell unique et autonome. Le VDF authentique signé par Valve est intégré en base64 et le client IPC du service client Steam est un type C# inline, il n'y a donc aucun binaire externe à compiler ou à livrer.

Utilisation

  1. Connectez-vous en tant qu'utilisateur Windows standard.
  2. Démarrez Steam et laissez-le inactif. Une connexion à un compte Steam n'est pas requise.
  3. N'ouvrez pas de jeu.
  4. Depuis le répertoire du projet, exécutez le script sans élévation :
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\BrokenPipe-PowerShell.ps1

Par défaut, le script copie C:\Windows\System32\cmd.exe et fait en sorte que le Steam Client Service le lance en tant que SYSTEM. Le fait que le launcher.exe relocalisé s'exécute réellement en tant que NT AUTHORITY\SYSTEM en est la preuve (confirmez-le dans le Gestionnaire des tâches ou Process Explorer). Si Steam n'est pas déjà en cours d'exécution, le script le démarre silencieusement au préalable.

Pointez-le vers votre propre charge utile avec des paramètres :

.\BrokenPipe-PowerShell.ps1 -PayloadPath "C:\path\to\payload.exe" -PayloadArguments "your args"

Organisation du code source

BrokenPipe\
  assets\
    brokenpipe-system-shell.png
  BrokenPipe-PowerShell.ps1
  LICENSE
  README.md

Tout se trouve dans BrokenPipe-PowerShell.ps1 : il établit l'IPC par mémoire partagée avec le Steam Client Service, ajoute le VDF embarqué signé par Valve à la liste blanche par rapport à une racine d'installation contrôlée par l'appelant, puis exécute le lanceur relocalisé en tant que SYSTEM.

FAQ

Qu'est-ce que c'est ?
Une élévation de privilèges locale d'utilisateur standard vers SYSTEM.

Comment ça fonctionne ?
Tout est dans BrokenPipe-PowerShell.ps1, un seul fichier, lisez-le du début à la fin.

N'est-ce pas inutile ?
Pour vous, peut-être, pour d'autres, probablement pas.

Qu'y a-t-il de si grave ?
Vous obtenez les privilèges SYSTEM, c'est un niveau supérieur à Administrateur (ce sur quoi vous faites un clic droit et sélectionnez) et un niveau inférieur à TRUSTEDINSTALLER sans être réellement administrateur au départ. Si vous ne comprenez pas cela, cherchez sur Google (ou demandez à votre LLM de quartier préféré comme Grok, ChatGPT ou Siri mdr).

Pourquoi ?
Parce que VALVE est déjà au courant depuis mars, ils ne l'ont pas corrigé et simplement parce que je me fiche de Steam ou de n'importe quel jeu VALVE, surtout quand CS2 est infesté de tricheurs et d'exploiteurs. Ils devraient le corriger et se pencher sur ce rapport vieux de 5 mois.

Une question stupide sur l'installation en tant qu'administrateur standard ou je ne sais quoi que quelqu'un a posée et qui m'a fait perdre quelques neurones...
Même votre antivirus a besoin de droits administrateur lors de son installation, installer Steam nécessite bien sûr des droits administrateur lors de la première installation. Ensuite, il exécute simplement le service en tant que SYSTEM même pour un utilisateur standard. Ne me demandez pas, demandez à VALVE.

Héritage

La version originale était un lanceur C++ compilé (BrokenPipe.exe) qui décompressait un laboratoire interactif embarqué, incluant un broker qui orchestrait une console SYSTEM entièrement interactive. Cette version vit sur la branche legacy. Cette branche est la même vulnérabilité distillée en un seul script PowerShell, sans étape de compilation ni binaires embarqués.

Avertissement

Ce projet est fourni à des fins de recherche en sécurité autorisée et de validation défensive. Testez uniquement sur des systèmes que vous possédez ou pour lesquels vous disposez d'une autorisation explicite d'évaluation.

Télécharger l’outil