ثغرة 0day في نظام ويندوز تسبب مخاطر أمنية في Web3 - تحليل الخبراء لعملية الاستغلال

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

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

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

خلفية الثغرات

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

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

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

تحليل الثغرات

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

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

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

تنفيذ POC

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

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

استغلال الثغرات ( EXP )

الفكرة العامة

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

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

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

نستخدم كائن اسم فئة النافذة WNDClass لاحتلال ذاكرة كائن القائمة المحررة. من خلال تحليل نقاط الكتابة المحتملة المختلفة، تم اختيار استخدام عملية AND على علامة الكائن لكتابة قيمة cb-extra لفئة HWNDClass في دالة xxxRedrawWindow.

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

) تخطيط الذاكرة

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

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

) تنفيذ القراءة والكتابة للغة الأصلية

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

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

ملخص

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

  2. عملية استغلال هذا النوع من الثغرات بسيطة نسبيًا، والصعوبة الرئيسية تكمن في كيفية التحكم في أول كتابة للبيانات.

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

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

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

TOKEN5.32%
شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
  • أعجبني
  • 6
  • مشاركة
تعليق
0/400
DeFiGraylingvip
· منذ 12 س
مايكروسوفت هذه المرة لعبت لعبة كبيرة -_-
شاهد النسخة الأصليةرد0
HackerWhoCaresvip
· منذ 12 س
لا عجب أن حاسوبي بطيء بهذا الشكل!
شاهد النسخة الأصليةرد0
ResearchChadButBrokevip
· منذ 12 س
ميكروسوفت هذه المرة انتهت ها
شاهد النسخة الأصليةرد0
GasWranglervip
· منذ 12 س
تقنيًا، تعتبر هذه العيوب في تخطيط الذاكرة غير مثالية على الإطلاق
شاهد النسخة الأصليةرد0
wagmi_eventuallyvip
· منذ 12 س
يا إلهي، هذا خطر!
شاهد النسخة الأصليةرد0
OneBlockAtATimevip
· منذ 13 س
آيما، يوجد ثغرة جديدة في ويندوز
شاهد النسخة الأصليةرد0
  • تثبيت