السلام عليكم
واهلا بكم في هذه التدوينه سوف اشرح عملية تحليل لملف ورد يحتوي على ماكرو لتنفيذ اوامر على الجهاز والتواصل مع سيرفر c2 للحصول على التعليمات والاوامر لتنقيذها
في البدايه بعد تنزيل الملف استخدمت اداه olevba لاستخراج كود الماكرو

بعد ذلك قمت بنسخ الكود لتحليله
في البداية

تم انشاء متغير اسمه pattern
بعد ذلك استخدام دالة document_open والتي تنفذ الكود بداخلها عند فتح الملف
في داخل الداله document_open تم استدعاء الدالة main و الدالة DialogUserInfo
في داخل الدالة main تم اسناد عدد من العناصر للمتغير pattern وهي تستخدم لعملية deobfuscation كما سنشاهد
ثم تم انشاء متغيرين من نوع string وهما pathSave و myRoutin
تم اسناد الداله Environ للمتغير pathSave حيث ان الدالة Environ تتيح الوصول للمتغيرات في بيئة الوندوز
مثال عندما نريد معرفة المسار الكامل لمجلد appdata نقوم باستخدام الداله Environ(“AppData”)

نجد انه تم استخدام دالة clearText(“Ap6pp6pDa1at0ta1a”)
بداخل دالة environ حيث يتضح ان الدالة clearText تقوم بتنظيف الكود deobfiscate من الشوائب
للتوضح اكثر عن عمل الدالة clearText

كما تلاحظون عملها بسيط تقوم بتجزئة المتغير pattern باستخدام الفاصلة كجزء فاصل بين الاجزاء بعد ذلك تبحث عن هذه الاجزاء في النص المدخل وتقوم بازالته عن طريق تبديله بـ “” ثم تعيد النص بعد التعديل

الان نقدر نفك التشويش من الكود لفهمه اكثر

هنا نلاحظ قبل فك التشويش وبعد فك التشويش

بعد كذا نشوف اللي بعده اللي هو المتغير myRoutin

كما نشاهد تم اسناد دالة modifyText الى المتغير myRoutin حيث ان الداله من نوع string
بعد ذلك تم اجراء عملية ابدال لفك تشويش وترتيب النص واعادته للمتغير myRoutin
في البداية تم استبدال ** بـ vbCrLf والتي تعني نهاية سطر “Visual Basic Carriage Return Line Feed” اي تنهي السطر وتبدا من سطر جديد
ثم يتم استبدال ‘ بـ Chr(34) والتي تعني ” اي استبدل علامه تنصيص واحده بعلامتي تنصيص
واخيرا استبدال “”# بـ ‘
الدالة modifyText تحتوي نص مشوش ويتم فك تشويشه بطريقة الداله clearText و الاستبدال لترتيب النص

لنرى محتوي modifyText قبل عملية الاستبدال وبعد الاستبدال


حيث يقوم بكتابة النص بعد فك التشويش الى ملفين text و vba

الان تم كتابة ملف جديد يحتاج لتحليل

الان نبدا في فك التشويش عن بعض المتغيرات ولتسهيل المهمه سوف نستخددم الدوال المستخدمه مع داله MsgBox لطباعة القيمة بعد فك التشويش

هنا تم استخراج عناوين c2

هنا تم استخراج user-agent



نقوم بعد ذلك باستبدال الكود وتعديل بعض اسماء المتغيرات والدوال لتصبح اكثر وضوح
وهنا النتيجه النهائية

فكره عمل الكود يقوم فالبدايه بتنفيذ الامر whoami ويتم اخذ نتيجة الامر وارسالها في طلب Get الى c2
http://107%5B.%5D174.68%5B.%5D60/getCommand?guid=KK-ak-pcname-ak
طبعا يتم استخدام user-agent خاص في الطلب
ومحتوى الصفحة للرد يكون عبارة عن امر اخر لتنفيذه او empty اي لاتنفذ اي امر

ويشيك السكربت كل فتره على الصفحه للحصول على امر جديد لتنفذه
اذا حصل امر جديد يقوم بتنفيذه وارسال النتيجه في طلب POST

وهنا مؤشرات الاختراق
File_hash: 8e99c479e41e0121e3dc57e2c6156b9b
C2 IPs
192.227.147.152
107.174.68.60
ويمكن البحث في proxy logs عن user-agent
Mozilla/4.0 (compatible; ms-office; MSOffice 16)
واتمنى يكون الشرح واضح ولاي استفسار او سؤال يمكنكم التواصل معي
































