خادم الاستغلال لنتائج خارج النطاق. وجّه هدفًا إلى نطاق تملكه. كل طلب HTTP وكل بريد إلكتروني يرسله يعود إلى لوحة تحكم تتحكم بها، ويحصل على أي استجابة تختارها في المقابل.
BEAR-C2 هو إطار لمحاكاة الخصوم ومحاكاتهم مبني حول تكتيكات وتقنيات وإجراءات (TTPs) من العالم الحقيقي مستوحاة من مجموعات APT الروسية والصينية والكورية الشمالية والإيرانية. يوفر بيئة مرنة لسيناريوهات Engagement المتنوعة ويقدم أساسًا واقعيًا لعمليات الفريق الأحمر ومحاكاة الخصوم مستمدًا من أبحاث المحاكاة ذات الصلة في . يدعم تقنيات التهرب من الدفاعات وخيارات تشفير متعددة لتمثيل دقيق لسيناريوهات الاختراق في العالم الحقيقي.

[!CAUTION] من الضروري ملاحظة أن هذا المشروع مخصص للأغراض التعليمية والبحثية فقط، وأي استخدام غير مصرح به قد يؤدي إلى عواقب قانونية.
git clone https://github.com/S3N4T0R-0X0/BEAR-C2.git && cd BEAR-C2
chmod +x requirements.sh && ./requirements.sh
./BEAR-C2
## 🧠 التحدي في محاكاة الخصم:
تتطلب محاكاة **تقنيات APT** بدقة `بيئة مرنة قادرة على محاكاة بروتوكولات الاتصال، وطرق التشفير، وتقنيات التسريب، وقنوات/ملفات تعريف C2` المستخدمة في الاختراقات الحديثة. ومع ذلك، كان تحقيق هذا المستوى من الدقة يمثل تحديًا دائمًا.
<img width="1366" height="732" alt="main " src="https://assets.kitploit.com/production/public/readmes/54775/8af4474bf61f52114745ec8403b4ea6d01d26a57f85913f1f01b4bba559a1eb7/59654a7b465df184554d5c31ee49293c1f5d9da71a1e6ef81aa0a2fa5b88b8ea-display-v1.webp" />
في كل مرة يحتاج فيها المشغّل إلى اختبار **مخطط تشفير** معين مع **ملف تعريف تسريب** محدد، `يجب بناء سكربت C2 منفصل ليتوافق مع سيناريو الهجوم.` على سبيل المثال، قد تتطلب إحدى المحاكاات **تشفير AES** مع **تسريب عبر OneDrive**، بينما قد تحتاج أخرى إلى **طريقة تشفير مختلفة** مقترنة بـ **تسريب عبر Dropbox** لتعكس التقنيات الملاحظة في الهجمات الواقعية. هذا الافتقار إلى المرونة يجعل العملية غير فعّالة ومستهلكة للوقت.
<img width="1359" height="680" alt="Screenshot From 2026-09-01 05-54-48" src="https://assets.kitploit.com/production/public/readmes/54775/c106129e53832b08e6575610090337721e4e5892eade10bee395fae638326cc2/299229b4ffae9286d368a6e9243c4528d469f5395f166d9b67fa0020beaf5d8a-display-v1.webp" />
لهذا السبب تم تطوير **BEAR C2** لتوفير **محاكاة الخصم** مع تخصيص كامل من خلال المستمع الجديد، مما يسمح بتهيئة سلسة لـ `بروتوكولات الاتصال، والتشفير، والتسريب،` وتقنيات التحميل الآلي. وهذا يضمن أن المحاكاات يمكنها أن تعكس بدقة **اختراقات APT** الحقيقية دون الحاجة إلى بناء سكربتات مخصصة لكل سيناريو.
## عينات حمولة Reaper Node
يوفر Reaper Node عينات حمولة C++ في `/Stagers-Loaders/Reaper Node Samples/` يمكن استخدامها كقوالب قابلة للتخصيص للبيئات التي لا تتطلب حمولة مُنشأة مسبقًا. تحتوي العينات على حقول التهيئة الأساسية المطلوبة لإنشاء الاتصال مع نسخة Reaper Node المقابلة.
قبل تجميع الحمولة، يجب تهيئة معاملات الاتصال والنقل المطلوبة لتتوافق مع تهيئة Reaper Node.
### تهيئة الحمولة
يجب أن توفر تهيئة الحمولة حقول إدخال للمعاملات التالية:
* **معرّف المصادقة**
المعرّف المستخدم لربط الحمولة بنسخة Reaper Node المُهيأة.
* **مضيف الخادم**
عنوان IP أو اسم المضيف لنقطة نهاية Reaper Node.
* **منفذ الخادم**
منفذ الشبكة الذي يوفره Reaper Node لبروتوكول الاتصال المحدد.
* **مفتاح التشفير**
مطلوب عندما يستخدم النقل المحدد التشفير. يجب أن تتطابق القيمة مع تهيئة التشفير المستخدمة من قبل Reaper Node. إذا كان التشفير معطلاً، فهذا الحقل غير مطلوب.
* **User-Agent**
قيمة تعريف عميل HTTP المستخدمة عند إنشاء اتصال HTTP/HTTPS الأولي. يجب أن تستخدم الحمولة قيمة User-Agent مدعومة من تهيئة Reaper Node المقابلة.
لا يلزم أن تكون قيمة User-Agent متطابقة عبر تهيئات Reaper Node المختلفة. يمكن للحمولة استخدام أي User-Agent مُعرّف كمدعوم من ملف تعريف Reaper Node المحدد، طالما أن التهيئة الناتجة متوافقة مع إعدادات النقل من جانب الخادم.
### مثال على التهيئة
يوضح المثال التالي نموذجًا لتهيئة نقل HTTPS مع معاملات المصادقة وعنونة الخادم والتشفير وUser-Agent:```cpp
const string AUTH_ID = "YOUR_AUTH_ID";
const string SERVER_HOST = "YOUR_SERVER_HOST";
const int SERVER_PORT = YOUR_SERVER_PORT;
const string KEY = "YOUR_ENCRYPTION_KEY";
const string DEFAULT_USER_AGENT = "YOUR_USER_AGENT";
bool VERIFY_SSL = true;
يمثل هذا التكوين ناقل HTTPS مع تمكين التشفير. القيم الموضحة أعلاه هي قيم نائبة ويجب استبدالها بالمعاملات المحددة بواسطة تكوين Reaper Node المقابل.
الهدف من نموذج C++ هو توفير نقطة انطلاق للتخصيص. يمكن للمستخدمين تعديل التكوين والمعاملات المتعلقة بالناقل وفقًا لملف تعريف Reaper Node الذي يختبرونه، ثم تجميع الحمولة المخصصة لبيئة المحاكاة المصرح بها.
يوفر جدول المستمعين (Listeners Table) نظرة عامة مركزية لجميع مستمعي C2 النشطين والمُهيَّأين. يعرض تفاصيل أساسية مثل اسم المستمع، والعنوان، وبروتوكول الشبكة، وطريقة التشفير، وملف تعريف التسريب، والحالة الحالية (نشط أو متوقف/غير متصل). من خلال هذه الواجهة، يمكن للمشغلين بدء المستمعين أو إيقافهم أو إعادة تسميتهم أو إزالتهم بسهولة. كما توفر وصولاً سريعًا إلى مفاتيح التشفير ومعرّفات المصادقة لإدارة اتصالات الـ beacon. يعمل هذا الجدول كمركز قيادة لتنسيق ومراقبة البنية التحتية لـ C2 الخاصة بك.

يتميز هذا الإصدار بواجهة رسومية كاملة تعمل على تبسيط عمليات محاكاة الخصوم من خلال إدارة المستمعين المركزية، وتتبع الجلسات في الوقت الفعلي، وملفات تعريف الاتصال القابلة للتخصيص، وسير عمل التسريب المتكامل، وعناصر تحكم مرنة للمشغلين لإدارة المهام بكفاءة.
⚠️ ملاحظة: هذا المشروع قيد التطوير النشط. تُضاف الميزات وتُحسَّن باستمرار.
| الميزة | الوصف |
|---|---|
| مستمعون متعددو البروتوكولات | DoH، HTTPS، HTTP، QUIC، Reverse TCP |
| تشفير لكل مستمع | AES، XOR، RC4، DES، ChaCha20، RSA |
| ملفات تعريف التسريب | Google Drive، OneDrive، Dropbox |
| قنوات C2 المتكاملة | قناة اتصال C2 متكاملة عبر Telegram وDiscord |
| دعم البروكسي | دعم بروكسي وإعادة توجيه SOCKS4 وSOCKS4a وSOCKS5 |
| خوارزمية توليد النطاقات الديناميكية | دعم DGA لمحاكاة بنية تحتية مرنة |
| بصمة JA3S | بصمات JA3S قابلة للتخصيص لمحاكاة حركة المرور وضبط ملف تعريف الشبكة |
| ملفات تعريف Malleable C2 | دعم ملفات تعريف Malleable C2 المجتمعية لمحاكاة حركة مرور شبكية مرنة |
| Stagers و Loaders | تقنيات stager و loader آلية مصممة لمحاكاة خصوم APT |
| أدوات متكاملة | مُشوِّه نصوص برمجية مدمج، ومجموعة أدوات تصيّد، واستضافة ملفات |
| توليد شهادات TLS | شهادات TLS موقّعة ذاتيًا تحاكي بائعين موثوقين |
| تخصيص HTTP | ترميز Base64 للـ URL وترويسات HTTP مخصصة لاتصال العميل والخادم معًا |
| مدير الجلسات في الوقت الفعلي | تتبع الحالة المباشر، ومراقبة الجلسات، وقدرات التحديث في الوقت الفعلي |
| تسمية مخصصة ومسارات URI | أسماء حملات يحددها المستخدم ومسارات URI قابلة للتكوين لمرونة تشغيلية |
| عناصر تحكم إعادة الاتصال والمهلة | تأخيرات إعادة اتصال قابلة للتكوين وحدود مهلة قابلة للتعديل لكل جلسة |
قم بتكوين إعدادات التسريب لكل جلسة لمزودي التخزين السحابي المدعومين مثل Google Drive وOneDrive وDropbox. تتيح لك واجهة ملف تعريف التسريب تحديد رموز الوصول إلى API ومسارات المجلدات الوجهة، مما يمكّنك من تخصيص سير عمل جمع البيانات لكل جلسة. يمكن لكل جلسة استخدام ملف تعريف التسريب الخاص بها، مما يسهّل توجيه البيانات المجمّعة إلى مزودي تخزين سحابي أو وجهات مختلفة حسب العملية.

تستخدم طبقة اتصال Telegram روبوت Telegram كوسيط بين خادم C2 والحمولة. يصادق خادم C2 على حساب Telegram باستخدام API ID وAPI Hash ورقم الهاتف المُهيَّأين، ثم يتصل بروبوت Telegram الذي تم إنشاؤه مسبقًا من خلال ذلك الحساب

يُضمَّن Bot Token الخاص بالروبوت في الحمولة، مما يسمح للحمولة بالتواصل مع الروبوت عبر Telegram API. تُرسَل الأوامر من خادم C2 إلى الروبوت، ويقوم الروبوت بإعادة توجيهها إلى الحمولة، التي تنفذ المهمة المستلمة وتعيد النتائج عبر نفس مسار الاتصال. يؤدي هذا إلى إنشاء قناة قيادة وتحكم ثنائية الاتجاه تستخدم Telegram كطبقة اتصال.

افتح @BotFather في Telegram وأنشئ روبوتًا جديدًا باستخدام /newbot.
/newbotbot
يُعد Bot Token مطلوبًا من قِبل وكيل Telegram للمصادقة مع Telegram Bot API.
افتح بوابة تطوير Telegram API الرسمية وأنشئ تطبيقًا جديدًا.
قم بتوليد بيانات الاعتماد التالية: https://my.telegram.org/apps
API IDAPI Hash
تُستخدم بيانات الاعتماد هذه من قِبل BEAR-C2 لمصادقة حساب Telegram المستخدم لإدارة اتصال الروبوت.
افتح Telegram Agent.cpp وقم بتكوين إعدادات اتصال Telegram.
يجب وضع Bot Token الناتج عن BotFather في /Stagers-Loaders/C2 Channel Agent Samples/Telegram Agent.cpp قبل تجميع الحمولة.

تدفق التكوين هو:
BotFather → Bot Token → payload.cpp → Compile
يُستخدم API ID وAPI Hash من قِبل تكامل Telegram في BEAR-C2، بينما يتم تكوين Bot Token في حمولة Telegram حتى تتمكن من التواصل مع روبوت Telegram المُهيَّأ.
تستبدل هذه المرحلة قناة اتصال القيادة والتحكم التقليدية بـ طبقة اتصال قائمة على Discord باستخدام Discord Gateway API. بدلاً من الاعتماد على خوادم مخصصة أو عناوين IP ثابتة أو نطاقات مخصصة، يتواصل المشغلون مع الغرسة المحاكاة عبر قناة Discord خاصة.

تستخدم طبقة اتصال Discord روبوتَي Discord متصلين عبر نفس قناة Discord. يتصل أحد الروبوتين بخادم C2، بينما يُخصَّص الروبوت الثاني للحمولة. يتواصل الروبوتان عبر قناة Discord المشتركة، مما يتيح إرسال المهام والتواصل بين خادم C2 والحمولة عبر Discord.
نظرًا لأن Discord لا يسمح للروبوتات بالتواصل مباشرة مع روبوتات أخرى، فإن استخدام قناة مشتركة يوفر مسار الاتصال بين الطرفين.

يستخدم وكيل Discord بوابة وواجهة Discord كطبقة اتصال بين الحمولة وBEAR-C2. يتطلب الإعداد تطبيقات Discord Bot، وقناة نصية مخصصة، وأذونات الروبوت المطلوبة، والقيم المقابلة المُهيَّأة في نموذج وكيل C++.
افتح "Discord Developer Portal" الرسمية (https://discord.com/developers/applications) وأنشئ تطبيقات Discord Bot المطلوبة للمحاكاة.
تستخدم قناة Discord C2 هويتَي Bot:
لكل تطبيق، افتح إعدادات Bot وقم بتوليد Bot Token المطلوب.

افتح تكوين Bot في Discord Developer Portal وقم بتمكين Message Content Intent.
يجب أن يمتلك Bot أيضًا الأذونات المطلوبة للقناة النصية في Discord المستخدمة في المحاكاة، بما في ذلك:
تسمح هذه الأذونات للـ Bot بالوصول إلى الرسائل من القناة المُهيَّأة وإرسال الرسائل عبر نفس مسار الاتصال. يتطلب Discord تفعيل Message Content Intent للتطبيقات التي تحتاج إلى استقبال محتوى الرسائل عبر API.

أنشئ قناة نصية خاصة مخصصة لوكيل Discord وأضف كلا تطبيقَي Bot إلى القناة.
تأكد من تمكين نفس الأذونات المُهيَّأة في Discord Developer Portal أيضًا لتطبيقات Bot في القناة.
انسخ Channel ID مع تمكين Discord Developer Mode. يوفر Discord الـ Channel ID عبر خيار Copy Channel ID عند تمكين Developer Mode.

يُستخدم نفس Channel ID من قِبل تكوين C2 ووكيل Discord بحيث يتواصل الطرفان عبر نفس قناة Discord.
افتح نموذج وكيل Discord الموجود في:
"Stagers-Loaders/C2 Channel Agent Samples/Discord Agent.cpp"
يوفر النموذج حقول تكوين لـ Discord Bot Token وChannel ID وBot User ID:

استبدل القيم النائبة بالقيم الخاصة بـ Payload Bot وقناة Discord المخصصة.
يحدد "BOT_USER_ID" حساب Bot المستخدم من قِبل الحمولة. يمكن نسخ Discord User IDs بعد تمكين Developer Mode.
في تكوين قناة Discord داخل BEAR-C2، قدّم C2 Bot Token وChannel ID وListener Name المقابلة.

يستخدم C2 Bot وPayload Bot نفس قناة Discord كمسار اتصال، بينما يصادق كل طرف باستخدام Bot Token الخاص به.
بعد اكتمال تكوين Discord ونموذج الحمولة، قم بتجميع وكيل C++ لاستخدامه في بيئة محاكاة الخصوم المصرح بها.
⚠️ ملاحظة: قيود قنوات C2
تفرض قنوات C2 قيودًا متعلقة بنقل البيانات وتحديد الـ Beacon عند استخدام منصات مراسلة خارجية كطبقة اتصال بين خادم C2 والـ Beacons
● قيود نقل البيانات
تفرض Telegram وDiscord حدًا أقصى لعدد الأحرف على الرسائل الفردية المتبادلة عبر واجهات API الخاصة بروبوتاتها. في BEAR C2، تعمل قناة C2 كطبقة نقل بين خادم C2 والـ Beacon، لذا ينطبق هذا القيد على البيانات المنقولة عبر القناة وليس على حجم حمولة الـ Beacon نفسها. قد تُرمَّز البيانات المرسلة من خادم C2 إلى الـ Beacon والبيانات المُعادة من الـ Beacon إلى خادم C2 بترميز Base64 قبل الإرسال. نظرًا لأن Base64 يزيد من حجم التمثيل المُرسَل، فإن كمية البيانات الأصلية التي يمكن نقلها في رسالة واحدة تكون أقل من حد الأحرف للمنصة.
[ Telegram ] 4096 حرفًا كحد أقصى لكل رسالة، و4000 حرف مُهيَّأة لنقل بيانات C2

[ Discord ] 2000 حرف كحد أقصى لكل رسالة، و1400 حرف مُهيَّأة لنقل بيانات C2

تُحفَظ الحدود المُهيَّأة عمدًا أقل من حدود المنصة لتوفير هامش كافٍ لبنية رسالة C2 وحمل الترميز. عندما تتجاوز البيانات الحد المُهيَّأ، يجب تقسيم البيانات المُرمَّزة إلى رسائل متعددة وإعادة تجميعها من قِبل الطرف المستقبِل.
● تحديد الـ Beacon وإسناد الاستجابات
تفرض قنوات C2 أيضًا قيدًا عندما تتشارك عدة Beacons نفس روبوت Telegram أو قناة Discord. تستخدم جميع الـ Beacons التي تتواصل عبر نفس الروبوت أو القناة نفس مسار الاتصال، لذا لا يمكن لخادم C2 بطبيعته تمثيل كل Beacon كجلسة اتصال مستقلة. على سبيل المثال، إذا تواصلت خمسة Beacons عبر نفس روبوت Telegram أو قناة Discord، فستظهر كمسار اتصال C2 واحد بدلاً من خمسة Beacons قابلة للتحديد بشكل مستقل.
يؤثر نفس القيد على استجابات الأوامر. عندما يُوزَّع أمر على عدة Beacons عبر نفس الروبوت أو القناة، تُعاد الاستجابات الناتجة عبر نفس مسار الاتصال. بدون آلية إضافية لتحديد الـ Beacon، لا يمكن لخادم C2 تحديد أي Beacon أنتج استجابة معينة بشكل موثوق.
الحل المباشر هو تخصيص روبوت مخصص لكل Beacon على Telegram، أو تكوين قناة أو روبوت معزول لكل Beacon على Discord. يؤدي هذا إلى إنشاء تعيين واحد لواحد بين الـ Beacon ومسار اتصاله، مما يسمح بتمييز الـ Beacons الفردية واستجاباتها. المقابل هو زيادة البنية التحتية وحمل الإدارة مع زيادة عدد الـ Beacons.
هذه القيود خاصة باستخدام منصات المراسلة كقنوات نقل C2 وهي مستقلة عن حمولة الـ Beacon نفسها.
● التأثير العملي
يقلل قيد حجم الرسالة من كمية البيانات التي يمكن نقلها دفعة واحدة، مما قد يزيد الوقت المطلوب لإرسال الأوامر واستقبال مخرجاتها
يؤدي استخدام روبوت Telegram أو قناة Discord مشتركة إلى ظهور عدة Beacons كـ Beacon واحد في جدول C2، بينما تُسلَّم الأوامر إلى جميع الـ Beacons التي تستخدم ذلك الروبوت أو القناة ولا يمكن إسناد الاستجابات بشكل موثوق إلى Beacon معين.
حاكِ حملات التصيّد الاحتيالي الموجّه عبر واجهة مخصصة لتكوين وإدارة سيناريوهات التصيّد خلال تمارين محاكاة الخصوم المصرح بها. توفر الوحدة عناصر تحكم في الحملة مثل حدود إرسال الضحايا، ومعاملات تصيّد قابلة للتكوين، وإدارة الجلسات، مما يسمح للمشغلين بالتحكم في سلوك الحملة وتقييم تفاعل المستخدمين مع سيناريوهات التصيّد المحاكاة. صُمِّم لدعم تقييمات التصيّد الخاضعة للرقابة مع تزويد المشغلين بقدر أكبر من الرؤية والتحكم في تنفيذ الحملة.

استضف الملفات ووزّعها عبر واجهة Host File مخصصة مع إعدادات خادم قابلة للتكوين وتسليم ملفات آلي. تُحمَّل الملفات المستضافة تلقائيًا عند الوصول إليها، دون الحاجة إلى تفاعل المستخدم أو مطالبة تنزيل يدوية. توفر الواجهة استضافة وتسليم ملفات مركزيًا لمحاكاة الخصوم الخاضعة للرقابة وسير عمل اختبار الأمان المصرح به.
يوفر مُشوِّه النصوص البرمجية محرك تشويش شامل يدعم حمولات PS1 وBAT وHTML وVBS وJS وPY مع طبقات تشويش متعددة قابلة للتكوين. يتضمن إعادة تسمية المتغيرات والدوال، وتشفير النصوص، وإدراج أكواد غير مفيدة، والتشويش متعدد الطبقات، وتقنيات مكافحة التنقيح، وتشفير الحمولة القائم على XOR. تزيد هذه الميزات من تعقيد التحليل، وتقلل من قابلية قراءة النص البرمجي، وتجعل الهندسة العكسية أكثر صعوبة بشكل كبير مع مساعدة الحمولات على مقاومة التحليل الساكن بشكل أفضل.
القائمة الكاملة لمجموعات APT التي حاكاها BEAR-C2 طوال فترة تطويره
| بلد المنشأ | روسيا 🇷🇺 | الصين 🇨🇳 | كوريا الشمالية 🇰🇵 | إيران 🇮🇷 |
|---|---|---|---|---|
| مجموعات APT |
Cozy Bear ✅ |
Mustang Panda ✅ |
| رموز مصادقة فريدة مع عناصر تحكم مدمجة في انتهاء الصلاحية لتعزيز الأمان |
| أدوات تقوية الجلسات | منظّف السجل، ومحدّد الجلسات، وإدارة مهلة المصادقة للجلسات النشطة |
| [**Labyrinth Chollima ✅**](https://github.com/S3N4T0R-0X0/APTs-Adversary-Simulation/tree/main/North%20Koreans%20APT/Labyrinth%20Chollima) [**Velvet Chollima ✅**](https://github.com/S3N4T0R-0X0/APTs-Adversary-Simulation/tree/main/North%20Koreans%20APT/Velvet%20Chollima) [**Famous Chollima ✅**](https://github.com/S3N4T0R-0X0/APTs-Adversary-Simulation/tree/main/North%20Koreans%20APT/Famous%20Chollima) [**Stardust Chollima ✅**](https://github.com/S3N4T0R-0X0/APTs-Adversary-Simulation/tree/main/North%20Koreans%20APT/Stardust%20Chollima) [**Ricochet Chollima ✅**](https://github.com/S3N4T0R-0X0/APTs-Adversary-Simulation/tree/main/North%20Koreans%20APT/Ricochet%20Chollima) [**Silent Chollima ✅**](https://github.com/S3N4T0R-0X0/APTs-Adversary-Simulation/tree/main/North%20Koreans%20APT/Silent%20Chollima) |
|
Helix Kitten |