بدافزار VOID#GEIST
محققان امنیت سایبری یک کمپین بدافزاری چند مرحلهای پیچیده را کشف کردهاند که برای ارائه بارهای تروجان دسترسی از راه دور (RAT) رمزگذاری شده به اسکریپتهای دستهای متکی است. این کمپین که با نام VOID#GEIST شناسایی شده است، چندین خانواده RAT از جمله XWorm، AsyncRAT و Xeno RAT را مستقر میکند.
زنجیره حمله از یک اسکریپت دستهای مبهمسازیشده استفاده میکند که مجموعهای از اقدامات را برای جلوگیری از شناسایی آغاز میکند. این اقدامات شامل راهاندازی یک اسکریپت دستهای اضافی، راهاندازی یک محیط اجرای پایتونِ جاسازیشدهی قانونی و رمزگشایی کدهای مخربِ رمزگذاریشدهی shellcode است. shellcode پس از تزریق به نمونههای جداگانهای از فرآیند explorer.exe ویندوز با استفاده از تکنیکی به نام تزریق فراخوانی رویه ناهمگامِ Early Bird (APC) مستقیماً در حافظه اجرا میشود.
فهرست مطالب
ارائه بدافزار مبتنی بر اسکریپت: یک مدل تهدید مدرن
عاملان تهدید مدرن به طور فزایندهای بدافزارهای اجرایی مستقل سنتی را کنار میگذارند و به سمت چارچوبهای توزیع لایهای و مبتنی بر اسکریپت میروند که رفتار کاربر مشروع را تقلید میکنند. مهاجمان به جای استقرار فایلهای اجرایی قابل حمل (PE) مرسوم، خطوط لوله چند جزئی را که چندین فناوری مشروع و محیطهای اسکریپتنویسی را با هم ترکیب میکنند، هماهنگ میکنند.
اجزای معمول مورد استفاده در این چارچوبها عبارتند از:
- اسکریپتهای دستهای که برای هماهنگسازی توالی آلودگی استفاده میشوند.
- دستورات PowerShell که مرحلهبندی مخفیانهی بار داده را تسهیل میکنند.
- زمانهای اجرای قانونی تعبیهشده که قابلیت حمل بین سیستمها را تضمین میکند.
- شلکد خام مستقیماً در حافظه اجرا میشود تا پایداری و کنترل را حفظ کند.
این رویکرد اجرای بدون فایل، فرصتهای تشخیص مبتنی بر دیسک را به میزان قابل توجهی کاهش میدهد. هر مرحله به صورت جداگانه، هنگامی که به طور مستقل بررسی میشود، نسبتاً بیخطر به نظر میرسد و اغلب شبیه فعالیتهای مدیریتی معمول است و به مهاجمان اجازه میدهد بدون ایجاد هشدارهای امنیتی فوری، در محیطهای آسیبپذیر فعالیت کنند.
دسترسی اولیه از طریق فیشینگ و زیرساخت Cloudflare
نقطه ورود حمله با یک اسکریپت دستهای مخرب که از طریق ایمیلهای فیشینگ ارسال میشود، آغاز میشود. این اسکریپت از زیرساخت میزبانی شده در دامنه TryCloudflare بازیابی میشود. پس از اجرا، اسکریپت عمداً از تلاشهای افزایش امتیاز جلوگیری میکند و در عوض کاملاً در محدوده مجوزهای کاربر فعلی وارد شده عمل میکند.
این استراتژی به بدافزار اجازه میدهد تا ضمن ادغام شدن در عملیات روتین سطح کاربر، جای پای اولیه خود را محکم کند. با اجتناب از اقداماتی که نیاز به امتیازات بالا دارند، این حمله احتمال بروز هشدارهای امنیتی یا درخواستهای مدیریتی را کاهش میدهد.
حواسپرتی بصری و تکنیکهای اجرای مخفیانه
پس از اجرا، مرحله اول بدافزار یک سند جعلی را برای پرت کردن حواس قربانی اجرا میکند. گوگل کروم در حالت تمام صفحه باز میشود تا یک سند مالی یا فاکتور ارائه شده به صورت PDF را نمایش دهد. در حالی که کاربر روی سند تمرکز میکند، فعالیت مخرب در پسزمینه ادامه مییابد.
همزمان، یک دستور PowerShell برای اجرای مجدد اسکریپت دستهای اصلی با پارامترهای اجرایی پنهان اجرا میشود. استفاده از پارامتر -WindowStyle Hidden مانع از نمایش پنجره کنسول قابل مشاهده میشود و تضمین میکند که فعالیت مخرب از کاربر پنهان میماند.
ماندگاری از طریق اجرای راهاندازی در سطح کاربر
برای حفظ پایداری پس از راهاندازی مجدد سیستم، این بدافزار یک اسکریپت دستهای کمکی را در دایرکتوری راهاندازی کاربر ویندوز مستقر میکند. این مکان تضمین میکند که هر زمان که قربانی به سیستم وارد میشود، اسکریپت به طور خودکار اجرا شود.
این مکانیزم ماندگاری عمداً نامحسوس است. این بدافزار به جای استفاده از تکنیکهای نفوذیتر مانند تغییر کلیدهای رجیستری سیستم، ایجاد وظایف زمانبندیشده یا نصب سرویسها، منحصراً به رفتار استاندارد راهاندازی در سطح کاربر متکی است. از آنجا که این رویکرد کاملاً در چارچوب امتیازات کاربر فعلی عمل میکند، از فعال شدن درخواستهای افزایش امتیاز جلوگیری میکند و احتمال شناسایی توسط ابزارهای نظارت بر رجیستری را کاهش میدهد.
چارچوب بازیابی و رمزگشایی بار داده
در مرحله بعدی زنجیره آلودگی، بدافزار با یک دامنه TryCloudflare تماس میگیرد تا اجزای اضافی payload را که در آرشیوهای ZIP بستهبندی شدهاند، بازیابی کند. این آرشیوها حاوی ماژولهای مورد نیاز برای رمزگشایی و اجرای payloadهای نهایی بدافزار هستند.
بایگانی دانلود شده معمولاً شامل اجزای زیر است:
- runn.py - یک لودر مبتنی بر پایتون که مسئول رمزگشایی و تزریق ماژولهای shellcode رمزگذاری شده به حافظه است.
- new.bin - کد مخرب رمزگذاری شدهی shellcode مرتبط با XWorm
- xn.bin - کد مخرب رمزگذاری شده مربوط به Xeno RAT
- pul.bin - کد مخرب رمزگذاری شده مربوط به AsyncRAT
- a.json، n.json و p.json - فایلهای کلیدی که توسط بارگذار پایتون برای رمزگشایی پویای پیلودهای shellcode در زمان اجرا استفاده میشوند.
این طراحی ماژولار به مهاجمان این امکان را میدهد که پیلودهای مختلف را بهطور مستقل اجرا کرده و فقط در صورت نیاز آنها را فعال کنند.
زمان اجرای پایتون تعبیهشده برای قابلیت حمل و مخفیکاری
پس از استخراج آرشیو، بدافزار یک محیط اجرای پایتونِ جاسازیشدهی قانونی را که مستقیماً از python.org دریافت کرده است، مستقر میکند. جاسازی یک مفسر قانونی، وابستگی به هرگونه نصب پایتون که ممکن است از قبل روی سیستم آسیبدیده وجود داشته باشد را از بین میبرد.
از دیدگاه یک مهاجم، این مرحله چندین مزیت استراتژیک را ارائه میدهد. بدافزار به یک محیط اجرایی مستقل تبدیل میشود که قادر به رمزگشایی و تزریق بار داده بدون نیاز به وابستگیهای خارجی است. این امر قابلیت حمل در سیستمهای مختلف را بهبود میبخشد، قابلیت اطمینان را افزایش میدهد و با استفاده از اجزای نرمافزاری قانونی، به پنهانکاری عملیاتی کمک میکند.
اجرای درون حافظهای چندین بدافزار RAT
سپس از محیط اجرایی پایتون تعبیهشده برای اجرای اسکریپت runn.py loader استفاده میشود. loader، shellcode مرتبط با XWorm را رمزگشایی کرده و آن را با استفاده از تزریق Early Bird APC به یک نمونه در حال اجرا از explorer.exe تزریق میکند.
برای استقرار Xeno RAT، این بدافزار از یک فایل باینری قانونی مایکروسافت به نام AppInstallerPythonRedirector.exe استفاده میکند که برای فراخوانی پایتون و اجرای اجزای مورد نیاز استفاده میشود. متعاقباً از همین تکنیک تزریق برای استقرار AsyncRAT استفاده میشود و تضمین میکند که تمام payloadها به طور کامل در حافظه اجرا میشوند بدون اینکه آثار اجرایی سنتی روی دیسک باقی بمانند.
معماری ماژولار و سیستم اعلان فرماندهی و کنترل
مرحله نهایی حمله شامل ارسال یک سیگنال HTTP بیکن (HTTP beacon) حداقلی به زیرساخت فرماندهی و کنترل (C2) تحت کنترل مهاجم است که در TryCloudflare میزبانی میشود. این سیگنال تایید میکند که سیستم با موفقیت به خطر افتاده و آماده دریافت دستورالعملهای بیشتر است.
اگرچه اهداف خاص این کمپین هنوز ناشناخته هستند، اما زنجیره آلودگی، معماری بسیار ماژولاری را نشان میدهد. مهاجمان به جای استقرار یک بدافزار بزرگ، اجزا را به صورت تدریجی در چندین مرحله معرفی میکنند. این طراحی، انعطافپذیری و تابآوری عملیاتی را بهبود میبخشد.
از دیدگاه تشخیص، یک شاخص رفتاری قابل توجه در طول کمپین پدیدار میشود: تزریق مکرر فرآیند به explorer.exe در فواصل زمانی کوتاه. این الگو میتواند به عنوان یک سیگنال قوی برای مدافعانی باشد که سعی در مرتبط کردن فعالیتهای مشکوک در مراحل مختلف چرخه عمر حمله دارند.