
ثغرة تصعيد الامتيازات المحلية في خدمة عميل Steam

فيديو إثبات المفهوم: هنا
فيديو صغير لطيف من John Hammond هنا
تحياتي إلى @MSNIGHTMARE2000 على الإلهام - أرجوكم وظّفوه وأرسلوا له بريدًا إلكترونيًا!
تحية إلى Tookie و__Hazetick__ و__belogen__ و__bet3rd__ لكونهم أعظم الأصدقاء.
وما زلت مدينًا لي بجلسة لعب Overwatch أو Starlight Princess lusilly، مياو :3
يوضح BrokenPipe رفع صلاحيات محلي من حساب Windows قياسي إلى
NT AUTHORITY\SYSTEM عبر خدمة عميل Steam. يطلق إثبات المفهوم موجه أوامر
تفاعلي بصلاحيات SYSTEM دون طلب بيانات اعتماد المسؤول أو عرض مطالبة UAC.
NT AUTHORITY\SYSTEM.whoami /user معرّف Local System SID، وهو S-1-5-18.تقبل خدمة عميل Steam (steamservice.exe)، التي تعمل دائمًا بصلاحيات SYSTEM، جذر تثبيت يتحكم به المستدعي وغير مشمول
بتوقيع ملف VDF الخاص بنص تثبيت موقّع أصليًا من Valve. يستغل 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 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
تم التحقق من إثبات المفهوم مقابل الإصدار الحالي من Steam 10.96.30.42 على أحدث إصدارات Windows 10 وWindows 11 x64.
المتطلبات:
افتح PowerShell في دليل المشروع ونفّذ:
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\build.ps1
يُكتب الملف التنفيذي النهائي إلى:
x64\Release\BrokenPipe.exe
يعثر سكربت البناء على MSBuild، ويتحقق من تجزئة الحمولة المضمّنة، ويعيد بناء إعداد x64 Release، ويطبع مسار الملف التنفيذي النهائي وSHA-256.
يمكنك أيضًا فتح BrokenPipe.sln في Visual Studio، واختيار Release | x64، ثم اختيار
Build > Rebuild Solution.
BrokenPipe.exe بشكل عادي، دون رفع الصلاحيات.whoami أو whoami /user أو أي أمر آخر تريد تنفيذه.exit أو أغلق موجه SYSTEM عند الانتهاء.لا حاجة إلى وسائط سطر أوامر أو ملفات تشغيل خارجية. ملف ZIP الخاص بالحمولة مُضمّن في
الملف التنفيذي. لا ينشئ إثبات المفهوم أي استمرارية، ويطلق فقط
C:\Windows\System32\cmd.exe الأساسي، ويضع شجرة العمليات المرفوعة الصلاحيات في مهمة Windows تُقتل عند الإغلاق.
تُكتب إيصالات JSON إلى C:\Users\Public\BrokenPipe.
إذا أردت إجراء تعديلات على الحمولة المستخدمة، فهي موجودة في مجلد payload باسم 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
يجب أن تبقى الحمولة المضمّنة في payload\BrokenPipePayload.zip ما لم يتم أيضًا
تحديث مسار المورد الخاص بها في BrokenPipe.rc.
س: ما هذا
ج: رفع صلاحيات محلي من مستخدم قياسي -> SYSTEM
س: كيف يعمل؟
ج: انظر إلى Payload\BrokenPipePayload.zip، وفك ضغطه واقرأ الكود.
س: أليس عديم الفائدة؟
ج: بالنسبة لك، ربما، وبالنسبة لآخرين، على الأرجح لا.
س: ما السيئ في ذلك
ج: أنت تحصل على صلاحيات SYSTEM، وهي طبقة أعلى من Administrator (الذي تنقر عليه بزر الفأرة الأيمن وتختاره) وطبقة أدنى من TRUSTEDINSTALLER دون أن تكون مسؤولًا أصلًا. إذا لم تفهم هذا، ابحث عنه في Google (أو اسأل نموذجًا لغويًا صديقًا مثل Grok أو ChatGPT أو Siri هههه)
س: لماذا؟
ج: لأن VALVE تعلم به منذ مارس، ولم يصلحوه، ولمجرد أنني لا أهتم بـ Steam أو أي من ألعاب VALVE خاصة عندما تكون CS2 مليئة بالغشاشين والمستغلين. يجب أن يصلحوه وينظروا في ذلك التقرير الذي مضى عليه 5 أشهر.
س: سؤال غبي عن تثبيت Standard Admin أو ما شابه من شخص ما تسبب لي بفقدان بسيط لخلايا دماغي...
ج: حتى برنامج مكافحة الفيروسات لديك يحتاج إلى صلاحيات المسؤول عند تثبيته، وتثبيت Steam بالطبع يتطلب صلاحيات المسؤول في التثبيت الأول. بعد ذلك يشغّل الخدمة بصلاحيات SYSTEM حتى لمستخدم قياسي. لا تسألني، اسأل VALVE.
يُقدَّم هذا المشروع لأغراض البحث الأمني المصرّح به والتحقق الدفاعي. اختبره فقط على أنظمة تملكها أو لديك إذن صريح بتقييمها.