مختبر تحليل البرمجيات الخبيثة في Office — التحليل الساكن باستخدام REMnux
تحليل ساكن لملفَّي Office خبيثَين، تم بالكامل داخل جهاز REMnux افتراضي معزول. لم يُنفَّذ أي شيء على الإطلاق — كان مجرد فحص.
الإعداد
- جهاز REMnux افتراضي، دون مجلدات مشتركة مع المضيف
- الأدوات: sha256sum، file، unzip، ومجموعة oletools (oleid، olevba، oledump، mraptor)
- تم سحب كلتا العينتين من MalwareBazaar (abuse.ch)
العينة 1: مستند Word خبيث (.docx)
SHA-256: 68e82279bff55cf3b9f1f22ec4a165b1b1245a359f7e8d86664b2541d8f8d3fe
ما وجدته:
- كان ملف داخل مستند docx (
nste.xml) في الحقيقة بيانات Rich Text Format تتنكّر في هيئة XML — وهذا عدم تطابق يُعدّ بحد ذاته علامة تحذيرية
- كان أحد الكائنات المضمّنة ملفًا تنفيذيًا VBS بحجم 196 كيلوبايت (
419876.vbs)
- تطابق كائن مضمّن آخر مع CVE-2017-11882 — وهو استغلال معروف لـ Equation Editor يعمل بمجرد فتح الملف، دون الحاجة إلى وحدات ماكرو
الحكم: خبيث. هذا مستند حقيقي مسلَّح يستخدم ثغرة تنفيذ تعليمات عن بُعد (RCE) معروفة لإسقاط ملف تنفيذي.
العينة 2: ملف Excel خبيث (.xlsx)
SHA-256: dc65419ba5d83b980d7018198a14209fa2f5ebf6f99d47bfe9f586852087befe
ما وجدته:
- كان الملف مشفّرًا (محميًا بكلمة مرور)، وهو ما يخفي عادةً محتوى وحدات الماكرو عن فاحصي مكافحة الفيروسات
- كان يحتوي على 4 وحدات VBA، لكن الأربع جميعها جاءت فارغة — أعاد
mraptor نتيجة "Macro OK" دون أي علامات AutoExec/Write/Execute
- كانت إحدى أوراق العمل مخفية
- كانت هناك سلاسل مُرمّزة بالنظام السادس عشري موجودة في تدفق ماكرو XLM من الطراز القديم، منفصلة عن طبقة VBA
- لم يكشف فك ترميز تلك السلاسل عن أي shellcode أو رابط تنزيل — فقط بعض معرّفات مكتبات الأنواع
الحكم: مشبوه، لكنه غير حاسم. التشفير، والورقة المخفية، والسلاسل المُبهمة تبدو جميعها تكتيكات تهرب، لكنني لم أتمكن من تأكيد وجود حمولة فعلية نشطة في طبقة VBA. قد تكون الحمولة الحقيقية موجودة في طبقة ماكرو XLM القديمة (والتي لم أعكسها بالكامل)، أو قد تكون هذه عينة غير مكتملة/تمهيدية.
الخطوات التي اتبعتها
- حساب تجزئة (SHA-256) لكل ملف من أجل سلسلة الحفظ
- التحقق من نوع الملف الحقيقي باستخدام
file، ومقارنته بالامتداد
- تشغيل
oleid للحصول على قراءة سريعة للتشفير/وحدات الماكرو/الروابط الخارجية
- تشغيل
oledump لسرد كل كائن مضمّن
- تشغيل
olevba لاستخراج أي شيفرة VBA وفك ترميزها
- تشغيل
mraptor للتحقق من سلوك الماكرو ذاتي التشغيل
ما يوضحه هذا
- كيفية اكتشاف عدم تطابق نوع الملف المستخدم للتهرب من الكشف
- كيفية عمل CVE-2017-11882 دون الحاجة إلى وحدات ماكرو على الإطلاق
- كيفية التحقق فعليًا من سلوك الماكرو بدلًا من افتراضه من مؤشرات سطحية
- لماذا لا يعني التشفير + الأوراق المخفية + السلاسل المُبهمة تلقائيًا "خبيث مؤكد" — ففي بعض الأحيان تكون الأدلة غير حاسمة، ويستحق ذلك أن يُقال بصراحة
المصادر
المؤلف
Mofolorunsho Adeleke
GitHub: https://github.com/Mo200909