
فنيات التصيد عبر XLL
مع الإعلان الأخير من مايكروسوفت بشأن حظر وحدات الماكرو في المستندات القادمة من الإنترنت (البريد الإلكتروني والتنزيل من الويب)، بدأ المهاجمون في استكشاف خيارات أخرى بقوة لتحقيق الوصول بمساعدة المستخدم (UDA). هناك عدة اعتبارات يجب موازنتها عند البحث عن طريقة تصيد قابلة للتطبيق للوصول:
هذه هي الأسئلة الرئيسية، ولكن هناك بالتأكيد المزيد. تزداد الأمور تعقيدًا عندما تدرك أن هذه العوامل تتراكم على بعضها؛ على سبيل المثال، إذا كان لدى العميل وكيل ويب يمنع تنزيل الملفات القابلة للتنفيذ أو ملفات DLL، فقد تحتاج إلى وضع حمولتك داخل حاوية (ZIP، ISO، إلخ). القيام بذلك قد يسبب مشاكل إضافية في المستقبل فيما يتعلق بالكشف. تتطلب الدفاعات الأكثر قوة مجموعات أكثر تعقيدًا من التقنيات لهزيمتها.
ستتم كتابة هذه المقالة مع افتراض وجود مؤسسة مستهدفة خيالية؛ وقد وظفت هذه المؤسسة العديد من التدابير الدفاعية بما في ذلك قواعد تصفية البريد الإلكتروني، وحظر أنواع معينة من الملفات من التنزيل، وقوائم التطبيقات المسموح بها على نقاط النهاية، وبرنامج Microsoft Defender for Endpoint كحل EDR.
قد لا تستخدم المؤسسات الحقيقية أيًا من هذه، أو بعضها، أو حتى دفاعات أكثر مما يمكن أن يبسط أو يعقد التقنيات الموضحة في هذا البحث. كما هو الحال دائمًا، اعرف هدفك.
ملفات XLL هي ملفات DLL، مصممة خصيصًا لبرنامج Microsoft Excel. بالنسبة للعين غير المدربة، تبدو كثيرًا مثل مستندات Excel العادية.

توفر ملفات XLL خيارًا جذابًا للغاية لـ UDA نظرًا لأنها تُنفذ بواسطة Microsoft Excel، وهو برنامج شائع جدًا في شبكات العملاء؛ وكعلاوة إضافية، نظرًا لأنها تُنفذ بواسطة Excel، فإن حمولتنا ستتجاوز بالتأكيد تقريبًا قواعد قوائم التطبيقات المسموح بها لأن تطبيقًا موثوقًا (Excel) هو الذي ينفذها. يمكن كتابة ملفات XLL بلغة C أو C++ أو C# مما يوفر مرونة وقوة (وعقلانية) أكبر بكثير من وحدات VBA الكبيرة مما يجعلها خيارًا مرغوبًا أكثر.
الجانب السلبي بالطبع هو أن هناك استخدامات شرعية قليلة جدًا لملفات XLL، لذا يجب أن يكون من السهل جدًا على المؤسسات حظر تنزيل هذا الامتداد للملفات عبر البريد الإلكتروني وتنزيل الويب. للأسف، العديد من المؤسسات متخلفة عن الركب لسنوات، وبالتالي تظل ملفات XLL طريقة قابلة للتطبيق للتصيد لبعض الوقت.
هناك سلسلة من الأحداث المختلفة التي يمكن استخدامها لتنفيذ التعليمات البرمجية داخل ملف XLL، وأبرزها هو xlAutoOpen. يمكن رؤية القائمة الكاملة هنا:

عند النقر المزدوج على ملف XLL، يتم الترحيب بالمستخدم بهذه الشاشة:

هذا المربع الحواري الوحيد هو كل ما يفصل المستخدم عن تنفيذ التعليمات البرمجية؛ مع هندسة اجتماعية رقيقة إلى حد ما، يكون تنفيذ التعليمات البرمجية شبه مضمون.
شيء يجب أن نضعه في الاعتبار هو أن ملفات XLL، كونها قابلة للتنفيذ، خاصة بالبنية المعمارية. هذا يعني أنك يجب أن تعرف هدفك؛ إصدار Microsoft Office/Excel الذي تستخدمه المؤسسة المستهدفة سيحدد (عادةً) البنية المعمارية التي تحتاج إلى بناء حمولتك من أجلها.
هناك انفصال واضح في إصدارات Office يمكن استخدامه كقاعدة عامة:
Office 2016 أو أقدم: x86
Office 2019 أو أحدث: x64
يجب ملاحظة أنه من الممكن تثبيت البنية المعمارية الأخرى لكل منتج، لكن هذه هي البنى الافتراضية المثبتة وفي معظم الحالات يجب أن تكون هذه طريقة موثوقة لاتخاذ قرار بشأن البنية المعمارية التي ستستخدمها لملف XLL. بالطبع اعتمادًا على طريقة التسليم والحجة المستخدمة كجزء من حملة التصيد، من الممكن تقديم كلا الإصدارين والاعتماد على الضحية لاختيار الإصدار المناسب لنظامه.
تم بناء حمولة XLL التي تم تطويرها خلال هذا البحث بناءً على هذا المشروع بواسطة edparcell. يحتوي مستودعه على تعليمات جيدة للبدء مع ملفات XLL في Visual Studio، وقد استخدمت كوده كنقطة انطلاق لتطوير ملف XLL ضار.
انحراف ملحوظ عن مستودعه هو أنه إذا كنت ترغب في إنشاء مشروع XLL خاص بك، فستحتاج إلى تنزيل أحدث إصدار من Excel SDK ثم اتباع التعليمات في المستودع المرتبط سابقًا باستخدام هذا الإصدار بدلاً من إصدار 2010 من SDK المذكور في README.
تسليم الحمولة هو اعتبار مهم في سياق UDA. هناك طريقتان رئيسيتان سنركز عليهما:
إما عن طريق إرفاق ملف أو تضمين رابط لموقع ويب يمكن من خلاله تنزيل ملف، فإن البريد الإلكتروني هو جزء حاسم من عملية UDA. على مر السنين، نضجت العديد من المؤسسات (ومزودي البريد الإلكتروني) وفرضت قواعد لحماية المستخدمين والمؤسسات من المرفقات الضارة. يختلف الأداء، لكن المؤسسات لديها الآن القدرة على:
يمكن أن يكون اختبار قواعد البريد الإلكتروني لمؤسسة ما جزءًا مهمًا من المهمة، ومع ذلك يجب دائمًا توخي الحذر حتى لا يتم الكشف عن أن عملية الفريق الأحمر جارية وأن المعلومات يتم جمعها بنشاط.
لأغراض هذه المقالة، سنفترض أن المؤسسة المستهدفة لديها قواعد قوية لمرفقات البريد الإلكتروني تمنع تسليم حمولة XLL. سنتحول وننظر إلى التسليم عبر الويب.
سيظل البريد الإلكتروني مستخدمًا في هذا المتجه الهجومي، ولكن بدلاً من إرسال مرفق، سيتم استخدامه لإرسال رابط إلى موقع ويب. يمكن أن تختلف قواعد الوكيل على الويب وإجراءات الشبكة التخفيفية التي تتحكم في أنواع الملفات المسموح بتنزيلها عن تلك المفروضة فيما يتعلق بمرفقات البريد الإلكتروني. لأغراض هذه المقالة، من المفترض أن المؤسسة تمنع تنزيل الملفات القابلة للتنفيذ (رؤوس MZ) من الويب. في هذه الحالة، من الجدير استكشاف أدوات التعبئة/الحاويات.
المبدأ هو أننا قد نتمكن من وضع ملفنا القابل للتنفيذ داخل نوع ملف آخر وتهريبه عبر سياسات المؤسسة. الاعتبار الرئيسي هنا هو الدعم الأصلي لنوع الملف؛ على سبيل المثال، لا يمكن فتح ملفات 7Z بواسطة Windows دون تثبيت برامج طرف ثالث، لذا فهي ليست خيارًا رائعًا. التنسيقات مثل ZIP و ISO و IMG هي خيارات جذابة لأنها مدعومة أصلاً بواسطة Windows، وكإضافة إضافية، تضيف خطوات إضافية قليلة جدًا للضحية.
للأسف، تمنع المؤسسة تنزيل ISO و IMG من الويب؛ بالإضافة إلى ذلك، نظرًا لأنها تستخدم منع فقدان البيانات (DLP)، لا يمكن للمستخدمين تركيب أجهزة تخزين خارجية، والتي تعتبر ISO و IMG منها.
لحسن الحظ بالنسبة لنا، على الرغم من أن المؤسسة تمنع تنزيل الملفات ذات رؤوس MZ، إلا أنها تسمح بتنزيل ملفات zip التي تحتوي على ملفات قابلة للتنفيذ. يتم فحص ملفات zip هذه بنشاط بحثًا عن البرامج الضارة، بما في ذلك مطالبة المستخدم بكلمة المرور لملفات zip المحمية بكلمة مرور؛ ولكن نظرًا لأن الملف القابل للتنفيذ مضغوط، فإنه لا يتم حظره بواسطة الحظر الشامل لملفات MZ.
تم اختيار ملفات Zip كحاوية لحمولة XLL الخاصة بنا للأسباب التالية:
بشكل ملائم، يؤدي النقر المزدوج على ملف ZIP في Windows إلى فتح هذا الملف المضغوط في مستكشف الملفات:

بشكل أقل ملاءمة، يؤدي النقر المزدوج على ملف XLL من الموقع المضغوط إلى تشغيل Windows Defender؛ حتى عند استخدام المشروع الأساسي من edparcell الذي لا يحتوي على أي نوع من التعليمات البرمجية الضارة.