تحليل ثغرات يوم الصفر في ويندوز: قد يتأثر نظام Web3 بشكل كبير

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

تحليل ثغرات يوم الصفر في نظام ويندوز من مايكروسوفت: قد تؤدي إلى تأثيرات كبيرة على نظام Web3 البيئي

في تحديث الأمان الذي أصدرته مايكروسوفت الشهر الماضي، تم إصلاح ثغرة تصعيد الامتياز في نواة Windows التي كانت تُستغل بشكل ضار. تؤثر هذه الثغرة بشكل رئيسي على الإصدارات القديمة من نظام Windows، بينما يبدو أن Windows 11 غير متأثر. ستقوم هذه المقالة بتحليل كيف يمكن للمهاجمين الاستمرار في استغلال مثل هذه الثغرات في ظل تعزيز تدابير الأمان الحالية.

لقد أكملنا جميع أعمال التحليل في بيئة Windows Server 2016.

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

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

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

تحليل الباتش

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

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

إثبات مفهوم استغلال الثغرات ( PoC ) التنفيذ

من خلال تحليل سياق دالة الثغرات، نجد أن القائمة التي يتم تمريرها xxxEnableMenuItem() عادة ما تكون مغلقة بالفعل في الدالة العليا، فما هو كائن القائمة الذي يجب حمايته هنا؟

عند تحليل عملية معالجة كائن القائمة في xxxEnableMenuItem بشكل أعمق، نجد أن الدالة MenuItemState ترجع قائمتين محتملتين: القائمة الرئيسية لنافذة ما، أو القائمة الفرعية لها ( حتى القائمة الفرعية للقائمة ).

في PoC، قمنا ببناء هيكل قائمة خاص مكون من أربعة طبقات، حيث توجد علاقة أبوية بين القوائم المجاورة. تحتوي هذه القوائم على بعض الميزات المحددة، للتأكد من خلال الكشف والتقييم في دالة xxxEnableMenuItem.

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

Numen الحصرية: ثغرة 0day من مايكروسوفت يمكنها إزالة نظام + الطبقة الفيزيائية من لعبة Web3

استغلال الثغرة ( استغلال ) التنفيذ

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

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

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

لقد قمنا بتقسيم عملية الاستفادة بأكملها إلى مشكلتين: كيفية استغلال ثغرة UAF للتحكم في قيمة cbwndextra، وكيفية تحقيق عمليات القراءة والكتابة المستقرة بعد التحكم في قيمة cbwndextra.

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

في النهاية، اخترنا كتابة cb-extra لـ HWNDClass من خلال عملية AND 2 للراية في دالة xxxRedrawWindow. وذلك لأن انزياح cb-extra لـ HWNDClass صغير، يمكننا التحكم في بيانات الذاكرة للكائن السابق من خلال تخطيط الذاكرة، وبالتالي من خلال التحقق من علامات الكائن في دالة xxxRedrawWindow.

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

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

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

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

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

ملخص

  1. حالة win32k: تحاول مايكروسوفت إعادة بناء كود النواة ذي الصلة في إصدار المعاينة من ويندوز 11 باستخدام 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.54%
شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
  • أعجبني
  • 2
  • مشاركة
تعليق
0/400
AltcoinHuntervip
· منذ 19 س
انظر ولا تتحدث عن ذلك، لقد أصبحت حمقى في عالم العملات الرقمية
شاهد النسخة الأصليةرد0
MelonFieldvip
· منذ 19 س
النظام أصبح به مشكلة~
شاهد النسخة الأصليةرد0
  • تثبيت