تحليل واستغلال ثغرات 0day في نظام تشغيل ويندوز من مايكروسوفت
مؤخراً، قامت مايكروسوفت بإصلاح ثغرة تصعيد امتيازات نواة ويندوز التي تم استغلالها من قبل القراصنة في البرية في تحديث الأمان. كانت هذه الثغرة موجودة بشكل أساسي في إصدارات ويندوز القديمة، وليس ويندوز 11. ستتناول هذه المقالة كيفية استمرار المهاجمين في استغلال هذه الثغرة في ظل التحسين المستمر لتدابير الأمان الحالية.
خلفية الثغرة
هذه ثغرة 0day على مستوى نظام Windows، يمكن للمهاجمين من خلالها الحصول على السيطرة الكاملة على Windows. تشمل الأضرار الناتجة عن السيطرة تسرب المعلومات الشخصية، وتعطل النظام، وفقدان البيانات، والخسائر المالية، وزرع البرمجيات الضارة، وغيرها. بالنسبة لمستخدمي Web3، قد يتم سرقة المفاتيح الخاصة، مما يعرض الأصول الرقمية لخطر النقل. من منظور أوسع، قد تؤثر هذه الثغرة على نظام Web3 البيئي الذي يعمل على البنية التحتية لـ Web2.
تحليل التصحيح
تحليل كود التصحيح يكشف أن هذه تبدو مشكلة تتعلق بمعالجة عدد الإشارات المرجعية للكائن مرة واحدة أكثر من اللازم. من خلال التعليقات السابقة على الكود المصدر، يمكن فهم أن الكود السابق قام فقط بقفل كائن النافذة، دون قفل كائن القائمة داخل كائن النافذة، مما قد يؤدي إلى الإشارة الخاطئة إلى كائن القائمة.
إعادة إنتاج الثغرات
لقد أنشأنا هيكل قائمة خاص من أربع طبقات لاستغلال الثغرات. تحتاج هذه القوائم إلى تلبية بعض الشروط المحددة لتجاوز كشف الوظائف ذات الصلة. في النهاية، عند العودة إلى طبقة المستخدم، يتم تحرير كائن القائمة المستهدف من خلال حذف العلاقة المرجعية بين القوائم، مما يجعل الإشارة اللاحقة إلى هذا الكائن غير صالحة.
استغلال الثغرات
الفكرة الرئيسية لاستغلال هذه الثغرة هي تعديل عنوان التوكن من خلال قراءة وكتابة التعليمات الأصلية. يمكن تقسيم عملية الاستغلال بأكملها إلى خطوتين رئيسيتين: الأولى هي كيفية استغلال ثغرة الاستخدام بعد التحرير (UAF) للتحكم في قيمة cbwndextra، والثانية هي كيفية إنشاء تعليمات قراءة وكتابة مستقرة بناءً على القيمة المتحكم فيها cbwndextra.
لقد نجحنا في تنفيذ أول عملية كتابة بيانات من خلال تصميم تخطيط الذاكرة بعناية واستخدام العلاقة بين كائنات النوافذ وكائنات HWNDClass. ثم قمنا بتخصيص ثلاثة كائنات HWND بشكل متتابع، ثم قمنا بتحرير الكائن الأوسط لبناء الهيكل المطلوب للذاكرة.
فيما يتعلق بقراءة وكتابة الأصول، نستخدم GetMenuBarInfo() لتحقيق القراءة العشوائية، و نستخدم SetClassLongPtr() لتحقيق الكتابة العشوائية. باستثناء عملية استبدال TOKEN، فإن جميع عمليات الكتابة الأخرى تتم باستخدام كائن الفئة الخاص بأول نافذة من خلال الإزاحة.
ملخص
مايكروسوفت تحاول إعادة هيكلة الشيفرة المتعلقة بـ win32k باستخدام Rust، في المستقبل قد يتم القضاء على مثل هذه الثغرات في النظام الجديد.
عملية استغلال هذه الثغرة بسيطة نسبيًا، والصعوبة الرئيسية تكمن في كيفية التحكم في الكتابة الأولى.
قد يعتمد اكتشاف الثغرات على تحسين الكشف عن تغطية الشيفرة.
بالنسبة لاكتشاف الثغرات، بالإضافة إلى التركيز على نقاط الوظائف الرئيسية، يجب أيضًا إجراء كشف مستهدف على تخطيط الذاكرة غير الطبيعي وعمليات قراءة وكتابة البيانات.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
تسجيلات الإعجاب 11
أعجبني
11
5
مشاركة
تعليق
0/400
BearEatsAll
· منذ 14 س
النظام القديم، لماذا لا يتم تغييره بسرعة؟
شاهد النسخة الأصليةرد0
ZkSnarker
· منذ 14 س
معلومة ممتعة: لا زلت أستخدم ويندوز 7 في الإنتاج بصراحة
شاهد النسخة الأصليةرد0
NightAirdropper
· منذ 14 س
ووه ثور بّي... تحذير من انفجار القرص الصلب
شاهد النسخة الأصليةرد0
ser_we_are_early
· منذ 14 س
win7 صديق还在吗?
شاهد النسخة الأصليةرد0
GasFeeAssassin
· منذ 14 س
استيقظت للتو ولم يتم تحديث تصحيحات أمان النظام أشعر بأمان أكثر
تحليل ثغرات 0day في نواة ويندوز: أمان الأصول في Web3 مهدد
تحليل واستغلال ثغرات 0day في نظام تشغيل ويندوز من مايكروسوفت
مؤخراً، قامت مايكروسوفت بإصلاح ثغرة تصعيد امتيازات نواة ويندوز التي تم استغلالها من قبل القراصنة في البرية في تحديث الأمان. كانت هذه الثغرة موجودة بشكل أساسي في إصدارات ويندوز القديمة، وليس ويندوز 11. ستتناول هذه المقالة كيفية استمرار المهاجمين في استغلال هذه الثغرة في ظل التحسين المستمر لتدابير الأمان الحالية.
خلفية الثغرة
هذه ثغرة 0day على مستوى نظام Windows، يمكن للمهاجمين من خلالها الحصول على السيطرة الكاملة على Windows. تشمل الأضرار الناتجة عن السيطرة تسرب المعلومات الشخصية، وتعطل النظام، وفقدان البيانات، والخسائر المالية، وزرع البرمجيات الضارة، وغيرها. بالنسبة لمستخدمي Web3، قد يتم سرقة المفاتيح الخاصة، مما يعرض الأصول الرقمية لخطر النقل. من منظور أوسع، قد تؤثر هذه الثغرة على نظام Web3 البيئي الذي يعمل على البنية التحتية لـ Web2.
تحليل التصحيح
تحليل كود التصحيح يكشف أن هذه تبدو مشكلة تتعلق بمعالجة عدد الإشارات المرجعية للكائن مرة واحدة أكثر من اللازم. من خلال التعليقات السابقة على الكود المصدر، يمكن فهم أن الكود السابق قام فقط بقفل كائن النافذة، دون قفل كائن القائمة داخل كائن النافذة، مما قد يؤدي إلى الإشارة الخاطئة إلى كائن القائمة.
إعادة إنتاج الثغرات
لقد أنشأنا هيكل قائمة خاص من أربع طبقات لاستغلال الثغرات. تحتاج هذه القوائم إلى تلبية بعض الشروط المحددة لتجاوز كشف الوظائف ذات الصلة. في النهاية، عند العودة إلى طبقة المستخدم، يتم تحرير كائن القائمة المستهدف من خلال حذف العلاقة المرجعية بين القوائم، مما يجعل الإشارة اللاحقة إلى هذا الكائن غير صالحة.
استغلال الثغرات
الفكرة الرئيسية لاستغلال هذه الثغرة هي تعديل عنوان التوكن من خلال قراءة وكتابة التعليمات الأصلية. يمكن تقسيم عملية الاستغلال بأكملها إلى خطوتين رئيسيتين: الأولى هي كيفية استغلال ثغرة الاستخدام بعد التحرير (UAF) للتحكم في قيمة cbwndextra، والثانية هي كيفية إنشاء تعليمات قراءة وكتابة مستقرة بناءً على القيمة المتحكم فيها cbwndextra.
لقد نجحنا في تنفيذ أول عملية كتابة بيانات من خلال تصميم تخطيط الذاكرة بعناية واستخدام العلاقة بين كائنات النوافذ وكائنات HWNDClass. ثم قمنا بتخصيص ثلاثة كائنات HWND بشكل متتابع، ثم قمنا بتحرير الكائن الأوسط لبناء الهيكل المطلوب للذاكرة.
فيما يتعلق بقراءة وكتابة الأصول، نستخدم GetMenuBarInfo() لتحقيق القراءة العشوائية، و نستخدم SetClassLongPtr() لتحقيق الكتابة العشوائية. باستثناء عملية استبدال TOKEN، فإن جميع عمليات الكتابة الأخرى تتم باستخدام كائن الفئة الخاص بأول نافذة من خلال الإزاحة.
ملخص
مايكروسوفت تحاول إعادة هيكلة الشيفرة المتعلقة بـ win32k باستخدام Rust، في المستقبل قد يتم القضاء على مثل هذه الثغرات في النظام الجديد.
عملية استغلال هذه الثغرة بسيطة نسبيًا، والصعوبة الرئيسية تكمن في كيفية التحكم في الكتابة الأولى.
قد يعتمد اكتشاف الثغرات على تحسين الكشف عن تغطية الشيفرة.
بالنسبة لاكتشاف الثغرات، بالإضافة إلى التركيز على نقاط الوظائف الرئيسية، يجب أيضًا إجراء كشف مستهدف على تخطيط الذاكرة غير الطبيعي وعمليات قراءة وكتابة البيانات.