
أداة تحميل جانبي لـ DLL آلية مع قدرات التهرب من EDR

على الرغم من أن تحميل DLL الجانبي (DLL sideloading) يمكن استخدامه لأغراض مشروعة، مثل تحميل المكتبات الضرورية لعمل البرنامج، إلا أنه يمكن استخدامه أيضًا لأغراض ضارة. يمكن للمهاجمين استخدام تحميل DLL الجانبي لتنفيذ تعليمات برمجية عشوائية على النظام المستهدف، غالبًا عن طريق استغلال الثغرات في التطبيقات المشروعة المستخدمة لتحميل DLLs.
لأتمتة عملية تحميل DLL الجانبي وجعلها أكثر فعالية، تم إنشاء Chimera، وهي أداة تتضمن منهجيات مراوغة لتجاوز منتجات EDR/AV. يمكن لهذه الأداة تشفير الشيل كود (shellcode) تلقائيًا عبر XOR بمفتاح عشوائي وإنشاء قوالب صور يمكن استيرادها إلى Visual Studio لإنشاء DLL ضار.
أيضًا، يتم استخدام استدعاءات النظام الديناميكية (Dynamic Syscalls) من SysWhispers3 ونسخة مُعدّلة من لغة التجميع (assembly) لمراوغة النمط الذي تبحث عنه EDR، مع إضافة زحافات NOP عشوائية ونقل السجلات. علاوة على ذلك، يُستخدم حقن الطيور المبكرة (Early Bird Injection) لحقن الشيل كود في عملية أخرى يمكن للمستخدم تحديدها مع آليات مراوغة بيئة الصندوق الرملي (Sandbox Evasion) مثل فحص القرص الصلب وما إذا كانت العملية قيد التصحيح. أخيرًا، يتم وضع هجوم توقيتي في المُحمل (loader) يستخدم موقتات قابلة للانتظار (waitable timers) لتأخير تنفيذ الشيل كود.
تم اختبار هذه الأداة وأثبتت فعاليتها في تجاوز منتجات EDR/AV وتنفيذ تعليمات برمجية عشوائية على النظام المستهدف.
أظهرت النسخة المحدثة من Chimera Unleashed تقدمًا كبيرًا في مراوغة التحليل الثابت والديناميكي، خاصة في سياق نظام الكشف والاستجابة للنقاط الطرفية (EDR) من Microsoft 365. نجحت تقنيات التحميل الجانبي للأداة، حتى عند تطبيقها على ملفات ثنائية معروفة مثل OneDrive، في التهرب من الاكتشاف. ومع ذلك، من الجدير بالذكر أنه بينما ظل جانب التحميل الجانبي غير مكتشف، تم تحديد عملية حقن الطيور المبكرة التي تستخدمها الأداة من قبل نظام EDR. يسلط هذا الضوء على مجال للتحسين لتعزيز قدرات التخفي الشاملة للأداة.
التحديثات والميزات الرئيسية:
Chimera مكتوبة بلغة python3 ولا حاجة لتثبيت أي تبعيات إضافية.
تدعم Chimera حاليًا خيارين من DLL إما Microsoft Teams أو Microsoft OneDrive.
يمكن للمستخدم إنشاء userenv.dll وهو DLL مفقود من Microsoft Teams وإدراجه في المجلد المحدد:
%USERPROFILE%/Appdata/local/Microsoft/Teams/current
بالنسبة لـ Microsoft OneDrive، يستخدم البرنامج النصي إصدار DLL (version.dll) وهو شائع لأنه مفقود من الملف الثنائي، مثل onedriveupdater.exe.
تستخدم Chimera Unleashed argparser لتحليل وسائط سطر الأوامر. الوسائط التالية متاحة:
--raw أو -r: مسار الملف الذي يحتوي على الشيل كود. مطلوب.--path أو -p: مسار إخراج ملف قالب C. مطلوب.--pname أو -n: اسم العملية لحقن الشيل كود فيها. مطلوب.--dexports أو -d: تحديد صادرات DLL التي سيتم استخدامها (إما 'teams' أو 'onedrive'). مطلوب.--enc أو -e: تحديد التشفير المفضل (XOR / AES). مطلوب.--inj أو -i: تحديد تقنية الحقن المفضلة (EB / MS). مطلوب.--rshell أو -s: [اختياري] استبدال اسم متغير الشيل كود باسم فريد. الافتراضي هو 'encoded_shell'.مثال على الاستخدام: python Chimera.py --raw <path_to_shellcode> --path <output_path> --pname <process_name> --dexports <exports_file> --enc AES --inj EB --rshell my_shellcode
بمجرد اكتمال عملية التجميع، سيتم إنشاء DLL، يجب أن يتضمن إما "version.dll" لـ OneDrive أو "userenv.dll" لـ Microsoft Teams. بعد ذلك، من الضروري إعادة تسمية ملفات DLL الأصلية.
على سبيل المثال، يجب إعادة تسمية "userenv.dll" الأصلي إلى "tmpB0F7.dll"، بينما يجب إعادة تسمية "version.dll" الأصلي إلى "tmp44BC.dll". بالإضافة إلى ذلك، لديك خيار تعديل اسم DLL الوكيل (proxy DLL) كما تريد عن طريق تغيير الكود المصدري لصادرات DLL بدلاً من استخدام أسماء البرنامج النصي الافتراضية.
ملف code.h يحتوي على الشيل كود.
الخطوة 1: إنشاء مشروع Visual Studio جديد مع قالب DLL


الخطوة 2: استيراد الملفات إلى مشروع Visual Studio
الخطوة 3: تخصيص البناء
الخطوة 4: تمكين MASM

الخطوة 5:


الخطوة 1: تغيير التحسين

الخطوة 2: إزالة معلومات التصحيح

المساهم الأصلي:
المساهم:
إلى أقصى حد يسمح به القانون المعمول به، فإنني (George Sotiriadis) و/أو الشركات التابعة التي قدمت محتوى إلى مستودعي، لن تكون مسؤولة عن أي أضرار غير مباشرة أو عرضية أو خاصة أو تبعية أو عقابية، أو أي خسارة في الأرباح أو الإيرادات، سواء تكبدت بشكل مباشر أو غير مباشر، أو أي خسارة في البيانات أو الاستخدام أو السمعة أو غيرها من الخسائر غير الملموسة، الناتجة عن (1) وصولك إلى هذا المورد و/أو عدم القدرة على الوصول إلى هذا المورد؛ (2) أي سلوك أو محتوى من أي طرف ثالث مشار إليه بواسطة هذا المورد، بما في ذلك على سبيل المثال لا الحصر، أي سلوك تشهيري أو مسيء أو غير قانوني من مستخدمين آخرين أو أطراف ثالثة؛ (3) أي محتوى تم الحصول عليه من هذا المورد.
https://evasions.checkpoint.com/
https://github.com/Flangvik/SharpDllProxy
--rxor أو -x: [اختياري] استبدال اسم تشفير xor باسم فريد. الافتراضي هو 'do_xor'.--rkey أو -k: [اختياري] استبدال اسم متغير المفتاح باسم فريد. الافتراضي هو 'key'.--rsleep أو -z: [اختياري] إجمالي وقت النوم (بالثواني) المراد تضمينه أثناء التنفيذ. الافتراضي هو 4000.--size أو -f: [اختياري] حجم ملف البيانات الزائفة (junk data) بالكيلوبايت. الصفر (0) معطل، وواحد (1) يعني حجم ملف عشوائي. الافتراضي هو 0.