Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/atredispartners/cve-2018-0952-systemcollector
تصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالاختبار الاختراقالفريق الأحمراستغلال الملفات الثنائية
GitHubatredispartners/cve-2018-0952-systemcollector

CVE-2018-0952-SystemCollector

PoC لتصعيد الامتيازات في Windows 10 Diagnostics Hub Standard Collector Service

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
عرض المستودع
111311منذ 8 سنواتتمت المراجعة من قبل Kitploit

SystemCollector

إثبات المفهوم لتصعيد الامتيازات في خدمة Diagnostics Hub Standard Collector على نظام ويندوز 10

المنتجات المتأثرة

  • ويندوز 10
  • ويندوز Server
  • ويندوز Server 2016
  • فيجوال ستوديو 2015 تحديث 3
  • فيجوال ستوديو 2017

ملخص

مكتبة Diagnostics Hub Packaging، التي تستخدمها خدمة Windows Standard Collector Service، يمكن إجبارها على نسخ ملف عشوائي إلى موقع عشوائي بسبب عدم محاكاة العميل في DiagnosticsHub.StandardCollector.Runtime.dll.

إليك مقالة مفصلة عن كيفية اكتشاف هذه الثغرة واستغلالها: ثغرة تصعيد الامتيازات في خدمة Windows Standard Collector Service.

التفاصيل الفنية

تسمح خدمة Standard Collector Service بتعريف عدة قيم عند تكوين جلسة التشخيص، بما في ذلك دليل المسح ومعرف الجلسة. يمكن أن يكون معرف الجلسة أي GUID ويمكن أن يكون دليل المسح أي موقع يملك المستخدم صلاحيات الكتابة إليه. إذا تم تكوين جلسة التجميع بمعرف c13851b2-b1e1-438f-bf73-949df897f1bf ومسار مسح C:\Users\Bob\AppData\Local\Temp\Microsoft\F12\perftools\visualprofiler\، تحدث الأحداث التالية عند استدعاء طريقة GetCurrentResult لكائن ICollectionSession:

  1. يتم إنشاء ملف سجل تتبع الأحداث (.etl) في مسار المسح: C:\Users\Bob\AppData\Local\Temp\Microsoft\F12\perftools\visualprofiler\c13851b2-b1e1-438f-bf73-949df897f1bf.1.m.etl
  2. يتم أيضًا إنشاء مجلد Report في مسار المسح: C:\Users\Bob\AppData\Local\Temp\Microsoft\F12\perftools\visualprofiler\Report.c13851b2-b1e1-438f-bf73-949df897f1bf.1
  3. يتم إنشاء مجلد بمعرف GUID عشوائي داخل مجلد التقرير: C:\Users\Bob\AppData\Local\Temp\Microsoft\F12\perftools\visualprofiler\Report.c13851b2-b1e1-438f-bf73-949df897f1bf.1\EAD6A227-31D4-4EA2-94A9-5DF276F69E65

يتم إنشاء هذه المجلدات وملفات ETL بواسطة خدمة التجميع لحزمة .diagsession التي يتم إنشاؤها عادةً عند انتهاء الجلسة. يؤدي استدعاء طريقة Stop على كائن ICollectionSession إلى قيام خدمة التجميع بتنفيذ حزمة التشخيص عن طريق استدعاء Microsoft::DiagnosticsHub::Packaging::DhPackageDirectory::CommitPackage. ستقوم دالة CommitPackage بنسخ أو نقل الملف الأصلي {scratch path}\c13851b2-b1e1-438f-bf73-949df897f1bf.1.m.etl إلى مجلد المعرف العشوائي: {scratch path}\Report.c13851b2-b1e1-438f-bf73-949df897f1bf.1\EAD6A227-31D4-4EA2-94A9-5DF276F69E65\c13851b2-b1e1-438f-bf73-949df897f1bf.1.m.etl

يتم تنفيذ عملية النسخ/النقل التي يتم تشغيلها بواسطة دالة CommitPackagingResult في DiagnosticsHub.StandardCollector.Runtime.dll دون محاكاة المستخدم (على عكس إنشاء الملف/المجلد الأولي)، مما يؤدي إلى مشكلة TOCTOU محتملة إذا تم استبدال المجلد الهدف بنقطة تثبيت تعيد توجيه النسخ إلى موقع عشوائي. لاستغلال هذه المشكلة بطريقة مفيدة، سيحتاج المهاجم إلى تبديل محتويات ملف ETL قبل نسخه. يمكن القيام بذلك عن طريق التغلب على حالة السباق باستخدام OpLock بعد تحرير مقبض الملف بواسطة الخدمة.

على الرغم من أننا لا نتحكم بشكل كامل في اسم ملف .etl الذي يتم نسخه، يمكننا استخدام خدعة الرمز المرتبط بدليل الكائنات للتحكم فيه. سيبدو إعداد نقطة التثبيت + الرمز المرتبط كما يلي:

  • نقطة التثبيت: {scratch path}\Report.c13851b2-b1e1-438f-bf73-949df897f1bf.1\EAD6A227-31D4-4EA2-94A9-5DF276F69E65\ -> \RPC Control\
  • الرمز المرتبط: \RPC Control\c13851b2-b1e1-438f-bf73-949df897f1bf.1.m.etl -> C:\Windows\System32\anything.dll

إن التحكم في محتويات الملف وموقع النسخ واسم الملف يمنح المهاجم العديد من إمكانيات تحميل DLL. ومع ذلك، يوضح إثبات المفهوم المرفق أن التحكم في اسم الملف ليس ضروريًا لأن خدمة التجميع تقوم بتحميل DLL بأي اسم ملف، طالما أنه موجود في دليل C:\Windows\System32 أو C:\Windows\System32\DiagSvcs. يتم ذلك عن طريق بدء جلسة تجميع جديدة مع وكيل يحتوي على اسم تجميع يطابق اسم DLL المنسوخ c13851b2-b1e1-438f-bf73-949df897f1bf.1.m.etl.

إثبات المفهوم المرفق هو حل فيجوال ستوديو (VS) يحتوي على مشروع C++ DLL لحمولة فتح notepad.exe ومشروع C# للتفاعل مع الخدمة واستغلال الثغرة باستخدام مكتبة NtApiDotNet.

خطوات إعادة الإنتاج:

  1. بناء حل فيجوال ستوديو
  2. تشغيل SystemCollector.exe كمستخدم عادي

النتيجة المتوقعة:

تقوم عملية تنفيذ الحزمة بمحاكاة المستخدم وتفشل عند محاولة نسخ الملف.

النتيجة الملاحظة:

يتم نسخ الملف إلى مجلد الهدف الخاص بنقطة التثبيت C:\Windows\System32، ثم تحميله كعامل تجميع، وأخيراً، يتم تشغيل notepad.exe بامتيازات SYSTEM.

مراجع إضافية

  • https://www.atredis.com/blog/cve-2018-0952-privilege-escalation-vulnerability-in-windows-standard-collector-service
  • https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2018-0952
  • https://github.com/atredispartners/advisories/blob/master/ATREDIS-2018-0004.md
تنزيل الأداة