
स्टीम क्लाइंट सर्विस लोकल प्रिविलेज एस्केलेशन वल्नरेबिलिटी
यह सिंगल-स्क्रिप्ट संस्करण है। मूल संकलित C++ PoC legacy ब्रांच पर है। सुझाव के लिए John Hammond को धन्यवाद, उन्हें सब्सक्राइब करें!

PoC वीडियो: YouTube
John Hammond का विश्लेषण: YouTube
प्रेरणा के लिए @MSNIGHTMARE2000 को ग्रीटिंग्स - कृपया उन्हें नौकरी दें और उन्हें ईमेल करें!
Tookie, Hazetick, belogen और bet3rd को सर्वोत्तम साथी होने के लिए शाउटआउट।
मैं अभी भी हमारे गेमिंग सेशन का इंतज़ार कर रहा हूँ lusilly •`_´•
BrokenPipe, Steam क्लाइंट सेवा के माध्यम से एक मानक Windows खाते से NT AUTHORITY\SYSTEM तक स्थानीय विशेषाधिकार वृद्धि (local privilege escalation) प्रदर्शित करता है। यह प्रमाण, व्यवस्थापक क्रेडेंशियल का अनुरोध किए बिना या UAC प्रॉम्प्ट दिखाए बिना एक SYSTEM कमांड प्रॉम्प्ट लॉन्च करता है।
NT AUTHORITY\SYSTEM के रूप में चला।whoami /user ने Local System SID, S-1-5-18 लौटाया।Steam क्लाइंट सेवा (steamservice.exe), जो हमेशा SYSTEM के रूप में चलती है, एक कॉलर-नियंत्रित इंस्टॉलेशन रूट स्वीकार करती है जो वास्तविक Valve-हस्ताक्षरित इंस्टॉल-स्क्रिप्ट VDF के हस्ताक्षर के अंतर्गत नहीं आता। BrokenPipe इस हस्ताक्षर-कवरेज अंतराल का उपयोग करके विशेषाधिकार प्राप्त सेवा को स्थानांतरित पथ से शामिल लॉन्चर को SYSTEM के रूप में निष्पादित करने के लिए बाध्य करता है। यह VDF हस्ताक्षर को नकली नहीं बनाता, संशोधित नहीं करता, या बायपास नहीं करता।
पाइपलाइन:
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
यह प्रमाण Windows 10 और Windows 11 x64 के नवीनतम संस्करणों पर Steam 10.96.30.42 के वर्तमान संस्करण के विरुद्ध सत्यापित किया गया था।
कोई बिल्ड चरण नहीं। BrokenPipe एक एकल स्व-निहित PowerShell स्क्रिप्ट है। असली Valve-हस्ताक्षरित VDF को base64 के रूप में एम्बेड किया गया है और Steam Client Service IPC क्लाइंट एक इनलाइन C# प्रकार है, इसलिए संकलित या शिप करने के लिए कोई बाहरी बाइनरी नहीं है।
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\BrokenPipe-PowerShell.ps1
डिफ़ॉल्ट रूप से स्क्रिप्ट C:\Windows\System32\cmd.exe को कॉपी करती है और Steam Client Service को SYSTEM के रूप में इसे लॉन्च करने देती है। यह कि स्थानांतरित launcher.exe NT AUTHORITY\SYSTEM के रूप में चलता है, यही प्रमाण है (इसे Task Manager या Process Explorer में पुष्टि करें)। यदि Steam पहले से नहीं चल रहा है, तो स्क्रिप्ट पहले इसे चुपचाप शुरू कर देती है।
पैरामीटर के साथ इसे अपने स्वयं के पेलोड पर इंगित करें:
.\BrokenPipe-PowerShell.ps1 -PayloadPath "C:\path\to\payload.exe" -PayloadArguments "your args"
BrokenPipe\
assets\
brokenpipe-system-shell.png
BrokenPipe-PowerShell.ps1
LICENSE
README.md
सब कुछ BrokenPipe-PowerShell.ps1 में है: यह Steam Client Service के साथ साझा-मेमोरी IPC स्थापित करता है, कॉलर-नियंत्रित इंस्टॉल रूट के विरुद्ध एम्बेडेड Valve-हस्ताक्षरित VDF को व्हाइटलिस्ट करता है, और फिर स्थानांतरित लॉन्चर को SYSTEM के रूप में चलाता है।
यह क्या है?
एक Standard User -> SYSTEM लोकल प्रिविलेज एस्केलेशन।
यह कैसे काम करता है?
यह सब BrokenPipe-PowerShell.ps1 में है, एक ही फ़ाइल, इसे ऊपर से नीचे तक पढ़ें।
क्या यह बेकार नहीं है?
आपके लिए, शायद, दूसरों के लिए, शायद नहीं।
इसमें इतनी बुराई क्या है?
आप SYSTEM विशेषाधिकार प्राप्त कर रहे हैं, यह Administrator (जिसे आप राइट क्लिक करके चुनते हैं) से एक स्तर ऊपर है और TRUSTEDINSTALLER से एक स्तर नीचे है, बिना वास्तव में पहले से एडमिन हुए। अगर आप इसे नहीं समझते, तो इसे Google करें (या अपने मित्रवत पड़ोसी LLM जैसे Grok, ChatGPT या Siri से पूछें, lol)।
क्यों?
क्योंकि VALVE को इसके बारे में मार्च से पता है, उन्होंने इसे ठीक नहीं किया है और केवल इसलिए कि मुझे Steam या किसी भी VALVE गेम की परवाह नहीं है, खासकर जब CS2 चीटर्स और शोषकों से भरा हुआ है। उन्हें इसे ठीक करना चाहिए और उस 5 महीने पुरानी रिपोर्ट को देखना चाहिए।
कोई बेवकूफ़ Standard Admin Install सवाल या जो कुछ भी किसी ने दिया जिससे मेरे दिमाग की कोशिकाओं का थोड़ा नुकसान हुआ...
जब आप अपना एंटीवायरस इंस्टॉल कर रहे होते हैं तो उसे भी एडमिन अधिकार चाहिए होते हैं, Steam इंस्टॉल करने के लिए निश्चित रूप से पहली बार इंस्टॉल पर एडमिन अधिकार चाहिए होते हैं। उसके बाद यह स्टैंडर्ड यूज़र के लिए भी सेवा को SYSTEM के रूप में चलाता है। मुझसे मत पूछो, VALVE से पूछो।
मूल रिलीज़ एक कंपाइल किया गया C++ लॉन्चर (BrokenPipe.exe) था जो एक एम्बेडेड इंटरैक्टिव लैब को अनपैक करता था, जिसमें एक ब्रोकर शामिल था जो पूरी तरह से इंटरैक्टिव SYSTEM कंसोल को मार्शल करता था। वह संस्करण legacy ब्रांच पर मौजूद है। यह ब्रांच वही भेद्यता है जिसे एक सिंगल PowerShell स्क्रिप्ट में संक्षिप्त किया गया है, जिसमें कोई बिल्ड स्टेप नहीं है और कोई एम्बेडेड बाइनरी नहीं है।
यह प्रोजेक्ट अधिकृत सुरक्षा अनुसंधान और रक्षात्मक सत्यापन के लिए प्रदान किया गया है। केवल उन सिस्टम पर परीक्षण करें जिनके आप मालिक हैं या जिनका मूल्यांकन करने के लिए आपके पास स्पष्ट अनुमति है।