CVE-2023-38831 - WinRAR
يحتوي هذا المستودع على منطق كشف لثغرة CVE-2023-38831 (استغلال انتحال ملفات ZIP في WinRAR / الامتداد المزدوج) مع استعلامات خام / كتل برمجية وأسماء مزودي ETW المحددة + معرفات الأحداث. إصدار ضعيف من WinRAR (< 6.23) على النظام المستهدف
يُستغل CVE-2023-38831 عندما:
يفتح المستخدم ملف ZIP خبيث في WinRAR
يحتوي الأرشيف على:
● ملف تضليلي (مثلًا invoice.pdf )
● مجلد بنفس الاسم (مثلًا invoice.pdf )
● داخل المجلد "ملفان" بنفس الاسم لكن بأسماء مختلفة قليلًا (أحدهما يبدأ بمسافة وينتهي بأي امتداد؛ مثلًا إذا كان الملف الأول هو "invoice.pdf " فقد يكون الثاني أي سكربت أو ملف قابل للتنفيذ مثل "invoice.pdf .cmd")
ينفذ WinRAR السكربت أو الملف القابل للتنفيذ بدلاً من فتح المستند (ملف "PDF" في هذه الحالة)
يتم تشغيل هذا التنفيذ عبر استدعاء الدالة ShellExecuteExW لتنفيذ الملف، مع تمرير shExecInfo (ShellExecute عبر Explorer)
يُنشئ WinRAR عملية فرعية (cmd, powershell, mshta, wscript, exe وفقًا لما هو موجود داخل المجلد)
يحدث التنفيذ غالبًا من Temp / AppData / مسار الاستخراج
ملخص التدفق يفتح المستخدم الأرشيف
↓
يعرض WinRAR الملف التضليلي
↓
ينقر المستخدم نقرًا مزدوجًا على المستند
↓
يستخرج WinRAR المجلد الذي بنفس الاسم
↓
تتم كتابة الملف القابل للتنفيذ إلى *.pdf\*.pdf .exe
↓
ShellExecute عبر Explorer
↓
ImageLoad للملف القابل للتنفيذ
↓
تنفيذ الحمولة
لماذا هذا التدفق مهم للكشف
● لا استخدام لوحدات الماكرو
● لا اعتماد على إنشاء العمليات
● يعتمد الاستغلال على التمويه في نظام الملفات
● إشارة عالية الثقة ومنخفضة الضوضاء
تفاصيل تقنية مهمة
تُكتب الملفات ببنية خاصة
مثل وجود كائنين (ملف/مجلد) بنفس الاسم، وعندما يكون لديك ملف ومجلد بنفس الاسم في ملف أرشيف وتريد فتح الملف مؤقتًا، بالنقر المزدوج عليه (الملف المستهدف) داخل ملف الأرشيف المفتوح، يستخرج لك WinRAR هذا الملف، ويستخرج أيضًا جميع الملفات التي تحمل نفس اسم الملف المستهدف. تُكتب جميعها في مجلد مؤقت في مسار %tmp%.
| اسم الملف/المجلد | مسار الاستخراج |
| ------------------------------------------------------ | --------------------------------------------------------------------------------- |
| CLASSIFIED_DOCUMENTS.txt <– الملف المستهدف الذي تم النقر عليه | `C:\Users\UsersName\AppData\Loca\Temp\Rar$DIa8432.13968\CLASSIFIED_DOCUMENTS.txt\`|
| CLASSIFIED_DOCUMENTS.txt .cmd <– الملف الموجود في المجلد | `C:\Users\UsersName\AppData\Loca\Temp\Rar$DIa8432.13968\CLASSIFIED_DOCUMENTS.txt\`|
إذا وُجد ملفان في مجلد مؤقت (فك الضغط) بنفس الاسم لكن بحجمين مختلفين (مثلًا 20k و12k)، وفتحت الأرشيف وفتحت الملف الأول، 1.txt، الذي يبلغ حجمه 20 كيلوبايت، سيطلب منك WinRAR استبدال الملف بالملف الثاني، 1.txt، الذي يبلغ حجمه 10 كيلوبايت. إذا نقرت "Yes"، سيُفتح الملف الثاني فقط، 1.txt. يمكن إضافة هذا الشرط كاستثناء.
نقطة مهمة لمنطق الكشف
تنفيذ عملية يتم تشغيله من مسار استخراج ZIP أو مجلد مؤقت، مع امتداد مضلل أو مجلد يتنكر كملف
عندما يُفرج WinRAR عن ملف لفك الضغط في المجلد المؤقت، يجب أن يحتوي على ملفين بنفس الاسم لكن بأسماء مختلفة قليلًا (مسافة ثم ينتهي بأي امتداد)، مثل اسم الملف الرئيسي مع مسافة " " (CLASSIFIED_DOCUMENTS.pdf ) في نهاية الاسم ثم ".cmd" (CLASSIFIED_DOCUMENTS.pdf .cmd).
عندما يُحمّل WinRAR ملف DLL ويستدعي الدالة ShellExecuteExA، تحتوي المعلمة "pExecInfo" على مسار به مسافة وينتهي بأي امتداد، مثل "CLASSIFIED_DOCUMENTS.pdf .cmd."
مزودو ETW وفلسفة الكشف (ETW فقط) مزودو ETW
| الغرض | مزود ETW |
| -------------------------- | ------------------------------------- |
| إنشاء العمليات | `Microsoft-Windows-Kernel-Process` |
| رؤية سطر الأوامر | `Microsoft-Windows-Security-Auditing` |
| عمليات الملفات (اختياري) | `Microsoft-Windows-Kernel-File` |
سيعتمد الكشف على (إذا لم تتوفر أي من ProcessStart أو CreateProcess أو منطق EDR القائم على العلاقة بين العملية الأم/الفرعية):
● ETW لنظام الملفات
● ETW للغلاف / Explorer
● ETW لتحميل الصور (اختياري، غير مرتبط بالإنشاء)
● ETW لسطر الأوامر (اختياري)
مزودو ETW الأساسيون
| الغرض | مزود ETW |
| -------------------------- | ------------------------------------- |
| إنشاء المجلدات | `Microsoft-Windows-Kernel-File` |
| إنشاء ملفات EXE | `Microsoft-Windows-Kernel-File` |
| تنفيذ الغلاف | `Microsoft.Windows.ShellExecute` |
| تحميل الصور | `Microsoft-Windows-Kernel-Image` |
| Explorer | `Microsoft-Windows-Explorer` |
| الغلاف | `Microsoft-Windows-Shell-Core` |
منطق الكشف الخام
على مستوى عالٍ، يكتشف المنطق:
● قيام WinRAR.exe ببدء عمليات كتابة الملفات
● إنشاء مجلد وملف معًا بنفس الاسم الأساسي
● ظهور امتداد قابل للتنفيذ بعد إعادة التسمية أو الاستبدال
● حدوث التسلسل ضمن نافذة زمنية ضيقة (<2 ثانية)
هذا النمط نادر للغاية في مسارات العمل المشروعة لكنه أساسي في مسار تنفيذ الاستغلال.
● تتجنب القاعدة عمدًا:
● فحص سطر الأوامر
● تتبع العمليات الفرعية
● التجزئة الكاملة للملفات
يُذكر منطق الكشف الأساسي أدناه، مع مستوى الثقة ومبرر موجز.