
قراءة/كتابة عشوائية في النواة في dbutil_2_3.sys، إثبات مفهوم لتصعيد الصلاحيات المحلية إلى nt authority/system
إثبات المفهوم البسيط لاستغلال CVE-2021-21551 لرفع الامتيازات المحلية (LPE) عن طريق تشغيل cmd النظام.
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-21551
تم اكتشاف مشكلة في برنامج تشغيل Windows الموقع من Dell (dbutil_2_3.sys) قد تؤدي إلى اختراق النظام المحلي بالكامل. تفتقر روتين إرسال ioctl لبرنامج التشغيل إلى التحقق من صحة المخزن المؤقت المقدم من المستخدم.
يمكن لأي شخص إنشاء مقبض وإصدار طلبات ioctl إلى رموز ioctl هذه التي تخترق نموذج أمان Windows:
يستغل إثبات المفهوم هذا رموز ioctl 0x9b0c1ec4 / 0x9b0c1ec8 للقراءة/الكتابة العشوائية لذاكرة النواة على التوالي. أولاً، يحدد موقع PsInitialSystemProcess في النواة للحصول على رمز النظام، ثم يكتب هذا الرمز إلى بنية EPROCESS للعملية الحالية. قبل التجميع، قم بتحديث إزاحات EPROCESS الخاصة بك لتجنب شاشة الموت الزرقاء (BSOD) باستخدام https://www.vergiliusproject.com/
DWORD EPROCESS_ActiveProcessLinks = 0x2e8;
DWORD EPROCESS_Token = 0x348;
استخدم Visual Studio للتجميع (يتطلب رأس Windows). رأس Ntdll SDK: https://github.com/mathisvickie/segy-software/blob/main/external/ntdll.h
تم الاختبار على:
سيؤدي الاستغلال الناجح إلى تشغيل cmd النظام. إذا حصلت على خطأ PAGE_FAULT_IN_NONPAGED_AREA، فمن المحتمل أن تكون الإزاحات غير صحيحة. مثال على المخرجات:
