
استغلال إثبات المفهوم لـ CVE-2024-21338، وهي ثغرة تصعيد امتيازات برنامج تشغيل Windows AppLocker (appid.sys) المستخدمة من قبل مجموعة Lazarus كـ 0day. يحقق قراءة/كتابة kernel من خلال طلبات IOCTL مصممة والتلاعب بـ PreviousMode.
هذا هو POC لـ CVE-2024-21338، وهو ثغرة رفع امتياز في برنامج تشغيل Windows AppLocker (appid.sys)، وقد تم استغلالها كـ 0day من قبل مجموعة Lazarus لرفع الامتيازات المحلية في Windows.
CVE-2024-21338 هي ثغرة رفع امتياز تم الكشف عنها في تصحيح الثلاثاء من Microsoft في 13 فبراير 2024، وقد استغلتها مجموعة Lazarus للوصول إلى النواة لنشر برنامج FudModule rootkit.
توجد الثغرة في رمز التحكم 0x22A018 لبرنامج تشغيل appid.sys، حيث يمكن للمهاجم إرسال طلب IOCTL مخصص لاستغلال الثغرة، مما يتيح استدعاء دوال رد اتصال عشوائية، وفي النهاية الحصول على صلاحيات القراءة والكتابة في النواة.

تقع الثغرة في دالة AppHashComputeImageHashInternal لبرنامج تشغيل appid.sys، حيث لم يتحقق AipDeviceIoControlDispatch بشكل صحيح من PreviousMode عند معالجة طلب 0x22A018، مما يسمح لعملية وضع المستخدم بتفعيل دوال رد اتصال في وضع النواة.
الحصول على صلاحية Local Service: تتطلب الثغرة صلاحية Local Service للوصول إلى جهاز \\Device\\AppID، لذلك ستبحث الأداة عن عملية Local Service وتنتحلها.
بناء طلب IOCTL: ستبني الأداة طلب IOCTL مخصصًا يحتوي على مؤشر دالة قابل للتحكم ومعاملات.
تفعيل الثغرة: بإرسال طلب IOCTL، يتم تفعيل الثغرة واستدعاء دالة gadget في النواة لتعديل حقل PreviousMode للخيط الحالي من وضع المستخدم إلى وضع النواة.
الحصول على صلاحيات قراءة/كتابة النواة: بعد تعديل PreviousMode، يمكن لعملية وضع المستخدم استخدام NtReadVirtualMemory وNtWriteVirtualMemory لقراءة وكتابة أي ذاكرة نواة.
يتم ترجمة هذا المشروع باستخدام Visual Studio 2026، ويتطلب Windows SDK ومترجم C++.
قم بتمكين خدمة Application Identity على نظام Windows غير مُصحح (مثل Windows 10 1709).
قم بتشغيل الملف التنفيذي المُترجم بصلاحيات المسؤول.
ستجد الأداة تلقائيًا عملية Local Service وتنتحلها.
ستحمل الأداة برنامج تشغيل appid.sys وتبني طلب IOCTL لتفعيل الثغرة.
بعد نجاح تفعيل الثغرة، ستطلب الأداة إدخال عنوان النواة والقيمة المراد تعديلها لتحقيق تعديل ذاكرة النواة.
هذا المشروع مخصص للأغراض التعليمية والبحثية فقط، ولا يجوز استخدامه لأغراض غير قانونية.
| اسم الملف | الوصف الوظيفي |
|---|
| main.cpp | الدالة الرئيسية، تتحكم في تدفق استغلال الثغرة |
| CVE-2024-21338.h | إعلانات الهياكل والدوال المتعلقة باستغلال الثغرة |
| CVE-2024-21338.cpp | تنفيذ دوال الشروط المسبقة لاستغلال الثغرة |
| export_func.h | إعلانات الدوال المصدرة |
| gadget_search.cpp | تنفيذ البحث عن gadget في النواة |
| Native.h | تعريفات Native API الأصلية |
| PE.h | دوال مساعدة لمعالجة ملفات PE |