
مُحمل انعكاسي من نوع إثبات المفهوم لـ Cobalt Strike يهدف إلى إعادة إنشاء وتكامل وتعزيز ميزات التهرب من Cobalt Strike!

إثبات مفهوم لمحمل انعكاسي معرف من قبل المستخدم (UDRL) يهدف إلى إعادة إنشاء ودمج وتعزيز ميزات التهرب من Cobalt Strike!
| المساهم | تويتر | المساهمات البارزة |
|---|---|---|
| Bobby Cooke | @0xBoku | المؤلف الأصلي للمشروع والمشرف عليه |
| Santiago Pecin | @s4ntiago_p | تحسينات رئيسية للمحمل الانعكاسي |
| Chris Spehn | @ConsciousHacker | البرمجة النصية لـ Aggressor |
| Joshua Magri | @passthehashbrwn | ربط IAT |
| Dylan Tran | @d_tranman | انتحال مكدس الاستدعاءات الانعكاسي |
| James Yeung | @5cript1diot | استدعاءات النظام غير المباشرة |
المحمل الانعكاسي المدمج في Cobalt Strike قوي، حيث يتعامل مع جميع ميزات التهرب من PE القابلة للتشكيل التي يقدمها Cobalt Strike. العيب الرئيسي لاستخدام UDRL مخصص هو أن ميزات التهرب من PE القابلة للتشكيل قد تكون مدعومة أو لا تكون مدعومة بشكل جاهز.
الهدف من مشروع BokuLoader العام هو مساعدة الفرق الحمراء في إنشاء UDRL خاص بهم لـ Cobalt Strike. يهدف المشروع إلى دعم جميع ميزات التهرب من PE القابلة للتشكيل والتي تستحق العناء. بعض ميزات التهرب تستفيد من تكامل CS، وبعضها أعيد إنشاؤها بالكامل، وبعضها غير مدعوم.
قبل استخدام هذا المشروع بأي شكل، يجب عليك اختبار ميزات التهرب للتأكد من أنها تعمل كما هو مقصود. بين كود C و script Aggressor، قد يؤدي التجميع مع إصدارات مختلفة من أنظمة التشغيل والمترجمات و Java إلى نتائج مختلفة.
NtProtectVirtualMemory.obfuscate "true" مع تنفيذ مخصص لـ Aggressor script الخاص بـ UDRL.0x1000 بايتات أصفارًا.XGetProcAddress لحل الرموز
Kernel32.GetProcAddress.xLoadLibrary لحل عنوان الأساس لـ DLL وتحميل DLL.
TEB->PEB->PEB_LDR_DATA->InMemoryOrderModuleList.Kernel32.LoadLibraryA.makeBokuLoader.cnaScript Console للتأكد من أن BokuLoader تم تطبيقه في بناء المنارةRAW يعمل مباشرة. عند استخدام Artifact Kit لمحمل المنارة، يجب أن يكون متغير stagesize أكبر من الافتراضي.
| السلاسل النصية الأصلية لـ Cobalt Strike | السلاسل النصية لـ BokuLoader في Cobalt Strike |
|---|---|
| ReflectiveLoader | BokuLoader |
| Microsoft Base Cryptographic Provider v1.0 | 12367321236742382543232341241261363163151d |
| (admin) | (tomin) |
| beacon | bacons |
Kernel32.LoadLibraryExA لتعيين DLL من القرصKernel32.LoadLibraryExA هي DONT_RESOLVE_DLL_REFERENCES (0x00000001)
RX أو RWX في الكومة إذا لم يتم استخدام sleepmask kit.Kernel32.CreateFileMappingA و Kernel32.MapViewOfFile لتخصيص ذاكرة لـ beacon DLL الافتراضية.NtAllocateVirtualMemory, NtProtectVirtualMemoryntdll.dll هذه الاستدعاءات.mov eax, r11d; mov r11, r10; mov r10, rcx; jmp r11 داخل ذاكرته القابلة للتنفيذ.0x1000 بايت من beacon DLL الافتراضية هي أصفار.| الأمر | الخيار(ات) | مدعوم |
|---|
allocator | HeapAlloc, MapViewOfFile, VirtualAlloc | جميعها مدعومة عبر تطبيق BokuLoader |
module_x64 | string (اسم DLL) | مدعوم عبر تطبيق BokuLoader. تنطبق نفس متطلبات استبدال DLL كما في تطبيق CS |
obfuscate | true/false | منارات 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 |
checksum | رقم | تجريبي. تعديل BokuLoader.cna Aggressor script |
compile_time | سلسلة تاريخ-وقت | تجريبي. تعديل BokuLoader.cna Aggressor script |
image_size_x64 | قيمة عشرية | غير مدعوم |
name | سلسلة نصية | تجريبي. تعديل BokuLoader.cna Aggressor script |
rich_header | سلسلة hex مكتوبة بالمُهرب | تجريبي. تعديل BokuLoader.cna Aggressor script |
stringw | سلسلة نصية | غير مدعوم |
string | سلسلة نصية | غير مدعوم |