Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
BokuLoader — نموذج إثبات مفهوم لمحمّل انعكاسي (Reflective Loader) خاص بـ Cobalt Strike، يهدف إلى إعادة إنشاء ميزات التهرب في Cobalt Strike ودمجها وتعزيزها! | Kitploit
أدوات/GitHubGitHub/xforcered/bokuloader
أطر اختبار الاختراقالتهرب من IDS/IPSما بعد الاستغلالالقيادة والسيطرةالفريق الأحمرتطوير الحمولاتالهجوم العدائي
GitHubxforcered/bokuloader

BokuLoader

نموذج إثبات مفهوم لمحمّل انعكاسي (Reflective Loader) خاص بـ Cobalt Strike، يهدف إلى إعادة إنشاء ميزات التهرب في Cobalt Strike ودمجها وتعزيزها!

عرض المستودع
33525منذ 2 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

BokuLoader : المُحمِّل الانعكاسي لـ Cobalt Strike

أداة إثبات مفهوم User-Defined Reflective Loader (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استدعاءات النظام غير المباشرة

اعتبارات استخدام UDRL

المُحمّل الانعكاسي المدمج في Cobalt Strike قوي، ويتعامل مع جميع ميزات التهرب الخاصة بـ Malleable PE التي تقدّمها Cobalt Strike. العيب الرئيسي لاستخدام UDRL مخصص هو أن ميزات التهرب الخاصة بـ Malleable PE قد تكون مدعومة أو غير مدعومة افتراضيًا.

الهدف من مشروع BokuLoader العام هو مساعدة فرق الاختراق (red teams) في إنشاء UDRL خاص بهم لـ Cobalt Strike. يهدف المشروع إلى دعم جميع ميزات التهرب المفيدة لـ Malleable PE الخاصة بـ CS. بعض ميزات التهرب تستفيد من التكامل مع CS، وبعضها الآخر أُعيد إنشاؤه بالكامل، وبعضها غير مدعوم.

قبل استخدام هذا المشروع بأي شكل من الأشكال، يجب عليك اختبار ميزات التهرب بشكل صحيح للتأكد من أنها تعمل كما هو مقصود. بين كود C وسكربت Aggressor، قد تؤدي عملية الترجمة باستخدام إصدارات مختلفة من أنظمة التشغيل والمترجمات وJava إلى نتائج مختلفة.

ميزات التهرب

ميزات التهرب الخاصة بـ BokuLoader

  • انتحال مكدس الاستدعاءات الانعكاسي عبر الإطارات الاصطناعية.
  • كود مُحمّل انعكاسي مخصص بلغة ASM/C
  • استدعاءات NT syscalls غير مباشرة عبر تقنيتي HellsGate وHalosGate
    • جميع تغييرات حماية الذاكرة لجميع خيارات التخصيص تتم عبر استدعاء نظام غير مباشر لـ NtProtectVirtualMemory
  • obfuscate "true" مع تنفيذ مخصص لسكربت Aggressor الخاص بـ UDRL.
  • NOHEADERCOPY
    • لن ينسخ المُحمّل ترويسات beacon DLL الخام إلى beacon DLL الافتراضية. ستكون أول 0x1000 بايت أصفارًا.
  • XGetProcAddress لحل الرموز (symbols)
    • لا يستخدم Kernel32.GetProcAddress
  • xLoadLibrary لتحديد العنوان الأساسي لـ DLL وتحميلها
    • بالنسبة لملفات DLL المُحمّلة، يحصل على العنوان الأساسي لـ DLL من TEB->PEB->PEB_LDR_DATA->InMemoryOrderModuleList
    • لا يستخدم Kernel32.LoadLibraryA
  • تشفير قيصر (Caesar Cipher) لتعتيم السلاسل النصية
  • حجم UDRL يبلغ 100k
  • أسماء DLL المستوردة وسلاسل أسماء نقاط الدخول المستوردة يتم طمسها في beacon DLL الافتراضية.

ميزات التهرب المدعومة لـ Malleable PE

الاختبار

  • (2/22/23) تم اختبار جميع طرق التخصيص الأربعة باستخدام threatexpress/malleable-c2/master/jquery-c2.4.7.profile

أصول المشروع

  • مبني على مشروع المُحمّل الانعكاسي الرائع لـ Stephen Fewer:
    • https://github.com/stephenfewer/ReflectiveDLLInjection
  • أُنشئ في البداية أثناء متابعة مقاطع فيديو Renz0h حول Reflective DLL من دورة Sektor7 لمطوّري البرمجيات الخبيثة - المستوى المتوسط (MDI)

الاستخدام

  1. قم بترجمة ملف الكائن الخاص بـ BokuLoader باستخدام make
  2. ابدأ تشغيل Team Server الخاص بـ Cobalt Strike
  3. داخل Cobalt Strike، قم باستيراد سكربت Aggressor BokuLoader.cna
  4. قم بإنشاء beacon بصيغة x64 (Attacks -> Packages -> Windows Executable (S))
  5. استخدم Script Console للتأكد من تطبيق BokuLoader في بناء beacon
  • لا يدعم خيار x86. ملف x86 bin هو ملف الكائن الخاص بالمُحمّل الانعكاسي الأصلي.
  • إنشاء beacons بصيغة RAW يعمل مباشرة دون إعدادات إضافية. عند استخدام Artifact Kit لتحميل beacon، يجب أن يكون متغير stagesize أكبر من القيمة الافتراضية.
    • راجع توثيق Cobalt Strike للمُحمّل الانعكاسي المعرّف من قبل المستخدم للحصول على معلومات إضافية

إرشادات الكشف

السلاسل المضمّنة (Hardcoded Strings)

  • يستبدل BokuLoader بعض السلاسل التي يتم اكتشافها بشكل شائع بقيم مضمّنة جديدة. يمكن استخدام هذه السلاسل لإنشاء توقيع (signature) لـ BokuLoader:
السلسلة الأصلية في Cobalt Strikeسلسلة BokuLoader في Cobalt Strike
ReflectiveLoaderBokuLoader
Microsoft Base Cryptographic Provider v1.012367321236742382543232341241261363163151d
(admin)(tomin)
beaconbacons

مُخصِّصات الذاكرة

طمس وحدة DLL (DLL Module Stomping)

  • يتم استدعاء Kernel32.LoadLibraryExA لتعيين DLL من القرص
  • الوسيطة الثالثة لـ Kernel32.LoadLibraryExA هي DONT_RESOLVE_DLL_REFERENCES (0x00000001)
    • لا يقوم النظام باستدعاء DllMain
  • لا يحل العناوين في إدخال LDR PEB كما هو موضح بالتفصيل بواسطة MDSec هنا
  • يمكن اكتشافه عبر فحص ذاكرة العملية باستخدام أداة pe-sieve

التخصيص عبر Heap

  • ستوجد ذاكرة قابلة للتنفيذ RX أو RWX في heap إذا لم يتم استخدام sleepmask kit.

المُخصِّص المعيّن (Mapped Allocator)

  • يتم استدعاء Kernel32.CreateFileMappingA وKernel32.MapViewOfFile لتخصيص ذاكرة لـ beacon DLL الافتراضية.

كشف Sleepmask

  • إذا تم استخدام sleepmask kit، توجد طرق كشف لهذا التخصيص المستقل للذاكرة كما هو موضح بالتفصيل بواسطة MDSec هنا

استدعاءات النظام غير المباشرة

  • يستدعي BokuLoader استدعاءات النظام التالية لإعداد ذاكرة beacon القابلة للتنفيذ المُحمّلة: NtAllocateVirtualMemory, NtProtectVirtualMemory
  • يتم استدعاؤها بشكل غير مباشر من ذاكرة BokuLoader القابلة للتنفيذ.
  • لن يؤدي تعيين خطافات (hooks) في مساحة المستخدم داخل ntdll.dll إلى كشف استدعاءات النظام هذه.
  • قد يكون من الممكن تسجيل kernelcallbacks باستخدام برنامج تشغيل kernel لمراقبة استدعاءات النظام المذكورة أعلاه وكشف استخدامها.
  • سيحتوي BokuLoader نفسه على تعليمات التجميع mov eax, r11d; mov r11, r10; mov r10, rcx; jmp r11 داخل ذاكرته القابلة للتنفيذ.

ترويسة beacon DLL الافتراضية

  • أول 0x1000 بايت من beacon DLL الافتراضية هي أصفار.

الكود المصدري متاح

  • يتم توفير الكود المصدري لـ BokuLoader داخل المستودع ويمكن استخدامه لإنشاء توقيعات ذاكرة.
  • إذا كانت لديك إرشادات كشف إضافية، فلا تتردد في المساهمة عبر تقديم pull request.

الاعتمادات / المراجع

انتحال مكدس الاستدعاءات الانعكاسي

  • LoudSunRun: أداة انتحال إطارات مكدس الاستدعاءات الاصطناعية مع استدعاءات نظام غير مباشرة
  • SilentMoonwalk: تنفيذ PoC لأداة انتحال مكدس استدعاءات ديناميكية بالكامل
  • Vulcan Raven: تنفيذ PoC لانتحال مكدسات استدعاءات عشوائية عند إجراء استدعاءات النظام
  • CallStackMasker: تنفيذ PoC لإخفاء مكدسات الاستدعاءات ديناميكيًا باستخدام المؤقتات
  • ThreadStackSpoofer: PoC لانتحال مكدس الخيط
  • Behind the Mask: انتحال مكدسات الاستدعاءات ديناميكيًا باستخدام المؤقتات

المُحمّل الانعكاسي

  • https://github.com/stephenfewer/ReflectiveDLLInjection
  • شاهد هذه الفيديوهات إذا كنت مهتمًا بـ Reflective DLL:
    • الرقص مع جدول عناوين الاستيراد (IAT) - دورة Sektor 7 MDI
    • التنقل عبر جدول عناوين التصدير - دورة Sektor 7 MDI
    • شرح الحقن الانعكاسي - دورة Sektor 7 MDI
    • مراجعة الكود المصدري لـ ReflectiveLoader - دورة Sektor 7 MDI
  • TitanLdr
  • AceLdr
  • KaynLdr

مُنفِّذ استدعاءات النظام HalosGate

  • Reenz0h من @SEKTOR7net
    • شاهد دورات ومدونات Reenz0h الرائعة!
    • أفضل الدورات في تطوير البرمجيات الخبيثة التي التحقت بها.
    • مبتكر تقنية halos gate. كان عمله الدافع الأولي لهذا العمل.
    • مدونة Sektor7 حول HalosGate

مُنفِّذ استدعاءات النظام HellsGate

  • @smelly__vx و@am0nsec (مبتكرو/ناشرو تقنية Hells Gate)
    • لم أكن لأتمكن من تطوير تنفيذي لـ HellsGate بدونهم :)
    • عمل رائع على هذه الطريقة، استمتعت حقًا بالعمل عليها بنفسي. شكرًا لكم!
    • https://github.com/am0nsec/HellsGate
    • رابط إلى ورقة Hell's Gate: https://vxug.fakedoma.in/papers/VXUG/Exclusive/HellsGate.pdf

سكربتات Aggressor

  • sinusoid @the_bit_diddler : returnIntegerFromArray

المُحمّل الانعكاسي المعرّف من قبل المستخدم في Cobalt Strike

  • https://www.cobaltstrike.com/help-user-defined-reflective-loader

مصدر رائع لتعلّم لغة التجميع Intel ASM

  • Pentester Academy - SLAE64

تجاوز ETW وAMSI

  • @anthemtotheego inline-ExecuteAssembly
  • @mariuszbit - لفكرته الرائعة حول تنفيذ عمليات التجاوز في المُحمّل الانعكاسي!
  • @XPN إخفاء .NET الخاص بك – ETW
  • ajpc500/BOFs
  • Offensive Security OSEP

تنفيذ لغة التجميع ASM في كود C باستخدام GCC

  • https://outflank.nl/blog/2020/12/26/direct-syscalls-in-beacon-object-files/
  • https://www.cs.uaf.edu/2011/fall/cs301/lecture/10_12_asm_c.html
  • http://gcc.gnu.org/onlinedocs/gcc-4.0.2/gcc/Extended-Asm.html#Extended-Asm

ملفات تعريف C2 الخاصة بـ Cobalt Strike

  • مشروع Tylous الأسطوري SourcePoint
  • threatexpress/malleable-c2/jquery-c2.4.7.profile
تنزيل الأداة
الأمرالخياراتالحالة
allocatorHeapAlloc, MapViewOfFile, VirtualAllocجميعها مدعومة عبر تنفيذ BokuLoader
module_x64string (DLL Name)مدعومة عبر تنفيذ BokuLoader. تنطبق نفس متطلبات DLL stomping كما في تنفيذ CS
obfuscatetrue/falsebeacons عبر HTTP/S مدعومة من خلال تنفيذ BokuLoader. SMB/TCP غير مدعوم حاليًا مع obfuscate true. التفاصيل في issue. نرحب بالمساعدة إذا استطعت الإصلاح :)
entry_pointRVA كرقم عشريمدعومة عبر تنفيذ BokuLoader
cleanuptrueمدعومة عبر تكامل CS
userwxtrue/falseمدعومة عبر تنفيذ BokuLoader
sleep_mask(true/false) أو (Sleepmask Kit+true)مدعومة. عند استخدام "sleepmask true" الافتراضي (بدون sleepmask kit) عيّن "userwx true". عند استخدام sleepmask kit الذي يدعم ذاكرة RX beacon.text (src47/Ekko) عيّن "sleepmask true" && "userwx false".
magic_mz_x64سلسلة من 4 أحرفمدعومة عبر تكامل CS
magic_peسلسلة من حرفينمدعومة عبر تكامل CS
transform-x64 prependسلسلة hex مهرّبة (escaped)تعديل في سكربت Aggressor BokuLoader.cna
transform-x64 strrepسلسلة سلسلةتعديل في سكربت Aggressor BokuLoader.cna
stomppetrue/falseغير مدعومة. لا ينسخ BokuLoader ترويسات beacon DLL. أول 0x1000 بايت من beacon DLL الافتراضية هي 0x00
checksumرقمتجريبية. تعديل في سكربت Aggressor BokuLoader.cna
compile_timeسلسلة تاريخ ووقتتجريبية. تعديل في سكربت Aggressor BokuLoader.cna
image_size_x64قيمة عشريةغير مدعومة
nameسلسلةتجريبية. تعديل في سكربت Aggressor BokuLoader.cna
rich_headerسلسلة hex مهرّبةتجريبية. تعديل في سكربت Aggressor BokuLoader.cna
stringwسلسلةغير مدعومة
stringسلسلةغير مدعومة