tel 021 - 88053081 - 91094270‏ tel office[at]amnafzar.net

تحلیل و مقایسه جامع زیرساخت‌های فرماندهی و کنترل (C2)

تحلیل و مقایسه جامع زیرساخت‌های فرماندهی و کنترل (C2)

۱۴۰۴/۰۵/۱۵

تحلیل و مقایسه جامع زیرساخت‌های فرماندهی و کنترل (C2)

فهرست مطالب


در دنیای امنیت سایبری امروز، عملیات تیم قرمز (Red Team) دیگر فقط به پیدا کردن یک راه نفوذ اولیه خلاصه نمی‌شود. چالش اصلی و هنر واقعی، پس از نفوذ است یعنی ماندگاری در شبکه هدف، پنهان ماندن از چشم تیم آبی و سیستم‌های امنیتی و اجرای دقیق کامند و دستورات در یک محیطی که به شدت تحت نظارت قرار دارد. در قلب این مرحله که به آن مرحله پس از نفوذ (Post-Exploitation) می‌گوییم، زیرساخت‌های فرماندهی و کنترل یا همان C2 قرار دارند.  این ابزارها ستون فقرات عملیات تیم قرمز هستند و به اپراتورها اجازه می‌دهند کنترل سیستم‌های قربانی تسخیر شده را حفظ کنند و در شبکه حرکت کرده (Lateral Movement)  و به اهداف نهایی خود برسند.

این مستند، نتیجه تحقیق روی رفرنس اصلی ابزارها، گیت هاب و مقالات علمی و همچنین مقداری فعالیت عملی بر روی تعدادی از کلیدی‌ترین ابزارهای C2 است. هدف ما این است که ابزار استاندارد و شناخته‌شده‌ی صنعت یعنی Cobalt Strike  را در کنار رقبای قدرتمند و جدیدی مثل Brute Ratel، پلتفرم‌های ماژولار و متن‌بازی (Open-Source) مانند Mythic  و Sliver و گزینه‌های جدیدتری مثل Adaptix  وHavoc  قرار دهیم. تمرکز این تحلیل بر روی چگونگی عملکرد فنی این ابزارهاست تا بتوانیم بر اساس سناریوی عملیاتی، مشخصات هدف و سطح امنیت آن، بهترین ابزار را برای کار و هدف خود انتخاب کنیم.

 

آماده‌سازی آزمایشگاه

قبل از وارد شدن در دنیای این ابزارها، یک نکته حیاتی وجود دارد: تمام تست‌ها باید در یک محیط ایزوله و امن انجام شوند.

مراحل ایجاد لابراتوار:

  1. مجازی‌سازی:  می توان از ابزارهایی مانند VMware یا Hyper-V یاQEMU  یا  VirtualBoxاستفاده کرد که بنده از VMware استفاده می کنم.
  2. ماشین‌ها: حداقل دو ماشین مجازی نیاز داریم:
    • ماشین مهاجم: یک توزیع لینوکس مانند Kali Linux که سرور C2 روی آن اجرا می‌شود.
    • ماشین هدف :(Victim) یک نسخه از ویندوز مثلاً Windows 10 که به عنوان سیستم قربانی عمل می‌کند.
  3. دسترسی به ابزارها:
    • متن‌باز :(Open-Source) ابزارهایی مثل Mythic ، Sliver و Adaptix و... را می‌توان به راحتی از ریپازیتوری GitHub آن‌ها دانلود کنیم.
    • تجاری :(Commercial) برای ابزارهای تجاری مانند Cobalt Strike و  Brute Ratel باید لایسنس خریداری کرد اما من از نسخه کرک شده استفاده کردم.

 

بررسی عمیق ابزارها

1. Cobalt Strike 

Cobalt Strike  که در سال ۲۰۱۲ معرفی شد، برای سال‌ها استاندارد طلایی ابزارهای C2 بوده است. قدرت اصلی آن نه فقط در قابلیت‌های Post-Exploitation بلکه در انعطاف‌پذیری فوق‌العاده کانال ارتباطی‌اش است.

  • معماری و ایجنت :(Beacon)
    • سرور: Team Server  مبتنی بر Java که به چندین اپراتور اجازه همکاری همزمان را می‌دهد.
    • ایجنت (Agent) : ایجنت معروف آن Beacon نام دارد؛ یک  Payloadکه در حافظه سیستم هدف اجرا می‌شود و به صورت دوره‌ای با یک ریتم نامنظم یا Jitter برای جلوگیری از شناسایی با سرور تماس (ارتباط) می‌گیرد.
    • ارتباط:  از پروتکل‌های رایجی مثل  HTTP/S،DNS  و SMB برای ارتباط استفاده می‌کند و قابلیت اتصال Peer-to-Peer  بین  Beaconها از طریق  SMB، حرکت در شبکه داخلی را بسیار آسان می‌کند.
  • تکنیک کلیدی:: Malleable C2  این قابلیت، امضای Cobalt Strike است Malleable C2 به اپراتور اجازه می‌دهد پروفایل‌های ارتباطی بسازد که ترافیک شبکه Beacon را دقیقاً شبیه ترافیک یک نرم‌افزار قانونی (مثلاً آپدیت ویندوز یا ترافیک گوگل کروم) ریبیلد کند.  این کار از طریق یک فایل پروفایل (.profile) انجام می‌شود که تمام جزئیات ارتباط مثل  URIو هدرهای HTTP و نحوه پنهان‌سازی داده‌ها در کوکی‌ها یا پارامترها را مشخص می‌کند.

همچنین در این پروفایل می‌توان رفتار Beacon پس از نفوذ را نیز کنترل کرد؛ مثلاً مشخص کرد که برای اجرای دستورات، کد خود را به کدام پراسس قانونی سیستم مثل(rundll32.exe)  تزریق کند تا از دید سیستم‌های مانیتورینگ مخفی بماند.

  • نقاط قوت و ضعف:
    • قوت:  بسیار بالغ و پر از ویژگی‌های کاربردی، قابلیت همکاری تیمی عالی و مستندات قوی.
    • ضعف:  به دلیل محبوبیت و استفاده گسترده، الگوهای ترافیکی آن برای تیم‌های آبی لو رفته و بسیار شناخته شده است و اگر پروفایل Malleable C2 به خوبی کانفیگ و نوشته نشود، به راحتی قابل شناسایی است. همچنین تجاری و گران است.

 

 

2. Brute Ratel C4 (BRc4) 

 Brute Ratel که در سال ۲۰۲۰ عرضه شد، با یک هدف اصلی طراحی شده است: دور زدن و فلج کردن سیستم‌های پیشرفته تشخیص و . EDR اگر Cobalt Strike سعی می‌کند عادی به نظر برسد Brute Ratel تلاش می‌کند کاملاً نامرئی باشد.

  • معماری و ایجنت (Badger)
    • سرور: C4 Server  مبتنی بر Go
    • ایجنت (Agent):  ایجنت آن Badger  نام دارد که بسیار پیشرفته است و تکنیک‌های فرار از شناسایی را در سطح کرنل سیستم‌عامل پیاده‌سازی می‌کند.
  • تکنیک‌های کلیدی فرار از شناسایی (Evasion)
    • فراخوانی مستقیم Syscall : اکثر EDRها با نظارت روی کال کردن توابع سطح بالای ویندوز (WinAPI) فعالیت‌های مشکوک را شناسایی می‌کنند. Badger این لایه را دور زده و با شناسایی شماره Syscall مربوطه، مستقیماً با هسته سیستم‌عامل صحبت می‌کند و EDR را کاملاً فریب می‌دهد.
    • غیرفعال‌سازی ETW : قابلیت Event Tracing for Windows (ETW) یکی از منابع اصلی داده برای EDRها، به خصوص Microsoft Defender است Badger می‌تواند با پچ کردن تابع  EtwEventWrite  در حافظه، جلوی ارسال هرگونه لاگ از فرآیند خود را بگیرد.
    •  Sleep Obfuscation : زمانی که ایجنت در حالت Sleep قرار دارد، برای EDRها بهترین فرصت برای اسکن حافظه است. Badger با رمزگذاری بخش‌های حافظه خود در این حالت، این اسکن‌ها را بی‌اثر می‌کند.
  • نقاط قوت و ضعف:
    • قوت: تکنیک‌های فرار فوق‌العاده پیشرفته و تمرکز ویژه بر مقابله با  EDR/XDRهای مدرن و بروز.
    • ضعف: ابزاری جدیدتر با مستندات کمتر . همچنین تجاری است.

 

3. Mythic 

Mythic  فلسفه ای کاملاً متفاوت دارد. این یک ابزار نیست، بلکه یک پلتفرم Open-Source برای ساخت ابزارهای C2 سفارشی است. تمام اجزای آن ماژولار و قابل تعویض هستند، که به اپراتور انعطاف‌پذیری بی‌نظیری می‌دهد.

  • معماری مبتنی بر Docker : کل پلتفرم Mythic بر اساس میکروسرویس‌ها و کانتینرهای Docker کار می‌کند. وب‌سرور، رابط کاربری، پروفایل‌های ارتباطی و انواع ایجنت‌ها، هر کدام یک کانتینر داکر مجزا هستند که از طریق  RabbitMQ  با هم ارتباط برقرار می‌کنند. این معماری به ما اجازه می‌دهد مثلاً یک ایجنت نوشته شده به زبان C# مانند Apollo را با یک پروفایل ارتباطی مبتنی بر Slack ترکیب کنیم، بدون اینکه این دو از وجود هم خبر داشته باشند.

 

  • انعطاف‌پذیری در عمل:
    • انواع ایجنت :(Payload Types) می توان ایجنت خود را به هر زبانی نوشت یا از ایجنت‌های آماده استفاده کرد:  Go (Poseidon)، C# (Apollo)، Python (Apfell) و . ... این حرکت به ما امکان می‌دهد ایجنتی را انتخاب کنیم که برای سیستم‌عامل هدف بهینه‌ترین باشد.
    • پروفایل‌های ارتباطی :(C2 Profiles) می‌توان نحوه ارتباط ایجنت با سرور را تعریف کرد. پروفایل‌های آماده برای HTTP، WebSockets، Slack، GitHub  و... وجود دارد.
    • رابط کاربری تحت وب: دارای یک داشبورد وب بسیار کامل با قابلیت همکاری تیمی همزمان است.

 

  • نقاط قوت و ضعف:
    • قوت: متن‌باز، فوق‌العاده ماژولار و قابل سفارشی‌سازی، ایده‌آل برای سناریوهای غیر استاندارد.
    • ضعف: نصب و راه‌اندازی اولیه آن به دلیل معماری مبتنی بر داکر کمی زمانبر و پیچیده‌تر از ابزارهای دیگر است.

4. Sliver 

 Sliver یک جایگزین متن‌باز و مدرن برای Cobalt Strike است که به طور کامل با زبان Go نوشته شده است.

  • مزایای معماری مبتنی بر :Go
    • کراس-پلتفرم(Cross-Platform): هم سرور و هم ایجنت Sliver به راحتی روی ویندوز، لینوکس و مک‌اواس اجرا می‌شوند.
    • باینری‌های مستقل: پی‌لودهای Go به صورت یک فایل باینری واحد و بدون نیاز به هیچ وابستگی کامپایل می‌شوند که اجرای آن‌ها را بسیار ساده می‌کند.
    • عملکرد بالا: زبان Go برای مدیریت همزمان هزاران ارتباط بسیار بهینه است.
  • ویژگی‌های کلیدی:
    • ارتباطات امن: به صورت پیش‌فرض از پروتکل‌های امنی مانند mTLS و WireGuard پشتیبانی می‌کند.
    •  :DNS Canary از یک تکنیک جالب برای شناسایی تیم آبی استفاده می‌کند. قبل از اتصال به سرور اصلی، یک درخواست DNS به یک ساب دامین تصادفی ارسال می‌کند. اگر تیم آبی آن دامنه را در Sandbox تحلیل کرده و به آن پاسخ دهد، سرور Sliver متوجه می‌شود که تحت نظر است و ایجنت اصلی را فعال نمی‌کند.
  • نقاط قوت و ضعف:
    • قوت: متن‌باز، راه‌اندازی و استفاده سریع و آسان، مناسب برای تست‌های نفوذ سریع و محیط‌های چند پلتفرمی.
    • ضعف: به اندازه ابزارهای دیگر غنی از ویژگی های فراوان نیست.

 

5. Adaptix 

Adaptix  یک فریم‌ورک نسبتاً جدید است و بر روی قابلیت سفارشی‌سازی و توسعه‌پذیری تمرکز دارد.

  • معماری و ویژگی‌ها:
    • سرور آن با Golang و کلاینت گرافیکی (GUI) آن با C++ QT نوشته شده که آن را چندپلتفرمی می‌کند.
    • از معماری ماژولار پشتیبانی می‌کند که اجازه می‌دهد ماژول‌های سفارشی برای Listenerها و Agentها اضافه شوند (Extenders).
    • از Beacon Object Files (BOFs) برای اجرای تسک های مختلف ساپورت می‌کند.
  • نقاط قوت و ضعف:
    • قوت: قابل توسعه و مناسب برای سناریوهای خاصی که نیاز به سفارشی‌سازی عمیق دارند.
    • ضعف: به عنوان یک فریم‌ورک جدید، کمتر در سناریوهای واقعی تست شده و مقداری مستندات کمتری نسبت به دیگر ابزارها دارد.

6. Havoc 

 Havoc فریم‌ورکی است که با رویکردی کاملاً مدرن و با تمرکز بر عملکرد و پنهان‌کاری طراحی شده و به طور کامل با C++ نوشته شده است.

  • ویژگی‌های پیشرفته :Evasion
    •  :Sleep Obfuscation مشابه  Brute Ratel، از تکنیک‌های پیشرفته برای مخفی کردن ایجنت در حافظه هنگام حالت Sleep استفاده می‌کند.
    • تکنیک‌های تزریق کد پیشرفته:  از روش‌هایی مانند Module Stomping و Thread Hijacking برای اجرای کد در فرآیندهای دیگر به شیوه‌ای بسیار مخفیانه بهره می‌برد.
  • نقاط قوت و ضعف:
    • قوت:  عملکرد بسیار بالا با مصرف منابع کم، و نرخ شناسایی بسیار پایین توسط  EDRها طبق تست‌های انجام شده.
    • ضعف: مانند ابزار جدید، جامعه کاربری و مستندات آن در حال رشد است.
 

 

مقایسه فنی و استراتژیک

جدول مقایسه فنی جامع

ویژگی

Cobalt Strike

Brute Ratel C4

Mythic C2

Sliver

Adaptix

Havoc

هزینه

تجاری

تجاری

متن‌باز

متن‌باز

متن‌باز

متن‌باز

زبان اصلی

Java, C

C++, Go

Go, Python, React

Go

Go, C++ QT

C++

رابط کاربری

GUI, Team Server

GUI

Web UI

Console, Web UI

GUI, Console

Teamserver UI

روش اصلی فرار

شبیه‌سازی ترافیک (Malleable C2)

دور زدن مستقیم EDR (Syscalls, ETW Patch)

سفارشی‌سازی کامل پشته C2

ارتباطات رمزنگاری‌شده قوی (mTLS, WG)

قابلیت‌های بومی و Extenders سفارشی

Sleep Obfuscation، تزریق پیشرفته

پروتکل‌های C2

HTTP/S, DNS, SMB

HTTPS, DoH, SMB, TCP, Custom

HTTP/S, DNS, mTLS, WireGuard, Slack...

HTTP/S, DNS, mTLS, WireGuard

HTTP/S, SMB, TCP, Custom

HTTP/S, Custom TCP/UDP

پیچیدگی

بالا (نیاز به تسلط بر پروفایل‌ها)

بسیار بالا نیاز به درک عمیق OS

متوسط (پیچیدگی در ساخت، سادگی در استفاده)

پایین (راه‌اندازی و استفاده سریع)

متوسط

بالا

 

چه زمانی از کدام ابزار استفاده کنیم؟

  •  Cobalt Strike : برای عملیات‌های کلاسیک و طولانی مدت که در آن هدف اصلی، پنهان ماندن در نویز شبکه برای مدت طولانی است و همکاری تیمی اهمیت دارد،  Cobalt Strike با یک پروفایل Malleable C2 خوب، گزینه ای قدرتمند است.
  •  Brute Ratel یا Havoc : اگر هدف ما یک سازمان با سطح امنیتی بسیار بالا و مجهز به EDR/XDR های نسل جدید است، این دو ابزار از پایه برای این چالش طراحی شده‌اند و بهترین شانس موفقیت را به ما می‌دهند.
  •   Mythic : زمانی که با یک محیط غیر استاندارد (مثل سرورهای لینوکسی خاص یا Station های کاری مک) روبرو هستیم یا نیاز به یک کانال ارتباطی کاملاً سفارشی (مثلاً از طریق یک اپلیکیشن داخلی) داریم، انعطاف‌پذیری  Mythic  عالی است.
  •  Sliver : برای تست‌ نفوذ سریع و عملیات‌هایی که در آن سرعت راه‌اندازی و قابلیت کراس-پلتفرم اهمیت بالایی دارد،  Sliver یک ابزار فوق‌العاده کارآمد و قابل اعتماد است.
  •  Adaptix : برای سناریوهای بسیار خاص که نیاز به نوشتن ماژول‌ها و توسعه‌پذیری عمیق برای یک هدف یونیک داریم، Adaptix می‌تواند گزینه‌ی مناسبی باشد.

 

در آخر

انتخاب ابزار C2 یک تصمیم استراتژیک است و هیچ گزیه بهترینی برای همه شرایط وجود ندارد. یک اپراتور حرفه‌ای به یک ابزار وابسته نیست، بلکه باید با درک عمیق از معماری و قابلیت‌های هرکدام، بهترین ترکیب را برای شکستن سیستم دفاعی هدف انتخاب کرد.