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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
BokuLoader — مُحمل انعكاسي من نوع إثبات المفهوم لـ Cobalt Strike يهدف إلى إعادة إنشاء وتكامل وتعزيز ميزات التهرب من Cobalt Strike! | Kitploit
أدوات/GitHubGitHub/boku7/bokuloader
أطر اختبار الاختراقأطر الاستغلالشيل كودتحليل الملفات الثنائيةالفريق الأحمرتطوير الحمولات
GitHubboku7/bokuloader

BokuLoader

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

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

الأكثر شعبية

عرض الكل →

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

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

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

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

BokuLoader : محمل انعكاسي لـ 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استدعاءات النظام غير المباشرة

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

المحمل الانعكاسي المدمج في 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 الافتراضية.

ميزات التهرب من PE القابلة للتشكيل المدعومة

اختبار

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

أصول المشروع

  • بناءً على مشروع المحمل الانعكاسي الرائع لـ Stephen Fewer:
    • https://github.com/stephenfewer/ReflectiveDLLInjection
  • تم إنشاؤه في البداية أثناء العمل على فيديوهات Renz0h حول Reflective DLL من دورة Sektor7 Malware Developer Intermediate (MDI)

الاستخدام

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

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

السلاسل النصية المضمنة (Hardcoded Strings)

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

مخصصات الذاكرة

DLL Module Stomping

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

تخصيص الكومة (Heap Allocation)

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

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

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

كشف قناع السكون (Sleepmask Detection)

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

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

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

رأس المنارة الافتراضية DLL

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

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

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

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

انتحال مكدس الاستدعاءات الانعكاسي (Reflective Call Stack Spoofing)

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

المحمل الانعكاسي (Reflective Loader)

  • 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 SysCaller

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

مستدعي HellsGate Syscaller

  • @smelly__vx و @am0nsec (المبتكرون/الناشرون لتقنية Hells Gate)
    • لم أكن لأتمكن من تنفيذ HellsGate بدونهم :)
    • عمل رائع على هذه الطريقة، لقد استمتعت حقًا بالعمل عليها بنفسي. شكرًا لكم!
    • https://github.com/am0nsec/HellsGate
    • رابط لـ ورقة Hells 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)مدعوم عبر تطبيق BokuLoader. تنطبق نفس متطلبات استبدال DLL كما في تطبيق CS
obfuscatetrue/falseمنارات HTTP/S مدعومة عبر تطبيق BokuLoader. منارات SMB/TCP غير مدعومة حاليًا لـ obfuscate true. التفاصيل في issue. نقبل المساعدة إذا كان بإمكانك الإصلاح :)
entry_pointRVA كرقم عشريمدعوم عبر تطبيق BokuLoader
cleanuptrueمدعوم عبر تكامل CS
userwxtrue/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_x644 حروفمدعوم عبر تكامل CS
magic_pe2 حرفمدعوم عبر تكامل CS
transform-x64 prependسلسلة hex مكتوبة بالمُهربتعديل BokuLoader.cna Aggressor script
transform-x64 strrepstring stringتعديل BokuLoader.cna Aggressor script
stomppetrue/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سلسلة نصيةغير مدعوم