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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
eden — إثبات مفهوم (PoC) لـ UDRL لـ Cobalt Strike مبني باستخدام Crystal Palace يجمع بين تقنية تدفق الصفحات الخاصة بـ Raphael Mudge وبوابة استدعاء معيارية (Draugr) | Kitploit
أدوات/GitHubGitHub/cobalt-strike/eden
أطر اختبار الاختراقأطر الاستغلالشيل كودما بعد الاستغلالالتعلم والتعليمالفريق الأحمرتطوير الحمولات
GitHubcobalt-strike/eden

eden

إثبات مفهوم (PoC) لـ UDRL لـ Cobalt Strike مبني باستخدام Crystal Palace يجمع بين تقنية تدفق الصفحات الخاصة بـ Raphael Mudge وبوابة استدعاء معيارية (Draugr)

عرض المستودع
1377منذ 8 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

Eden

رسم

Eden loader هو UDRL (إثبات المفهوم) لـ Cobalt Strike مبني باستخدام Crystal Palace الذي يجمع بين تقنية تدفق الصفحات لـ Raphael Mudge مع بوابة اتصال وحداتية (حاليًا نسخة PIC من BOF بوابة اتصال Draugr من Sleepmask-VS).

الهدف من Eden loader هو:

  • إظهار قوة استخدام Crystal Palace لدمج (وإعادة استخدام) "الإمكانيات" لتطوير محملات/أدوات مخصصة بسرعة
  • العمل كمثال مرجعي ليبنى عليه الآخرون
  • مساعدة ممارسي الأمن على فهم كيفية عمل UDRLs (قابل للتصحيح بالكامل)
  • إعلام/تحفيز الحوار الأمني

لمزيد من المعلومات حول Eden loader، راجع المقال المصاحب.

ملاحظة: الغرض من Eden هو إظهار فكرة استخدام Crystal Palace لدمج "وحدات تنفيذ" مختلفة (أي الإمكانيات) لإنشاء محملات مخصصة. ليس المقصود منه أن يكون محملًا "مراوغًا" كامل المواصفات، وبالتالي فهو يفتقر إلى عدد من ميزات OPSEC الأساسية حسب التصميم. على سبيل المثال، يستخدم ذاكرة RWX ولا يتتبع/يخفي ذاكرة الكومة الخاصة بـ Beacon (وبالتالي فهو عرضة لتوقيعات YARA مثل هذه).

دليل البدء السريع

ملاحظة: يفترض دليل البدء السريع هذا أنك قمت بتنزيل/بناء Crystal Palace وأكملت الخطوات التالية لتكوين بيئة التطوير الخاصة بك.

  1. ستحتاج أولاً إلى تعيين إعداد Malleable C2 التالي:
root@kitploit:~
stage {
    set sleep_mask "false";
}
  1. افتح محطة WSL في جذر المستودع وقم ببناء Eden loader: make clean; make.
  2. انسخ crystalpalace.jar إلى دليل عميل Cobalt Strike الخاص بك.
  3. قم بتحميل eden.cna في عميل Cobalt Strike.
  4. عند تصدير حمولة في المرة القادمة، سيتم تطبيق Eden تلقائيًا. يمكنك التحقق من ذلك من خلال مراجعة المخرجات في وحدة التحكم الخاصة بالسيناريو:
root@kitploit:~
[14:55:55] [*] Generating Payload: HTTP -- Type: HTTP -- Arch: x64 -- Exit Function: Thread -- System Call: None -- HTTP Library: wininet
[14:55:56] [EDEN] Parsing C:\Users\wb\Desktop\eden\eden.spec...
[14:55:56] [EDEN] Applying eden ldr spec...
[14:55:56] [EDEN] Payload Size: 387060 bytes
[14:55:56] [*] Using user modified reflective DLL! DLLName=resources/beacon.x64.rl0k.dll Arch=x64

ملاحظة: يدعم Eden أنواع إشارات HTTP(S)، DNS، و Pivot Beacons.

دليل التصحيح

أحد القيود الخاصة بـ Crystal Palace وقت الإصدار هو أنه يدعم حاليًا فقط ملفات الكائنات المبنية باستخدام mingw. إذا حاولت استخدام COFF مبني باستخدام MSVC أو Clang، فستحصل عادةً على أخطاء إعادة التوطين. قد يكون هذا محبطًا لأن mingw لا يدعم بشكل مباشر ملفات pdb، وبالتالي قد يكون من الصعب تصحيح الأخطاء عند كتابة حِرف Windows معقدة. ومع ذلك، يمكنك إضافة الخيار -g إلى Makefile الخاص بك لتضمين معلومات التصحيح في بناءات الملف التنفيذي. هذا يجعل من الممكن التنقل عبر الكود الخاص بك في WinDbg. لمزيد من المعلومات حول هذه العملية، يُنصح بقراءة المقال التالي لـ Rastamouse.

يستخدم هذا المستودع النهج أعلاه لبناء إصدار تصحيح من Draugr (draugr.x64.exe) وكود تدفق الصفحات (guardexec.x64.exe) افتراضيًا. إصدار تصحيح Draugr ليس له تبعيات وبالتالي سيتم بناؤه فورًا، ولكن إذا كنت ترغب في التنقل/تصحيح كود تدفق الصفحات/خطاف IAT، فستحتاج إلى اتباع الخطوات أدناه:

1. تصدير Beacon بدون محمل:

  • قم بتحميل debug/export_beacon_with_no_ldr.cna في عميل CS الخاص بك وقم بتصدير Beacon خام غير مرحلي من نوع x64 (HTTP) إلى دليل /eden/debug/. سيؤدي هذا إلى تصدير DLL Beacon بدون محمل انعكاسي يمكننا استخدامه لمحاكاة نقطة الدخول guardexec.
  • (في WSL) $ xxd -i ./beacon_x64.bin > debug_beacon.h

2. تصدير كعب Draugr PIC من Crystal Palace:

  • للقيام بذلك، ستحتاج إلى تشغيل Crystal Palace من WSL عبر $ ./piclink /<path>/eden/debug/draugr.spec x64 /<path>/eden/debug/draugr.bin. سيستخدم هذا Crystal Palace لإخراج فقط كعب Draugr PIC الذي يمكننا استخدامه لمحاكاة نقطة الدخول guardexec.
  • (في WSL) $ xxd -i ./draugr.bin > debug_druagr.h

3. بدء التصحيح في WinDbg

  • أعد بناء Eden بعد تنفيذ الخطوات أعلاه: make clean;make
  • افتح WinDbg واختر تشغيل الملف التنفيذي (/eden/bin/draugr.exe أو /eden/bin/guardexec.exe)
  • اختر Open source file واختر ملف .c المناسب (أي guardexec.c إذا كنت تقوم بتصحيح كود تدفق الصفحات).
  • يمكنك الآن التنقل عبر / تعيين نقاط توقف إما للثنائي المستقل لتزوير مكدس الاستدعاءات Draugr أو لـ Beacon حي مع خطافات IAT. كتحذير، لن يعمل الإخفاء بشكل صحيح في وضع التصحيح لأنه يتطلب من Crystal Palace إضافة مفتاح أثناء توليد الحمولة.

ملاحظة: لا يوجد ملف تنفيذي للتصحيح للمحمل حيث لا توجد طريقة واضحة لجعل Crystal Palace يصدر حمولات تصحيح لأشياء مثل DLLs المشفرة ومفاتيحها. وبالتالي، يصبح من غير التافه تمرير مخازن PIC "مشفرة" مزيفة.

اعتبارات التصميم

  1. Eden loader مصمم بشكل أساسي لإظهار قوة Crystal Palace من خلال دمج "إمكانيات" مختلفة لإنشاء محمل جديد. يمكن تطوير هذه الفكرة أكثر بكثير مما هو موجود في هذا المستودع (أي محمل PIC "ثابت" قابل للتخصيص بالكامل عبر وحدات COFF (بوابات حماية، بوابات اتصال، إخفاء النوم إلخ.)).

  2. يستخدم Eden loader نسخة PIC من Draugr بشكل صريح حتى يتمكن من تزوير كل استدعاء في دورة حياة Beacon (أي استدعاءات VirtualAlloc / LoadLibrary المستخدمة أثناء عملية التحميل الانعكاسي). في بعض الحالات، قد يكون هذا مبالغًا فيه (أي أن EDR لا يهتم باستدعاءات غير مدعومة لـ LoadLibrary إلخ.) وفي هذه الحالة يمكن تعديله لاستخدام مكافئ PICO (== 'BOF') لـ Draugr وهو أبسط بكثير.

  3. يحاول Eden loader عمدًا الحفاظ على فك الارتباط بين 'Callgate' والمحمل. هذا حسب التصميم من أجل النمطية، حيث أن الفكرة هي أنه يمكنك تبديل BOFs BeaconGate/callgate وإخراجها. وبالتالي، فإن كود Draugr callgate موجود بالكامل في ملف كائناته الخاص. عن طريق استبدال هذا بـ 'إمكانية' أخرى، يمكنك تغيير TTPs الخاصة بـ Eden بشكل جذري.

  4. لا يستخدم Eden loader ميزات أحدث من Crystal Palace عن قصد. كمثال، يمكن استخدام mergelib مع المكتبة المشتركة لـ Crystal Palace، LibTCG. ومع ذلك، لاحظ أن هذا يعني أنك تفقد القدرة على تصحيح الكود الخاص بك.

استكشاف الأخطاء وإصلاحها

يمكن أن تؤثر تقنية تدفق الصفحات على أداء Beacon لأوامر معينة (على سبيل المثال، افتراضيًا، سيستغرق الحقن في العملية حوالي ~1 دقيقة(!) مع تكوين 4 صفحات مرئية). يمكنك زيادة #define MAXVISIBLE في guardexec.h لحل معظم المشكلات (القيمة الافتراضية لـ Eden هي 6). كمعلومة عامة، يمكن أن يتسبب تدفق الصفحات في مشاكل مع تقنيات حقن العمليات (خاصة إذا كانت تعتمد على التوقيت).

لماذا إصدار هذا؟

https://aff-wg.org/2025/03/13/the-security-conversation/

أعمال ذات صلة/تقدير

تم بناء Eden loader باستخدام Crystal Palace (https://tradecraftgarden.org/crystalpalace.html) ويستخدم المشاريع التالية:

  • تقنية تدفق الصفحات لـ Raphael Mudge: https://tradecraftgarden.org/pagestream.html.
  • تقنية تزوير مكدس الاستدعاءات Draugr لـ NtDallas: https://github.com/NtDallas/Draugr.
  • Sleepmask-VS الذي يحتوي على أمثلة لـ BOF callgates. تم إعادة استخدام هذه 'الإمكانيات' وتعديلها لتجميعها كـ PIC لاستخدامها مع Crystal Palace.
  • Crystal-Kit لـ Rastamouse هو مشروع مشابه يستخدم أيضًا Draugr BeaconGate BOF ولكن بتنفيذ مختلف.

أخيرًا، شكر خاص لـ @rastamouse الذي ساعدت مدوناته حول Crystal Palace أثناء التطوير.

تنزيل الأداة