
مساعد متعدد المنصات لإنشاء مستندات Microsoft Office ضارة. يمكنها إخفاء وحدات ماكرو VBA، والكتابة فوق كود VBA (عبر P-Code) وإرباك أدوات تحليل الماكرو. يعمل على Linux وOSX وWindows.
تم إصدار هذه الأداة خلال محاضرتنا في BlackHat Asia (28 مارس 2019). يتوفر تسجيل فيديو لهذه المحاضرة على https://www.youtube.com/watch?v=9ULzZA70Dzg.
مساعد عبر المنصات لإنشاء مستندات MS Office ضارة. يمكنه إخفاء وحدات ماكرو VBA، وتدمير كود VBA (عبر P-Code) وإرباك أدوات تحليل الماكرو. يعمل على أنظمة Linux و OSX و Windows.
إذا كنت جديدًا في هذه الأداة، فقد ترغب في البدء بقراءة مقالنا على المدونة حول Evil Clippy: https://outflank.nl/blog/2019/05/05/evil-clippy-ms-office-maldoc-assistant/
يجب استخدام هذا المشروع فقط لأغراض الاختبار المصرح بها أو للأغراض التعليمية.
إذا لم تكن لديك أي فكرة عن كل هذا، فاطلع على الموارد التالية أولاً:
في وقت كتابة هذا التقرير، هذه الأداة قادرة على جعل ماكرو Cobalt Strike الافتراضي يتجاوز معظم منتجات مكافحة الفيروسات الرئيسية وأدوات تحليل المستندات الضارة المختلفة (باستخدام تدمير VBA مع أسماء وحدات عشوائية).
يستخدم Evil Clippy مكتبة OpenMCDF لمعالجة ملفات MS Office بتنسيق Compound File Binary Format (CFBF)، ومن خلالها يساء استخدام مواصفات MS-OVBA وميزاتها. يعيد استخدام كود من Kavod.VBA.Compression لتنفيذ خوارزمية الضغط المستخدمة في تدفقات dir و module (انظر MS-OVBA للمواصفات ذات الصلة).
يتم تجميع Evil Clippy بشكل مثالي مع مترجم Mono C# وتم اختباره على Linux و OSX و Windows.
نحن لا نقدم إصدارًا ثنائيًا لـ EvilClippy. يرجى تجميع الملفات التنفيذية بنفسك:
OSX و Linux
تأكد من تثبيت Mono. ثم قم بتنفيذ الأمر التالي من سطر الأوامر:
mcs /reference:OpenMcdf.dll,System.IO.Compression.FileSystem.dll /out:EvilClippy.exe *.cs
الآن قم بتشغيل Evil Clippy من سطر الأوامر:
mono EvilClippy.exe -h
Windows
تأكد من تثبيت Visual Studio. ثم قم بتنفيذ الأمر التالي من موجه أوامر مطور Visual Studio:
csc /reference:OpenMcdf.dll,System.IO.Compression.FileSystem.dll /out:EvilClippy.exe *.cs
الآن قم بتشغيل Evil Clippy من سطر الأوامر:
EvilClippy.exe -h
طباعة المساعدة
EvilClippy.exe -h
إخفاء/إظهار وحدات الماكرو من واجهة المستخدم الرسومية
إخفاء جميع وحدات الماكرو (باستثناء الوحدة الافتراضية "ThisDocument") من محرر VBA GUI. يتم تحقيق ذلك عن طريق إزالة سطور الوحدة من تدفق المشروع [MS-OVBA 2.3.1].
EvilClippy.exe -g macrofile.doc
التراجع عن التغييرات التي تم إجراؤها بواسطة خيار الإخفاء (-g) حتى نتمكن من تصحيح الماكرو في بيئة VBA IDE.
EvilClippy.exe -gg macrofile.doc
تدمير VBA (إساءة استخدام P-code)
وضع كود VBA مزيف من ملف نصي fakecode.vba في جميع الوحدات، مع ترك P-code سليمًا. هذا يساء استخدام ميزة غير موثقة في تدفقات الوحدة [MS-OVBA 2.3.4.3]. لاحظ أن إصدار مشروع VBA يجب أن يتطابق مع البرنامج المضيف حتى يتم تنفيذ P-code (انظر المثال التالي لمطابقة الإصدار).
EvilClippy.exe -s fakecode.vba macrofile.doc
ملاحظة: تدمير VBA لا يعمل مع الملفات المحفوظة بتنسيق Excel 97-2003 Workbook (.xls)
تعيين إصدار Office الهدف لتدمير VBA
نفس ما سبق، ولكن الآن استهداف Word 2016 على x86 بشكل صريح. هذا يعني أن Word 2016 على x86 سينفذ P-code، بينما الإصدارات الأخرى من Word ستنفذ الكود من fakecode.vba بدلاً من ذلك. يتم تحقيقه عن طريق تعيين بايتات الإصدار المناسبة في تدفق _VBA_PROJECT [MS-OVBA 2.3.4.1].
EvilClippy.exe -s fakecode.vba -t 2016x86 macrofile.doc
تعيين/إعادة تعيين أسماء وحدات عشوائية (خداع أدوات المحللين)
تعيين أسماء وحدات ASCII عشوائية في تدفق dir [MS-OVBA 2.3.4.2]. هذا يساء استخدام الغموض في سجلات MODULESTREAMNAME [MS-OVBA 2.3.4.2.3.2.3] - تستخدم معظم أدوات المحللين أسماء وحدات ASCII المحددة هنا، بينما يستخدم MS Office المتغير Unicode. من خلال تعيين اسم وحدة ASCII عشوائي، تتعطل معظم أدوات تحليل P-code و VBA، بينما لا يزال P-code و VBA الفعليان يعملان بشكل طبيعي في Word و Excel.
EvilClippy.exe -r macrofile.doc
ملاحظة: من المعروف أن هذا فعال في خداع pcodedmp و VirusTotal
تعيين أسماء وحدات ASCII في تدفق dir لمطابقة نظيراتها Unicode. هذا يعكس التغييرات التي تم إجراؤها باستخدام الخيار (-r) من Evil Clippy
EvilClippy.exe -rr macrofile.doc
تقديم قالب VBA مدمر عبر HTTP
تقديم macrofile.dot عبر منفذ HTTP 8080 بعد إجراء تدمير VBA. إذا تم استرداد هذا الملف، فإنه يطابق تلقائيًا إصدار Office للهدف (باستخدام رؤوس HTTP الخاصة به ثم تعيين بايتات _VBA_PROJECT وفقًا لذلك).
EvilClippy.exe -s fakecode.vba -w 8080 macrofile.dot
ملاحظة: يجب أن يكون الملف الذي تقدمه قالبًا (.dot بدلاً من .doc). يمكنك تعيين قالب عبر عنوان URL (امتداد .dot غير مطلوب!) من شريط أدوات المطور في Word. أيضًا، يجب أن يحتوي fakecode.vba على سمة VB_Base مضبوطة لوحدة ماكرو من قالب (هذا يعني أن fakecode.vba الخاص بك يجب أن يبدأ بسطر مثل Attribute VB_Base = "0{00020906-0000-0000-C000-000000000046}").
تعيين/إزالة حماية قفل المشروع VBA (غير قابل للعرض)
لتعيين سمات القفل/غير القابل للعرض، استخدم الخيار '-u':
EvilClippy.exe -u macrofile.doc
لإزالة سمات القفل/غير القابل للعرض، استخدم الخيار '-uu':
EvilClippy.exe -uu macrofile.doc
ملاحظة: يمكنك إزالة سمات القفل/غير القابل للعرض من الملفات التي لم يتم قفلها باستخدام EvilClippy أيضًا.
تم تطويره لمعالجة مستندات Microsoft Word و Excel.
كما هو مذكور أعلاه، تدمير VBA غير فعال ضد تنسيق Excel 97-2003 Workbook (.xls).
Stan Hegt (@StanHacked) / Outflank
مع مساهمات كبيرة من Carrie Roberts (@OrOneEqualsOne / Walmart).
شكر خاص لـ Nick Landers (@monoxgas / Silent Break Security) لتوجيهي نحو OpenMCDF.