Cavern Manticore؛ رمزگشایی یه فریمورک C2 ماژولار مرتبط با ایران
خلاصهٔ کاملتر
به گزارش بخش تحقیقات Check Point (CPR)، از اوایل ۲۰۲۶ یه فریمورک فرمانودهیِ ماژولار جدید به اسم Cavern ردیابی شده که گروه تهدید Cavern Manticore ازش استفاده میکنه؛ یه گروه APT نزدیک به ایران که عمدتاً سازمانهای اسرائیلی، بهخصوص ارائهدهندههای IT و بخش دولتی رو هدف میگیره. به گفتهٔ چکپوینت، این گروه با وزارت اطلاعات ایران (MOIS) مرتبطه و همپوشانی فنی با گروههایی مثل MuddyWater و Lyceum داره.
نکتهٔ محوری از نظر نویسنده اینه که کل فریمورک روی یه پایهٔ مشترک .NET سواره، ولی عمداً به سه فرمت باینری متفاوت کامپایل شده: .NET Framework (فقط IL)، Mixed-Mode C++/CLI (ترکیب IL و کد نیتیو) و NativeAOT روی .NET 8 (فقط نیتیو). نکتهٔ جالب اینه که هیچ پکر، درهمریزی جریان کنترل یا رمزنگاری رشتهای وجود نداره؛ در عوض خودِ فرمتِ کامپایل نقش لایهٔ ضدتحلیل رو بازی میکنه، چون هر کدوم رو باید با یه زنجیرهٔ ابزار جدا مهندسی معکوس کرد و تحلیلگر مدام باید بینشون سوییچ کنه.
طبق گزارش، زنجیرهٔ اجرا با سوءاستفاده از قابلیت بهروزرسانی نرمافزار SysAid شروع میشه. چکپوینت تأکید میکنه که SysAid آسیبپذیر یا نفوذشده نبوده؛ مهاجم از قبل به محیط قربانی دسترسی داشته و فقط از یه قابلیت مشروعِ استقرار نرمافزار سوءاستفاده کرده. از این راه یه بستهٔ side-loading مستقر میشه که یه باینری قانونی، یه DLL تروجانیشده (همون Cavern Agent) رو بارگذاری میکنه و اون هم یه ماژول ارتباطی نیتیو رو صدا میزنه تا به سرور C2 وصل بشه و بعد ماژولهای بیشتری رو با فرمانِ اپراتور پایین بکشه.
یکی از مکانیزمهای فنیِ جالب، شیوهٔ میزبانیِ ماژولهاست. نویسنده توضیح میده که ایجنت بهجای بارگذاری ماژولها تو AppDomain پیشفرض، برای هر اجرای ماژول یه AppDomain اختصاصی میسازه، یه پروکسی رو از مرز دامنه رد میکنه، ماژول رو اجرا میکنه و بعد کل AppDomain رو unload میکنه. چون اسمبلیهای لودشده تو AppDomain پیشفرض بدون بستن کل پروسه پاک نمیشن، این ترفند یه اقدام ضدفارنزیکه: ماژولها بعد از اجرا تمیز از حافظه حذف میشن و اثری برای تحلیل باقی نمیمونه. بیلدهای جدیدتر ایجنت موقع اجرا هم دایرکتوری کاری رو پاکسازی میکنن و همهچی جز ماژول ارتباطی، فایل تنظیمات و لاگها رو حذف میکنن.
ماژول ارتباطی که با NativeAOT کامپایل شده (حدود ۵.۵ مگابایت با هزاران تابع stripشده) در عمل یه دیسپچرِ کامل HTTP و WebSocketه. به گفتهٔ نویسنده، همین فرمت تحلیل رو سختتر میکنه: مقایسهٔ رشتهها بهجای استفاده از heap رشتهها، بهصورت ثابتهای عددیِ inline توی دستورهای مقایسه کامپایل میشه، و رشتههای خواندنی مثل آدرسها و هدرها فقط موقع اجرا تو حافظه «هیدریت» میشن. برای همین یه اسکنِ ساده روی فایل دیسک تقریباً هیچ رشتهٔ مفیدی برنمیگردونه. ترافیک C2 هم با یه XOR ساده (کلید 0x48) کدگذاری و بعد برای مسیر HTTP در Base64 قرار میگیره، و یه User-Agent ثابتِ مایکروسافت Edge روی همهٔ درخواستها میشینه که خودش یه اثرِ پایدار برای شناسایی میسازه.
ماژولهای پساانتفاع، صرفنظر از فرمت، یه رابط یکسان دارن و مجموعهٔ فرمانهاشون تو یه enum مشترک با ۶۱ شناسهٔ فرمان تعریف شده که هر بلوکش به یه دستهٔ کاربردی نگاشت میشه. این قابلیتها شامل کاوش فایلسیستم و دیتابیس (کوئری SQL)، کوئری و شمارش کاربران و گروههای LDAP، شناسایی شبکه (اسکن پورت، جدول ARP، شمارش شیرها و درایوهای شبکه) و تونلزنی میشه. چند بازهٔ فرمان (مثل مدیریت پروسه، رجیستری و سرویس) تو نمونههای بهدستاومده پیادهسازی نشدن، که به گفتهٔ نویسنده یعنی حداقل یه ماژول هنوز به دست تحلیلگرها نرسیده.
نکتهٔ انسانیِ جالبی هم تو گزارش هست: چند رشتهٔ خطا تو کد به زبان اولشخص، با لحن عصبانی و فحش نوشته شده، درست مثل یه اپراتور که داره با ابزار خودش کلنجار میره. نویسنده میگه اینها اونجور دیاگنوستیکهای خنثی و صیقلیای نیستن که یه code generator تولید میکنه و به دست انسانِ پشت پروژه اشاره دارن. در نهایت، به گفتهٔ چکپوینت اکثر نمونهها روی VirusTotal نرخ شناسایی صفر یا خیلی پایین دارن و نقطهٔ ورودِ اولیه در چند نفوذ، سوءاستفاده از نرمافزارهای مانیتورینگ و مدیریت از راه دور (RMM) موجود در سازمان بوده.
نکات کلیدی:
- Cavern یه فریمورک C2 ماژولار روی .NET مرتبط با گروه ایرانیِ Cavern Manticore علیه اهداف اسرائیلیه
- بهجای پکر و آبفاسکیشن، از سه فرمت کامپایل متفاوت بهعنوان لایهٔ ضدتحلیل استفاده میکنه
- ایجنت هر ماژول رو تو یه AppDomain جدا اجرا و بعد unload میکنه تا اثر فارنزیک نمونه
- ترافیک C2 با XOR کلید 0x48 و بعد Base64 کدگذاری میشه و User-Agent ثابت یه اثر شناساییه
- ماژولهای پساانتفاع قابلیت کاوش فایل و دیتابیس، کوئری LDAP، شناسایی شبکه و تونلزنی دارن
- نقطهٔ ورود اولیه در چند مورد، سوءاستفاده از نرمافزار RMM موجود در سازمان بوده




