روابط عمومی شرکت ایدکو (توزیعکنندهی محصولات کسپرسکی در ایران)؛ در آگست 2024، تیم ما یک بسته جرمافزار جدید پیدا کرد که نامش را SteelFox گذاشت. این تهدید که از طریق زنجیرههای پیچیده اجرا نظیر شلکد تحویل داده میشود، از سرویسها و درایورهای ویندوزی سوءاستفاده میکند. SteelFox بواسطه پستهای تالارهای گفتگو، ردیابهای تورنت و بلاگها پخش میشود و کارش تقلید از نرمافزارهایی است مانند Foxit PDF Editor و AutoCAD. همچنین از بدافزارهای سارق نیز برای استخراج دادههای کارت اعتباری قربانی و نیز جزئیاتی در مورد دستگاه آلوده استفاده میکند. این گزارش را مختصر شرح میدهیم:
- SteelFox از طریق پستهای انجمن و تورنتهای مخرب توزیع میشود.
- از طریق پینینگ SSL و TLSv1.3 با C2 خود ارتباط برقرار میکند. از دامنهای با IP در حال تغییر استفاده کرده و با استفاده از کتابخانه Boost.Asio پیادهسازی میشود.
- SteelFox می تواند امتیازات خود را از طریق بهرهبرداری از یک درایور آسیبپذیر افزایش دهد.
محصولات کسپرسکی این تهدید را به عنوان HEUR:Trojan.Win64.SteelFox.gen، Trojan.Win64.SteelFox شناسایی میکنند.*
جزئیات فنی
پسزمینه
در آگست 2024، به آلودگی بزرگی برخوردیم که بسته ناشناسی آن را موجب شده بود. این بسته شامل بدافزار ماینر و سارق بود. در طول بررسی ما، پی بردیم این کمپین فعالیت خود را در فوریه 2023 آغاز کرده است. گرچه سارق از آن زمان تکامل قابلملاحظهای نداشته اما دارد رفته رفته برای جلوگیری از شناسایی تغییر میکند. هیچ تغییر کاربردی هنوز افزوده نشده است اما نویسنده همه وابستگیهای لازم را آپدیت میکند.
آلودگی اولیه
بررسیهایی که انجام دادیم ما را به این حقیقت رساند که بردار اولیه حمله SteelFox شامل چندین نشریه مختلف روی تالارهای گفتگو و ردیابهای تورنت میشود. این پستها به دراپر SteelFox به عنوان راهی مؤثر برای فعالسازی محصول نرمافزاری قانون به صورت رایگان اشاره دارند. ما دیدهایم که این دراپر وانمود میکند کرک PDF Editor، JetBrains و AutoCAD است. گرچه این دراپرها کارایی تبلیغاتی دارند اما همچنین درست در کامپیوتر کاربر بدافزار پیچیده میکارند.
دراپر SteelFox
در این پژوهش، ما نمونهای را شرح میدهیم که کارش تقلید از فعالسازی برای Foxit PDF Editor است. مرحله اولیه کمپین SteelFox یک فایل قابل اجرای AMD64 تحت نام foxitcrack.exe با بخش بزرگ .rdata است. با قضاوت بر اساس آنتروپی بالای آن به نظر میرسد که فایل، پک شده است. در استارتآپ، برنامه با یک GUI خوشامدگویی میکند و از ما میخواهد مسیر نصب Foxit PDF Editor را انتخاب کنیم. از آنجایی که دایرکتوری نصب Foxit در پوشه Program Files قرار دارد، FoxitCrack دسترسی ادمین را که بعداً برای اهداف مخرب استفاده میشود درخواست میکند. زنجیره اجرا تا زمانی که فایلها بسته نشدهاند، قانونی به نظر میرسد. قبل از یک تابع قانونی، یک تابع مخرب درج میشود که مسئول انداختن کد مخرب بر روی سیستم کاربر هدف است. ابتدا، مرحله دوم (کد مخرب حذف شده) با الگوریتم AES-128 رمزگشایی میشود. پارامترهای آن نیز رمزگذاری میشوند - پس از رها شدن در مرحله اول رمزگشایی میشوند.
AES-128 از طریق دستورالعملهای SIMD بردار پیادهسازی میشود، بنابراین نیاز است که محموله به بلوکهای 16 بایتی تقسیم شود. در نسخه های بعدی دراپر، بازیگر همان الگوریتم را پیاده سازی کرد اما از پسوند مجموعه دستورالعمل AES-NI استفاده کرد. از آنجایی که آنها با بلوکهای 16 بایتی کار میکنند، به این معنی است که نیاز برای همترازی اندازه بار در جای خود باقی میماند. پس از آن، محموله جاسازی شده، که در واقع یک فایل اجرایی PE64 است، برای جلوگیری از شناسایی اصلاح می شود. مهرهای زمانی پیوند با یک تاریخ تصادفی در بازه زمانی بین مه و دسامبر 2022 همراه با نسخه پیونددهنده بازنویسی میشوند. دادههای ناخواسته تصادفی نیز در بخش .rdata درج میشوند تا از تشخیص هش جلوگیری شود. این کار با یک تجزیه کننده PE تعبیه شده انجام میشود.
PE دراپشده در یکی از این سه مسیر نوشته میشود. مسیر دقیق به نمونه دراپر بستگی دارد:
- C:\Program Files\Foxit Software\Foxit PDF Editor\plugins\FoxitPDFEditorUpdateService.exe
- C:\Program Files (x86)\Common Files\Adobe\AdobeGCClient\AGSService.exe
- C:\Program Files\Autodesk\AdODIS\V1\Setup\lpsad.exe
پارامترهای سرویس مخرب مقداردهی اولیه میشوند و بعد از این، لودر مرحله دوم سرویسی را میسازد که خود را برای شروع خودکار مینویسد. این کار باعث میشود در سیستم جا خشک کند و در طول ریبوتها فعال بماند.
لودر SteelFox
این سرویس از svchost.exe بعنوان سرویس ویندوز معمولی شروع میشود. ابتدا نام کامل فایل قابل اجرای فعلی را میگیرد و آن را با نامهای باینری سرویس برای بررسی اینکه آیا لودر به عنوان سرویس شروع شده یا نه مقایسه میکند. اگر چک، با موفقیت انجام شد، سرویس همه سرویسهای در حال اجرا را فهرست میکند (با وضعیت SERVICE_ACTIVE) و بدینتریب مسیرهای قابل اجرا و شرحیات را دریافت میکند. این راهی خاص است برای بررسی دیباگر چون اگر باینری به عنوان سرویس روع نکند، لودر استثنا قائل شده و ترک میکند. این الگوریتم در کد لودر مبهمسازی میشود اما بعد از ابهامزدایی شکلی به شرح زیر پیدا میکند:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
vector<QUERY_SERVICE_INFOW> vec;
get_services_list(vec);
std::wstring serv_name;
GetModuleFileNameW(0, exec_name, 256);
for (auto service : vec) {
SC_HANDLE hService = open_service(service.lpServiceName);
LPCWSTR *bin_name = get_service_bin_path(hService, service.lpServiceName);
if (!wstrcmp(exec_name, bin_name) {
serv_name = service.lpServiceName;
break;
}
}
if (serv_name.empty()) {
throw std::system_error;
}
|
اگر این بررسیها انجام شود، بدافزار یک جدول عملکرد ایجاد میکند که به مهاجم اجازه میدهد رمزگشایی و ایجاد کدهای پوسته را انجام دهد. همچنین حاوی یک مولد اعداد تصادفی به همراه متغیرهایی است. اکنون جریان اجرا به تابع StartServiceCtrlDispatcherW میرود. یک توزیع کننده را با عملکردی که مسئول رمزگشایی و تزریق است، ثبت میکند. وضعیت سرویس را کنترل میکند، سیگنال های راه اندازی مجدد و خاموش شدن سرویس و غیره را کنترل میکند. قبل از اجرای بار واقعی، بدافزار یک مکانیسم پایداری غیرمعمول را راه اندازی میکند: یک گام کوچک اما نسبتاً مهم. این مرحله سرویس AppInfo را راه اندازی میکند و سپس در آن بارگذاری میشود. این باعث میشود هرگونه اقدام کاربر علیه این لودر غیرممکن شود، زیرا حتی کپی کردن این نمونه نیز به امتیازات NT\SYSTEM نیاز دارد.
DLL هدف از طریق یک پوسته کد مخرب بارگیری و با AES-128 به همان روشی که قبلا در مرحله اولیه توضیح داده شد رمزگذاری میشود. رمزگشایی نسخه های بعدی نیز با دستورالعملهای AES-NI اجرا میشود. کد پوسته مخرب در سه مرحله اساسی بارگذاری میشود. ابتدا آرایهای از آدرسها را برای توابع WinAPI ایجاد میکند که در کد پوسته اجرا میشوند. سپس محموله با یک الگوریتم نسبتاً ساده مبتنی بر XOR رمزگشایی میشود. پس از رمزگشایی، کد پوسته با پارامترهای کدگذاری شده اجرا میشود.
Shellcode یک لودر اصلی است: از WinAPIهای وارد شده برای تخصیص حافظه برای بارگذاری مرحله نهایی و دسترسی به توابع کتابخانه استفاده میکند. این پوسته هیچ گونه حفاظتی در برابر اشکالزدایی اعمال نمیکند. این فقط یک لودر PE پایه است که به مرحله نهایی میرسد.
مرحله آخر SteelFox
در آغاز، این مرحله (DLL) با نامی رندوم تولیدشده، قفل یا میوتکسی[1] میسازد زیرا ارتباط شبکهایاش به شدت به خوانش چندگانه و شبکه I/O ناهمزمان وابسته است. این سرویس توسط پایپی به نام \\.\WinRing0_1_2_0 همراه میشود که به پروسه اجازه میدهد با درایور ارتباط بگیرد. این یک درایور کاملاً قدیمی است و آسیبپذیر به CVE-2020-14979 و CVE-2021-41285. به مهاجم اجازه میدهد تا مزیتها در NT\SYSTEM به محض مجاز شدن ارتباط مستقیم چکنشده با درایور بالا رود و مهاجم سپس کنترل خروجیهای فورواردشده به درایور را دست میگیرد. این درایور همچنین جزء ماینر XMRig است، بنابراین برای اهداف ماینینگ استفاده میشود. ارتباط با راننده در یک موضوع جداگانه انجام می شود. پس از مقداردهی اولیه درایور، نمونه ماینر را راه اندازی میکند. این یک فایل اجرایی اصلاح شده از XMRig با پرکنندههای کد ناخواسته را نشان میدهد. به یک استخر ماینینگ با اعتبارنامه هاردکد متصل می شود. جزء XMRig از یکی از مخازن در hxxps://github[.]com/cppdev-123 دانلود میشود. به نظر میرسد گاهی اوقات به روز رسانی دریافت میکند - ما فرض میکنیم این کار به منظور جلوگیری از شناسایی نسخههای قدیمی انجام میشود. پس از آن، بدافزار آدرس IP پشت دامنه ankjdans[.]xyz را که به عنوان یک سرور C2 عمل میکند، حل میکند. اگرچه دامنه هاردکد است، تغییر IP در پشت آن به مهاجم کمک میکند که شناسایی نشود. SteelFox این مشکل را از طریق Google Public DNS و DNS از طریق HTTPS (DoH) حل میکند. این به مهاجم اجازه میدهد تا وضوح دامنه را پنهان کند.
پس از وضوح IP موفقیت آمیز، بدافزار از طریق TLSv1.3 به سرور C2 خود متصل می شود. این مدل ورودی/خروجی از کتابخانههایی مانند Boost.Asio و wolfSSL استفاده میکند که به مهاجم اجازه میدهد تا ارتباط TLSv1.3 سرتاسر را پیادهسازی کند. برخلاف نسخه 1.2، نسخه 1.3 TLS یک راز جلسه را از یک کلید خصوصی از پیش انتخاب شده در مرحله دست دادن ایجاد می کند. در این مورد، راز مشترک با یک مولد اعداد تصادفی امن رمزنگاری شده ویندوز تولید میشود. علاوه بر این، SteelFox به طور کامل پین کردن SSL را برای اطمینان از عدم امکان شنود ارتباطات SSL پیادهسازی کرده است. جالب اینجاست که پین کردن SSL فقط برای ارتباط سرور C2 فعال است. وقتی ارتباط برقرار شد، سارق وارد بازی میشود. این مؤلفه میتواند فهرست بزرگی از پارامترهای کاربران نهایی را جمعآوری کند. مرورگرهای موجود در دستگاه قربانی را شمارش و سپس آنها را با فهرست مرورگرهای زیر مقایسه میکند:
chrome;
opera;
opera_gx;
brave;
firefox;
yandex;
wave;
avg;
avast;
vivaldi;
dragon;
chedot;
کوکیها، دادههای کارت اعتباری، تاریخچه مرور و فهرست مکانهای بازدید شده را استخراج میکند، مورد دوم فقط از Mozilla Firefox. این کار با یک کپی جاسازی شده از SQLite3 انجام میشود. از آنجایی که این سرویس به صورت NT\SYSTEM اجرا میشود، ImpersonateLoggedOnUser API را فراخوانی میکند تا زمینه امنیتی برای ایجاد یک Dump SQL در آینده را بدست آورد.
لیست کامل دادههای استخراج شده در زیر ارائه شده است.
نام داده
|
جزئیات
|
داده مرورگر
|
کوکیها، کارتهای اعتباری، لوکیشن، تاریخچه سرچ
|
نرمافزار
|
نرم افزارهای نصب شده، راهکارهای آنتی ویروس، سرویسهای در حال اجرا، افزونههای نصب شده
|
اطلاعات سیستم
|
تاریخ ساخت (در صورت امکان)، نسخه، ویرایش، تاریخ نصب
|
اطلاعات شبکه
|
رابطهای بیسیم، شبکهها و گذرواژهها (استخراج شده به صورت متن ساده)
|
سیم
|
دادههای سیمکارت (در صورت قابل کارکرد بودن)
|
درایوها
|
نامهای درایو و انواع آن «خارجی، قابل جابجایی و غیره»، فضای خالی درایو
|
محیط
|
متغیرهای محیطی تخلیه
|
زمان
|
زمان محلی و محدوده زمانی
|
اطلاعات کاربر
|
نام کاربری، اطلاعات راه اندازی، رمز عبور، منطقه سیستم، اطلاعات حساب های راه دور (از طریق NetUserEnum WinAPI)
|
RDP
|
سشنها و اطلاعات سشن (از طریق وین ای پی آی WTSQuerySessionInformationW)
|
دسکتاپ
|
آیکونهای نصبشده و نرمافزارهای در حال اجرا
|
پروسهها
|
کارکرد مموری و دامنه صفحات
|
دادهها سپس در یک JSON بزرگ که به C2 ارسال می شوند ترکیب میشوند.
قربانیها
این کمپین هیچ فرد یا سازمان خاصی را هدف قرار نمیدهد. در عوض، در مقیاس بزرگتری عمل نموده و همه کسانی را که به نرمافزار آسیبدیده برخورد میکنند آلوده میکند. در زمان انجام این تحقیق، راهکارهای امنیتی ما بیش از 11000 بار این تهدید را شناسایی کرده بودند. کاربران برنامه های مختلف محبوب مانند AutoCAD، JetBrains و Foxit هدف قرار می گیرند. ما قربانیان این کمپین را در سراسر جهان شناسایی کردهایم که اکثر کاربران آسیبدیده در برزیل، چین، روسیه، مکزیک، امارات متحده عربی، مصر، الجزایر، ویتنام، هند و سریلانکا هستند.
نسبتدهی تهدید
برای این کمپین بخصوص، هیچ نسبتی نمیشود داد. پستهایی با لینک به فعالگرها یا با اکانتهای دستکاریشده ساخته شدند یا توسط کاربران نابلد که نمیدانستند دارند تهدید توزیع میکنند. این کمپین روی پلتفرم چینی Baidu و ردیابهای روسی تورنت به شدت فعال بوده است.
نتیجهگیری
SteelFox این اواخر ظهور کرده و بسته جرمافزار تمام عیار است. این بسته قادر است دادههای کاربری مختلف را که ممکن است باب دندان مهاجمین پس این کمپین باشد جمع کند. کارکرد به شدت پیچیده C++ مدرن و ترکیبش با آرشیوهای خارجی به این بدافزار قدرت اعجابانگیزی میدهند. کارکرد پین TLSv1.3 و SSL ارتباط امن و جمعآوری دادههای حساس را تضمین میدهد. SteelFox هیچ سازمان یا فرد خاصی را هدف نگرفته. در عوض در مقیاس بالا کار میکند و هر بیت داده را که بشود بعداً پردازش کرد استخراج میکند. برای تضمین محافظت شما در برابر تهدیدهایی از این جنس، اپها را از منابع رسمیشان نصب کنید و از راهکار امنیتی مطمئنی که جلوی دانلود نرمافزارهای آلوده را میگیرد استفاده نمایید.
شاخصهای دستکاری
توجه: شاخصهای این بخش در زمان انتشار معتبر است.
هش فایل
بار
fb94950342360aa1656805f6dc23a1a0
لودر
دراپر
مسیرهای فایل
C:\Program Files (x86)\Foxit Software\Foxit PDF Editor\plugins\FoxitPDFEditorUpdateService.exe
C:\Program Files (x86)\Common Files\Adobe\AdobeGCClient\AGSService.exe
C:\Program Files\Autodesk\AdODIS\V1\Setup\lpsad.exe
مسیرهای PDB
d:\hotproject\winring0\source\dll\sys\lib\amd64\WinRing0.pdb
دامنهها و آیپیها
hxxps://ankjdans[.]xyz
205.185.115[.]5
یوآرالهای مخرب
hxxps://github[.]com/DavidNguyen67/CrackJetbrains
hxxps://github[.]com/TrungGa123/Active-all-app-Jetbrains/
hxxps://github[.]com/tranquanghuy-09/activate-intellij-idea-ultimate/
hxxps://github[.]com/TaronSargsyan123/ScaraSimulation
hxxps://raw.githubusercontent[.]com/tranquanghuy-09/activate-intellij-idea-ultimate/main/jetbrains-activator.exe
hxxps://raw.githubusercontent[.]com/TaronSargsyan123/ScaraSimulation/main/jetbrains-activator.exe
hxxps://raw.githubusercontent[.]com/TrungGa123/Active-all-app-Jetbrains/main/jetbrains-activator.exe
hxxps://raw.githubusercontent[.]com/DavidNguyen67/CrackJetbrains/main/jetbrains-activator.exe
hxxps://www.cloudstaymoon[.]com/2024/05/06/tools-1
hxxps://squarecircle[.]ru/Intelij/jetbrains-activator.exe
hxxps://drive.google[.]com/file/d/1bhDBVMywFg2551oMmPO3_5VaeYnj7pe5/view?usp=sharing
hxxps://github[.]com/cppdev-123
[1] mutex
کسپرسکی آنلاین (ایدکو)
کسپرسکی اسم یکی از بزرگترین شرکتهای امنیتی و سازنده آنتی ویروس است که برخی از کاربران اشتباهاً این شرکت و محصولات آنتی ویروس آن را با عناوینی نظیر کسپرسکای،کاسپرسکی، کسپراسکای، کسپراسکای، و یا کاسپراسکای نیز میشناسد. همچنین لازم به ذکر است مدیرعامل این شرکت نیز یوجین کسپرسکی نام دارد.