تهديد ثغرات نظام ويندوز لأمان الأصول في Web3 قد يؤدي إلى سرقة المفتاح الخاص

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

ثغرات نظام ويندوز من مايكروسوفت قد تؤدي إلى مخاطر أمان Web3

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

لقد كانت استغلال هذه الثغرات مستمرة منذ فترة طويلة. في ظل التحسين المستمر للتدابير الأمنية الجديدة، نأمل في تحليل كيف يمكن للمهاجمين الاستمرار في استغلال هذه الثغرة. تم إكمال عملية التحليل هذه في بيئة Windows Server 2016.

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

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

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

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

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

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

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

عند تطوير استغلال )Exp(، أخذنا في الاعتبار بشكل أساسي خيارين: تنفيذ كود shell واستخدام العمليات الأساسية للقراءة والكتابة لتعديل عنوان token. نظرًا للاعتبارات العملية، اخترنا الخيار الثاني. يمكن تقسيم عملية الاستغلال بالكامل إلى خطوتين: كيفية استغلال ثغرة UAF للتحكم في قيمة cbwndextra، وكيفية تحقيق عمليات قراءة وكتابة مستقرة.

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

لقد قمنا بتصميم تخطيط الذاكرة بعناية، باستخدام كائن اسم النافذة في فئة WNDClass لاحتلال كائن القائمة الذي تم تحريره. من خلال العمليات المحددة في دالة xxxRedrawWindow، حققنا أول عملية كتابة بيانات.

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

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

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

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

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

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

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

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

TOKEN-6.1%
شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
  • أعجبني
  • 8
  • إعادة النشر
  • مشاركة
تعليق
0/400
RunWhenCutvip
· 08-08 14:14
قم بتحديث التصحيح الآن
شاهد النسخة الأصليةرد0
LiquidityWizardvip
· 08-08 03:20
انتظر الموت إذا لم يتم ترقية النظام
شاهد النسخة الأصليةرد0
BlockchainTalkervip
· 08-07 08:27
كن أكثر أمانًا الآن.
شاهد النسخة الأصليةرد0
FlyingLeekvip
· 08-06 06:24
ترقية النظام للحفاظ على الأمان
شاهد النسخة الأصليةرد0
ImpermanentSagevip
· 08-05 14:49
تأكد من التحديث ولا تتكاسل
شاهد النسخة الأصليةرد0
SelfCustodyIssuesvip
· 08-05 14:48
عجل بتحديث النظام
شاهد النسخة الأصليةرد0
TopBuyerBottomSellervip
· 08-05 14:42
قم بالترقية إلى نظام 11 في أقرب وقت ممكن
شاهد النسخة الأصليةرد0
FarmHoppervip
· 08-05 14:36
أرفع النظام يا أخي
شاهد النسخة الأصليةرد0
  • تثبيت