المحمل الانعكاسي المدمج في Cobalt Strike قوي، حيث يتعامل مع جميع ميزات التهرب من PE القابلة للتشكيل التي يقدمها Cobalt Strike. العيب الرئيسي لاستخدام UDRL مخصص هو أن ميزات التهرب من PE القابلة للتشكيل قد تكون مدعومة أو لا تكون مدعومة بشكل جاهز.
الهدف من مشروع BokuLoader العام هو مساعدة الفرق الحمراء في إنشاء UDRL خاص بهم لـ Cobalt Strike. يهدف المشروع إلى دعم جميع ميزات التهرب من PE القابلة للتشكيل والتي تستحق العناء. بعض ميزات التهرب تستفيد من تكامل CS، وبعضها أعيد إنشاؤها بالكامل، وبعضها غير مدعوم.
قبل استخدام هذا المشروع بأي شكل، يجب عليك اختبار ميزات التهرب للتأكد من أنها تعمل كما هو مقصود. بين كود C و script Aggressor، قد يؤدي التجميع مع إصدارات مختلفة من أنظمة التشغيل والمترجمات و Java إلى نتائج مختلفة.
ميزات التهرب
ميزات التهرب الخاصة بـ BokuLoader
انتحال مكدس الاستدعاءات الانعكاسي عبر إطارات اصطناعية.
كود المحمل الانعكاسي المخصص بـ ASM/C.
استدعاءات نظام NT غير المباشرة عبر تقنيات HellsGate و HalosGate.
جميع تغييرات حماية الذاكرة لجميع خيارات التخصيص تتم عبر استدعاء نظام غير مباشر لـ NtProtectVirtualMemory.
obfuscate "true" مع تنفيذ مخصص لـ Aggressor script الخاص بـ UDRL.
NOHEADERCOPY
لن يقوم المحمل بنسخ رؤوس beacon DLL الخام إلى beacon DLL الافتراضية. ستكون أول 0x1000 بايتات أصفارًا.
XGetProcAddress لحل الرموز
لا يستخدم Kernel32.GetProcAddress.
xLoadLibrary لحل عنوان الأساس لـ DLL وتحميل DLL.
بالنسبة لـ DLLs المحملة، يحصل على عنوان الأساس لـ DLL من TEB->PEB->PEB_LDR_DATA->InMemoryOrderModuleList.
لا يستخدم Kernel32.LoadLibraryA.
تشفير قيصر لإخفاء السلاسل النصية.
حجم UDRL يصل إلى 100k.
يتم استبدال أسماء DLLs المستوردة وأسماء نقاط الدخول المستوردة في beacon DLL الافتراضية.
منارات HTTP/S مدعومة عبر تطبيق BokuLoader. منارات SMB/TCP غير مدعومة حاليًا لـ obfuscate true. التفاصيل في issue. نقبل المساعدة إذا كان بإمكانك الإصلاح :)
entry_point
RVA كرقم عشري
مدعوم عبر تطبيق BokuLoader
cleanup
true
مدعوم عبر تكامل CS
userwx
true/false
مدعوم عبر تطبيق BokuLoader
sleep_mask
(true/false) أو (Sleepmask Kit+true)
مدعوم. عند استخدام default "sleepmask true" (بدون sleepmask kit) قم بتعيين "userwx true". عند استخدام sleepmask kit الذي يدعم ذاكرة beacon.text RX (src47/Ekko) قم بتعيين "sleepmask true" && "userwx false".
magic_mz_x64
4 حروف
مدعوم عبر تكامل CS
magic_pe
2 حرف
مدعوم عبر تكامل CS
transform-x64 prepend
سلسلة hex مكتوبة بالمُهرب
تعديل BokuLoader.cna Aggressor script
transform-x64 strrep
string string
تعديل BokuLoader.cna Aggressor script
stomppe
true/false
غير مدعوم. BokuLoader لا ينسخ رؤوس beacon DLL. أول 0x1000 بايت من beacon DLL الافتراضية هي 0x00