
القيادة والتحكم المخصصة (C3). إطار عمل للنمذجة السريعة لقنوات C2 مخصصة، مع توفير التكامل مع مجموعات الأدوات الهجومية الحالية.

Build C3 (MSVC)/badge.svg?branch=master)
Build C3 (Clang)/badge.svg?branch=master)
C3 (القيادة والتحكم المخصصة) هو أداة تتيح للفرق الحمراء تطوير واستخدام قنوات قيادة وتحكم (C2) غير تقليدية بسرعة. وهو إطار عمل يوسّع أدوات الفريق الأحمر الأخرى، مثل منتج Cobalt Strike (CS) التجاري عبر ExternalC2، وهو مدعوم عند الإصدار. يتيح C3 للفريق الأحمر التركيز فقط على قناة C2 التي يريد تنفيذها، معتمدًا على متانة C3 وأدوات CS للعناية ببقية الأمور. تتيح هذه الكفاءة والموثوقية للفرق الحمراء العمل بأمان في بيئات العملاء الحساسة (من خلال ضمان مستوى احترافي من الاستقرار والأمان)؛ مع السماح بالتجريب الآمن والنشر السريع للتكتيكات والتقنيات والإجراءات (TTPs) المخصصة. وبالتالي، تمكّن الفرق الحمراء من محاكاة مهاجم واقعي متكيّف.
انظر هذه التدوينة للحصول على برنامج تعليمي مفصل.
لدليل المساهمة (دروس حول كيفية تطوير قناة Channel)، انظر هذه الصفحة.
| اسم القناة | المساهم |
|---|---|
| Mattermost | @mariuszbit |
| Asana | @tvgdb2 |
| GitHub | @sunn_y_k |
| Dropbox | @adm1nPanda |
| Cisco WebEx Teams | @tvgdb2 |
| JIRA | |
| Discord | |
| GoogleDrive | |
| Slack | |
| EWS Tasks | |
| OneDrive 365 Rest File (غير وظيفية) | |
| OneDrive 365 Rest Task (غير وظيفية) |
| الخدمة | المساهم |
|---|---|
| MSSQL | @checkymander |
| UNC Share File | |
| LDAP | |
| Printer Jobs |
المصطلحات الأكثر استخدامًا في C3:
Relays - مكوّنات مستقلة لشبكات C3. تتواصل باستخدام Interfaces. هناك نوعان من Relays: Gate Relays (أو Gateways) وNode Relays.Gateway - Relay خاص يتحكم في شبكة C3 واحدة. لا يمكن لشبكة C3 العمل بدون Gateway فعّال. يعمل Gateway كجسر من Node Relays إلى البنية التحتية للمهاجم. وهو مسؤول أيضًا عن التواصل مرة أخرى مع خادم C2 تابع لجهة خارجية (مثل Teamserver الخاص بـ Cobalt Strike). يجب دائمًا استضافة Gateways داخل بنية تحتية يتحكم بها المهاجم.Node Relay - ملف قابل للتنفيذ يتم تشغيله على مضيف مخترق. تتواصل Node Relays عبر إما فيما بينها أو مع .لتثبيت الحزم اللازمة لتجميع C3، يجب إضافة المكونات الفردية التالية إلى بيئة Visual Studio. يمكن تحقيق ذلك باستخدام ملف setup.exe الخاص بـ VS (مثل "c:\Program Files (x86)\Microsoft Visual Studio\Installer\setup.exe")، واختيار Modify وإضافة المكونات الفردية التالية:
بمجرد تثبيت هذه المكونات، قم بتشغيل موجه أوامر المطور الخاص بـ Visual Studio وقم بتشغيل ملف CreateBuild.bat. يجب أن تكون المخرجات موجودة في دليل Builds.
DevicesGatewayInterface - اسم عام يُطلق على أي شيء يسهّل إرسال واستقبال البيانات داخل شبكة C3. يتصل دائمًا بأحد Relays وهدفه توسيع قدرة Relay. يوجد حاليًا ثلاثة أنواع من Interfaces: Channels وPeripherals وConnectors.Devices - اسم شائع لكل من Channels وPeripherals. أُنشئ هذا التجريد لتعميم Interfaces التي يمكن استخدامها على Node Relays.Channel - Interface يُستخدم لنقل البيانات بين Relay وRelay آخر. تعمل Channels في أزواج ولا تدعم الإرسال من واحد إلى متعدد (انظر Negotiation Channels).Negotiation Channel - Channel خاص قادر على إنشاء اتصالات Channel عادية مع عدة Relays. عملية التفاوض آلية بالكامل. تدعم Negotiation Channels بروتوكول التفاوض فقط ولا يمكن استخدامها في أي إرسال آخر.Gateway Return Channel (GRC) - Channel المُعدّ الذي سيستخدمه Relay لإرسال البيانات مرة أخرى إلى Gateway. قد يكون GRC مسارًا عبر Relay آخر. يتم تلقائيًا تعيين أول Channel (الأولي) على Node Relay كـ GRC لذلك Node Relay.C3 Minimal MTU - الحد الأدنى من البيانات الذي يجب أن تكون كل قناة C3 قادرة على إرساله. حاليًا C3 Minimal MTU يساوي 64 بايت. ما لم تحتوِ دفعة أصغر من 64 بايت على حزمة كاملة، يتجاهلها Relay المستقبِل، ويحاول Relay المرسِل إعادة إرسال آخر جزء من البيانات.Peripherals - أداة اختراق خارجية (implant) تابعة لجهة خارجية من إطار عمل القيادة والتحكم. تتواصل Peripherals مع وحدات التحكم الأصلية الخاصة بها عبر Controller. على سبيل المثال، SMB beacon الخاص بـ Cobalt Strike.Connectors - تكامل مع إطار عمل قيادة وتحكم تابع لجهة خارجية. على سبيل المثال، واجهة 'External C2' التي يوفرها Teamserver الخاص بـ Cobalt Strike عبر أمر externalc2_start.Binders - اسم شائع لكل من Peripherals وConnectors.Device ID - معرّف ديناميكي يعنون بشكل فريد Device واحدًا على Relay.Agent ID - معرّف ديناميكي يعنون بشكل فريد Node Relay. سيكون لدى Node Relays المُنشأة من نفس الملف القابل للتنفيذ Agent IDs مختلفة.Build ID - معرّف ثابت مدمج في كل Relay. يبقى دون تغيير عبر عمليات إعادة التشغيل.Route ID - زوج من Agent ID وDevice ID. يُستخدم لوصف "مسار" واحد إلى Node Relay (قد تكون Node Relays قابلة للوصول عبر عدة Routes).Route - "مسار" إلى Node Relay. يحتفظ كل Relay بجدول لجميع Relays الفرعية التابعة له (وأبناء الأبناء، وأبناء أبناء الأبناء، وهكذا) إلى جانب Device IDs الخاصة بـ Channels المستخدمة للوصول إلى ذلك Relay بعينه (انظر Route ID). عندما تصل حزمة من Gateway إلى Node Relay، يُستخدم جدول التوجيه لاختيار Channel المناسب لإرسال الحزمة عبره إلى المستلم.Update Delay Jitter - التأخير بين التحديثات المتتالية لـ Interface (في حالة Channels - استدعاءات لأسلوب OnReceiveFromChannel). يمكن ضبطه ليكون عشوائيًا ضمن نطاق زمني محدد.