
بازگشت دوباره ی بدافزار Zloader
بدافزار ZLoader یک تروجان ماژولار است که بر اساس سورس کد ZeuS لو رفته است. بدافزار Zloader پس از یک وقفه تقریبا دو ساله با تغییراتی در تکنیک های مبهم سازی، الگوریتم تولید دامنه (DGA) و ارتباطات شبکه بازگشت.
اخیراً، بدافزار ZLoader یک ویژگی anti-analysis (ضد تجزیه و تحلیل) مشابه آنچه در کد اصلی ZeuS 2.x وجود داشت معرفی کرده است. این ویژگی اجرای باینری Zloader را به دستگاه آلوده محدود می کند. این ویژگی ZeuS توسط بسیاری از انواع بدافزارهای مشتق شده از سورس کد خود از جملهZloader کنار گذاشته شده است.
بررسی رجیستری در بدافزار ZLoader
نمونههای بدافزار ZLoader با نسخههای بالاتر 2.4.1.0 نشان می دهد که اگر روی سیستم دیگری هم کپی و اجرا شوند، به طور ناگهانی به کار خود خاتمه می دهند. اینکار به دلیل بررسی رجیستری ویندوز برای وجود یک کلید و مقدار خاص آن است.
اسکرین شات زیر نشان دهنده ی بررسی ناموفق در رجیستری ویندوز است.
کد پایتون زیر بوسیله یک الگوریتم برای تکرار در تولید کلید رجیستری استفاده می شود.
اگر جفت key/value رجیستری به صورت دستی ایجاد شود (یا این بررسی پچ شده باشد)، Zloader با موفقیت خود را به یک فرآیند جدید تزریق می کند. با این حال، پس از اجرای تنها چند دستورالعمل، دوباره خاتمه می یابد. این به دلیل بررسی ثانویه در هدر MZ Zloader است.
پیشتر در سایت مقاله ای در مورد بدافزار purple fox قرار داده شده است که میتوانید در لینک زیر آنرا مطالعه فرمایید.
بررسی هدر MZ
یک DWORD در هدر MZ در افست 0x30 وجود دارد که تنها پس از تزریق به یک فرآیند جدید اجرا میشود. DWORD مورد استفاده در بررسی نمونه تجزیه و تحلیل شده در تصویر زیر قابل مشاهده است.
DWORD در افست 0x30 بخشی از ده کلمه رزرو شده است که از آفست 0x28 به آفست 0x3C سربرگ MZ میرود. این بایت ها معمولا تهی هستند. با این حال در مثال بالا، بدافزار حاوی یک عدد صحیح (0xAAD01244) بود که با اندازه فایل (0x29A00) مقایسه شده است. از آنجایی که این عدد صحیح یک عدد بسیار بزرگ است، بررسی با شکست مواجه می شود. کد دیکامپایل شده بررسی اندازه فایل در شکل زیر نشان داده شده است.
کاری که توسعهدهندگان بدافزار در اینجا انجام میدهند، استفاده از هدر MZ اضافی DWORD بهعنوان یک اشارهگر برای افست seed است که هدف از بررسی را توضیح میدهد. این به دلیل بازنویسی DWORD پس از اجرای اولیه است. اگر اشاره گر فراتر از باینری باشد، نشان می دهد که seed قبلاً نوشته شده است و نیاز به شروع مجدد را از بین می برد.
این نشان میدهد که باینری اولیه برای آلودگی سیستم باید دارای یک seed پوچ باشد، با MZ DWORD در 0x30 که فاصله seed را نگه میدارد. این آفست با یک QWORD شبه تصادفی تولید شده از طریق الگوریتم Mersenne Twister مقداردهی اولیه می شود و یک seed کدگذاری شده باقی می ماند که در هر نمونه آلوده متفاوت است.
شکل زیر کد دیکامپایل شده را نشان می دهد که در آن یک seed در حال تولید و نوشتن است.
بدون تنظیم مقادیر seed و هدر MZ، نمونه Zloader روی دستگاه دیگری اجرا یا نصب نمیشود، مگر اینکه پچ شده باشد یا اگر محیط با همه رجیستری و مسیرها/نامهای دیسک، همراه با تمام مصنوعات اصلی آنها در دیوایس قربانی تکرار شود.
محتوای value رجیستری بدافزار ZLoader
در نسخههای قبلی Zloader، یک کلید رجیستری و یک مقدار حاوی برخی از اطلاعات ماشین (مسیر نصب، شناسه کامپیوتر/ربات، کلید RC4 خاص قربانی و غیره) وجود داشت، مشابه ZeuS PeSettings که در بخش بعدی بررسی خواهیم کرد. جفت key/value با الگوریتم ZeuS VisualEncrypt و RC4 و با استفاده از کلید RSA موجود در پیکربندی استاتیک به عنوان کلید رمزگذاری شد.
اکنون، یک مقدار اضافی با استفاده از seed که قبلا ذکر شد ایجاد شده است. شکل زیر کلیدهای رجیستری و مقادیر اضافه شده به سیستم قربانی در طول فرآیند آلوده شدن را نشان می دهد.
محتوا دارای طول ثابت 1418 بایت است و با RC4 اما بدون لایه VisualEncrypt اضافی رمزگذاری شده است. کلید RC4 نیز بر اساس seed تولید شده در حین عملیات ایجاد می شود. سپس برای ایجاد نام کلید و مقدار رجیستری استفاده می شود.
قالب و محتوای رمزگشایی شده به شرح زیر است:
ساختار برای هر ورودی به 64 بایت تقسیم می شود. ساختار اول مسیر باینری در داخل %APPDATA% است و موارد زیر ماژول های Zloader هستند.
پیاده سازی ZeuS
سیزده سال از افشای سورس کد ZeuS 2.0.8 می گذرد، اما هنوز به طور گسترده توسط هکرها مورد استفاده قرار می گیرد. تکنیکی که در بخش بالا توضیح داده شد و توسط Zloader برای ذخیره اطلاعات نصب و جلوگیری از اجرا شدن بر روی یک سیستم متفاوت استفاده شد، توسط ZeuS v2 نیز انجام شده بود، اما در اینجا به روشی متفاوت اجرا شد.
در باینری ZeuS، یک بخش همپوشانی به نام PeSettings وجود داشت که در آن اطلاعات نصب به جای رجیستری ذخیره میشد. بخش پوشش رمزگذاری شده ZeuS در شکل زیر نشان داده شده است.
هدر رمزگشایی شده از سه DWORD تشکیل شده است:
• Magic word (DAVE)
• CRC32 of the data
• Size of the data
اگر اندازه داده ها برابر با 0xC باشد، به این معنی است که تروجان نصب نشده است و برای تولید تمام اطلاعات مورد نیاز، مانند شناسه کامپیوتر/ربات، مسیرهای نصب و کلید RC4 مخصوص ماشین، اقدام به آلودگی می کند.
سپس، ZeuS مجدداً PeSettings را رمزگذاری میکند و دادههای همپوشانی را با آن جایگزین میکند، در حالی که هدر CRC و اندازه داده DWORD را تغییر میدهد.
در زیر می توانید ساختار PeSettings را به شکل رمزگشایی آن مشاهده کنید:
هنگام تلاش برای اجرای نمونه ای که قبلاً نصب شده است، شناسه رایانه/ربات تولید می شود و اگر با نمونه ذخیره شده در PeSettings مطابقت نداشته باشد، ZeuS خارج می شود. اگر مسیرهای نصب هم مطابقت نداشته باشند، همین اتفاق می افتد.
SHA256 Hashes:
• cba9578875a3e222d502bb6a85898939bb9e8e247d30fcc0d44d83a64919f448
• 85962530c71cd31c102853d64a8829f93b63bd1406bdec537b9d8c200f8f0bcc
• b1a6bf93d4ee659db03e51a3765d4d3c2ee3f1b56bd9b701ab5939d63f57d9ee
• 85b1a980eb8ced59f87cb5dd7702e15d6ca38441c4848698d140ffd37d2b55e6
Malicious URLs (defanged):
• https://eingangfurkunden[.]digital/
• https://citscale[.]com/api.php
• https://adslsdfdsfmo[.]world/
• https://gycltda[.]cl/home/wp-api.php
نتیجه گیری
در نسخه های اخیر، بدافزار ZLoader یک رویکرد مخفیانه برای آلودگی های سیستم اتخاذ شده است. این تکنیک ضد تجزیه و تحلیل جدید، Zloader را برای شناسایی و تجزیه و تحلیل چالش برانگیزتر می کند. نمونههای تحلیلشده توسط ThreatLabz همگی از قبل آمادهسازی شدهاند و استراتژی توزیع هدفمندتری را پیشنهاد میکنند.
پیشتر در سایت در مورد بدافزاری با ماهیت تروجانی به نام BazarBackdoor مقاله ای قرار داده شده است که در لینک زیر میتوانید آنرا مطالعه نمایید:
منابع:
Zscaler
Cybersecsentinel
Unboxhow