تحليل ثغرة 0day في إصدارات ويندوز المبكرة من مايكروسوفت: من رفع الامتيازات إلى استخدام الثغرة بالكامل

robot
إنشاء الملخص قيد التقدم

تحليل واستغلال ثغرة 0day في نظام ويندوز من مايكروسوفت

في الآونة الأخيرة، أصدرت مايكروسوفت تصحيحًا أمنيًا يعالج ثغرة تصعيد الامتياز في win32k التي يتم استغلالها حاليًا. هذه الثغرة موجودة فقط في إصدارات أنظمة ويندوز السابقة، ولا يمكن تفعيلها على ويندوز 11. ستقوم هذه المقالة بتحليل كيفية استمرار المهاجمين في استغلال مثل هذه الثغرات في ظل تحسينات الحماية الأمنية الحالية.

Numen حصرية: ثغرة 0day من مايكروسوفت يمكن أن تكشف عن نظام + مستوى الفيزيائي في لعبة Web3

خلفية الثغرة

ثغرة 0day تشير إلى ثغرات أمنية لم يتم الكشف عنها بعد ولم يتم إصلاحها، مشابهة لمفهوم تداول T+0 في الأسواق المالية. بمجرد اكتشاف مثل هذه الثغرات، قد يتم استغلالها بشكل خبيث دون أن يتم ملاحظتها، مما يسبب أضرارًا كبيرة.

يمكن أن يسمح الثغرة الأمنية المكتشفة في نظام Windows 0day للمهاجمين بالحصول على السيطرة الكاملة على النظام. قد يؤدي ذلك إلى تسريب المعلومات الشخصية، انهيار النظام، فقدان البيانات، وأضرار مالية خطيرة. من منظور Web3، قد يؤدي ذلك إلى سرقة المفاتيح الخاصة، نقل الأصول الرقمية، وقد يؤثر حتى على النظام البيئي لـ Web3 القائم على بنية Web2.

Numen حصرية: ثغرة 0day من مايكروسوفت يمكنها أن تزعزع نظام Web3 على المستوى النظامي والفيزيائي

تحليل التصحيح

تحليل كود التصحيح يكشف أن المشكلة تكمن في معالجة عدد مرات الإشارة إلى الكائن. من خلال مراجعة تعليقات الشيفرة المصدرية السابقة، يتضح أن الكود السابق قام فقط بقفل كائن النافذة، ولم يقفل كائن القائمة في النافذة، مما قد يؤدي إلى إشارة خاطئة إلى كائن القائمة.

Numen حصري: ثغرة 0day من مايكروسوفت يمكن أن تكشف عن نظام + المستوى الفيزيائي في لعبة Web3

استنساخ الثغرات

من خلال تحليل سياق دالة الثغرة، تم اكتشاف أن القائمة التي يتم تمريرها إلى xxxEnableMenuItem() غالبًا ما تكون مقفلة في الدالة العليا. وبالإضافة إلى ذلك، تم اكتشاف أن القائمة التي تعيدها دالة MenuItemState قد تكون القائمة الرئيسية لنافذة، أو قد تكون قائمة فرعية أو قائمة فرعية فرعية.

لتفعيل الثغرة، تم بناء هيكل قائمة خاص من أربعة مستويات، وتم تعيين الميزات التالية:

  1. يجب أن تكون معرف القائمة الأساسية D من نوع قائمة النظام
  2. يجب أن تكون القائمة العليا A أيضًا قائمة النظام، ولكن يجب حذف نوع القائمة النظام المقابل.
  3. حذف الإشارة إلى القائمة C في القائمة B
  4. يبدو أن وجود القائمة B يساعد في إطلاق القائمة C

عند عودة xxxRedrawTitle إلى طبقة المستخدم، قم بإزالة علاقة الإشارة بين القائمة C و B وتحرير القائمة C. بهذه الطريقة، عند العودة إلى نقطة وظيفة xxxEnableMenuItem، سيكون كائن القائمة C المشار إليه قد أصبح غير صالح.

Numen حصرية: ثغرة 0day من مايكروسوفت يمكن أن تكشف عن نظام + المستوى الفيزيائي للعبة Web3

استغلال الثغرات

استغلال الثغرات يأخذ في الاعتبار اتجاهين رئيسيين:

  1. تنفيذ كود shellcode: المرجع إلى ثغرات سابقة مثل CVE-2017-0263، ولكن قد تواجه مشكلات في نقاط الدخول وآليات الأمان مثل SMEP في إصدارات Windows الأحدث.

  2. استخدام عمليات القراءة والكتابة لتعديل عنوان التوكن: في السنوات الأخيرة، هناك العديد من التجارب العامة التي يمكن الرجوع إليها، والتي تتمتع بعمومية في تخطيط ذاكرة كومة سطح المكتب وعمليات القراءة والكتابة. المفتاح هو تحليل كيفية التحكم في cbwndextra لأول مرة كقيمة كبيرة عند إعادة استخدام الذاكرة في UAF.

تم استخدام الخطة الثانية في هذه المرة، حيث تم تقسيم العملية بأكملها إلى خطوتين:

  1. استغلال ثغرة UAF للتحكم في قيمة cbwndextra
  2. التحكم في cbwndextra لتحقيق عمليات قراءة وكتابة مستقرة

![Numen حصري: ثغرة 0day من مايكروسوفت يمكن أن تكشف عن نظام + المستوى الفيزيائي في لعبة Web3](https://img-cdn.gateio.im/webp-social/moments-1cc94ddafacec491507491eef9195858.webp01

) أول كتابة بيانات

بعد حدوث الثغرة، قد يستخدم النظام بيانات كائن النافذة المتحكم بها بشكل خاطئ في MNGetPopupFromMenu###( وxxxMNUpdateShownMenu)(. نحن نستخدم كائن اسم النافذة في فئة النافذة WNDClass للاحتلال والإفراج عن كائن القائمة.

المفتاح هو العثور على موقع يمكننا من كتابة البيانات فيه داخل هيكل عنوان يمكننا بناؤه، حتى لو كان بايتًا واحدًا فقط. تم اختيار الحل الموجود في دالة xxxRedrawWindow، من خلال التحكم في بيانات ذاكرة الكائن السابق عبر الذاكرة لتحديد كائن الدالة.

) تخطيط ذاكرة مستقر

تصميم ثلاثة كائنات HWND بحد أدنى من 0x250 بايت متتالية، تحرير الكائن الأوسط واستخدام كائن HWNDClass. يتم استخدام بيانات ذيل الكائن HWND السابق للتحقق من العلامات في xxxRedrawWindow، بينما يتم استخدام كائن قائمة الكائن HWND الأخير وكائن HWNDClass كوسيط لقراءة وكتابة النهاية.

من خلال عنوان مقبض النواة المسرب في الذاكرة، يمكن تحديد بدقة ما إذا كانت كائنات النوافذ المطلوبة مرتبة بالترتيب المتوقع.

قراءة وكتابة الأصلي

استخدم GetMenuBarInfo###( لقراءة الأصلي بشكل عشوائي، واستخدم SetClassLongPtr)( للكتابة بشكل عشوائي. باستثناء كتابة TOKEN، يتم استخدام الكائن class الخاص بأول كائن نافذة للكتابة باستخدام الإزاحة.

![Numen الحصرية: ثغرة 0day من مايكروسوفت يمكن أن تزعزع نظام + الطبقة الفيزيائية لعبة Web3])https://img-cdn.gateio.im/webp-social/moments-697c5814db02534f63b44c0d1d692f83.webp(

ملخص

  1. ثغرة win32k لها تاريخ طويل، لكن مايكروسوفت تحاول إعادة بناء الكود ذي الصلة باستخدام Rust، وقد يتم القضاء على مثل هذه الثغرات في الأنظمة الجديدة في المستقبل.

  2. إن عملية استغلال هذه الثغرة بسيطة نسبياً، لكن الصعوبة الرئيسية تكمن في كيفية التحكم في الكتابة الأولى. تعتمد بشكل كبير على تسرب عنوان مقبض كومة سطح المكتب، وهذا لا يزال يمثل خطرًا أمنيًا على الأنظمة القديمة.

  3. قد يكون اكتشاف هذه الثغرة نتيجة لتحسين الكشف عن تغطية الشيفرة.

  4. بالنسبة لكشف استغلال الثغرات، بالإضافة إلى التركيز على نقاط الوظائف الرئيسية، ينبغي أيضًا الانتباه إلى تخطيط الذاكرة غير الطبيعي وإزاحة قراءة وكتابة بيانات النوافذ.

![Numen حصرية: ثغرة 0day من مايكروسوفت يمكن أن تكشف عن نظام + مستوى مادي للعب Web3])https://img-cdn.gateio.im/webp-social/moments-b0942592135ac96c6279544a62022329.webp(

![Numen حصرية: ثغرة 0day من مايكروسوفت يمكن أن تكشف عن نظام + المستوى الفيزيائي في لعبة Web3])https://img-cdn.gateio.im/webp-social/moments-b06b098af4f07260fdc03a75da160706.webp(

TOKEN2.22%
شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
  • أعجبني
  • 5
  • مشاركة
تعليق
0/400
FarmToRichesvip
· منذ 8 س
لحسن الحظ 11 لم يتأثر
شاهد النسخة الأصليةرد0
ChainSauceMastervip
· 08-05 20:25
ماذا حدث لـ老win مرة أخرى؟ هناك ثغرات كل يوم.
شاهد النسخة الأصليةرد0
FloorPriceWatchervip
· 08-05 20:23
نجا وين 11 من مصيبة
شاهد النسخة الأصليةرد0
MEVSandwichVictimvip
· 08-05 20:21
ثغرات كثيرة في السوق، من يتداول يخدع الناس لتحقيق الربح
شاهد النسخة الأصليةرد0
CryptoCrazyGFvip
· 08-05 20:13
11 لم يعد لذيذاً؟
شاهد النسخة الأصليةرد0
  • تثبيت