محققان امنیت سایبری، نسخه به روزرسانی شده یک بکدور به نام LODEINFO را کشف کردهاند که از طریق حملات فیشینگ هدفمند توزیع میشود. زمانی که کاربر یک فایل Word مخرب (از این پس Maldoc مینامیم) پیوست شده به ایمیل فیشینگ را باز میکند، نفوذ رخ خواهد داد (از فایلهای اگسل نیز در روزهای نخستین سوء استفاده میشد). این یافتهها از سوی شرکت ژاپنی ITOCHU Cyber & Intelligence به دست آمده است که اعلام کرده است این بدافزار با ویژگیهای جدید و همچنین تغییراتی در تکنیکهای ضد تجزیه و تحلیل (اجتناب از تجزیه و تحلیل) به روزرسانی شده است.
LODEINFO (نسخههای 0.6.6 و 0.6.7) برای اولین بار توسط کسپرسکی در نوامبر ۲۰۲۲ کشف گردید و قابلیتهای آن شامل اجرای shellcode دلخواه، گرفتن اسکرین شات و استخراج فایل به یک سرور کنترل شده توسط عامل تهدید بود.
ESET یک ماه بعد، حملاتی را فاش کرد که رسانهها، دیپلماسی، نهادهای عمومی، صنایع دفاعی و اتاقهای فکر ژاپن توسط LODEINFO مورد هدف قرار گرفته بودند. حملات با استفاده از LODEINFO در سال ۲۰۲۳ ادامه یافت و چندین نسخه از بدافزار کشف گردید. این بدافزار همانطور که فراوانی به روز رسانی نسخه آن نشان میدهد، همچنان به طور فعال در حال توسعه میباشد.
تحلیل و بررسی LODEINFO
جریان نفوذ
جریان نفوذ LODEINFO در ادامه این مقاله مورد بررسی قرار گرفته است. LODEINFO در سال ۲۰۲۳ مجددا مشاهده گردید که دارای تغییراتی نسبت به نسخههای پیشین خود بود و آن هم به روز رسانی Downloader Shellcode میباشد. مسیر نفوذ اولیه مانند نسخههای پیشین است. جریان نفوذ از سند Word مخرب (Maldoc) آغاز میشود. LODEINFO در نهایت منجر به تزریق کد مخرب به حافظه خواهد شد.
کد VBA در این Maldoc در سال ۲۰۲۳، به روزرسانی شده است و به طور خاص، کد Downloader Shellcodeها برای هر دو نوع ۳۲ و ۶۴ بیت در آن اضافه شدهاند و Shellcode مناسب، بسته به محیط مورد نظر انتخاب میشود. پذیرش معماری ۶۴ بیتی در سیستم عامل ویندوز یک چالش برای بسیاری از سازمانها است و LODEINFO نیز احتمالاً برای انطباق با معماری ۶۴ بیت تغییر کرده است.
تغییرات در جریان نفوذ از v0.6.8 به v0.7.1 که در سال ۲۰۲۳ یا نسخههای بعدی مشاهده گردید، اعمال شده است.
تزریق تمپلیت از راه دور
موارد پیچیدهتری در نسخه 0.6.9، LODEINFO مشاهده شده است که از Remote Template Injection یا اصطلاحا تزریق تمپلیت از راه دور در جریان نفوذ استفاده میکند. یک فایل Word با استفاده از Remote Template Injection باز میشود و تمپلیت را از سرور C2 مهاجم دانلود کرده و میخواند.
تمپلیت دانلود شده، بدافزاری است که معادل Maldoc ذکر شده در بالا است و حاوی کد VBA با Downloader Shellcode تعبیه شده میباشد. این در نهایت بدنه اصلی LODEINFO نامیده میشود. تصویر زیر تصویری از جریان نفوذ با تزریق تمپلیت از راه دور اضافه شده است.
خود فایل Word پیوست شده فقط تمپلیت را میخواند و تشخیص آن را به عنوان فعالیت مخرب دشوار میکند. این تکنیک احتمالاً برای جلوگیری از شناسایی توسط محصولات امنیتی در نظر گرفته شده است. برای تحلیل بیشتر ساختار فایل Word با استفاده از تزریق تمپلیت از راه دور، میتوان محتوای فایل word\_rels\settings.xml.rels\ را در فایل word بررسی کنیم. این نشان میدهد که فایل مورد نظر برای خواندن تمپلیت https://45.76.222[.]130/template.dotm طراحی شده است.
Maldoc
در ادامه به معرفی VBA موجود در Maldoc میپردازیم.
کد VBA تعبیه شده در Maldoc
کد VBA تعبیه شده در Maldoc شامل کدهای ۶۴ و ۳۲ بیتی Downloader Shellcode است.
ماکرو ابتدا معماری سیستم عامل دستگاه مورد نظر را بررسی میکند و سپس Downloader Shellcodeی را اجرا خواهد کرد که با آن معماری مطابقت دارد. هر Downloader Shellcode با استفاده از Base64 کدگذاری میشود و به تعداد قسمتهای تقسیم شده از هم جدا میشود. تصور می میگردد که این تکنیکی برای دور زدن مکانیزم شناسایی توسط راهکارهای امنیتی است. هنگامی که ماکرو اجرا میشود، پس از مونتاژ مجدد قطعات تقسیم شده، Shellcode رمزگشایی شده با استفاده از Base64 به حافظه تزریق میگردد.
بررسی زبان مایکروسافت آفیس
کد بررسی تنظیمات زبان مایکروسافت آفیس در نسخه 0.7.0 Maldoc مستقر شده است. نمونه مورد نظر، بررسی میکند که آیا تنظیمات Office ژاپنی است یا خیر. تصور میشود که این فقط برای کارکرد در محیط زبان مقصد ایجاد شده است.
جالب اینجاست که این ویژگی در نسخه 0.7.1 توسط مهاجم حذف شده است. علاوه بر این، نام فایل خود Maldoc از ژاپنی به انگلیسی تغییر کرده است. از این رو، ما معتقدیم که نسخه 0.7.1 احتمالاً برای حمله به محیطها به زبانهایی غیر از ژاپنی استفاده شده است.
Downloader Shellcode
Downloader Shellcode مورد استفاده در LODEINFO v0.7.1 یک بدافزار است که فایلی را که به صورت فایل PEM (از این پس به عنوان PEM جعلی نامیده میشود) را از سرور C2 دانلود و رمزگشایی میکند و در نهایت فایلهایی را برای آلوده شدن به LODEINFO ایجاد میکند. Shellcode، خود یک دانلودر بسیار ساده است، بنابراین ما نتایج تجزیه و تحلیل فرآیند رمزگشایی دادهها از فایل PEM جعلی را در این مقاله به اشتراک خواهیم گذاشت.
رمزگشایی فایل PEM جعلی
Downloader Shellcode، فایل PEM جعلی را از سرور C2 دانلود میکند و سپس فایل با استفاده از مراحل زیر رمزگشایی میشود:
- هدر و پاورقی فایل PEM جعلی حذف میشود.
- دادههای مرحله ۱ با استفاده از Base64 رمزگشایی میگردد.
- ۳ بایت اول از دادههای رمزگشایی شده در مرحله ۲ حذف میشوند.
- یک HMAC با استفاده از الگوریتم هش SHA1 از رمز عبور کدگذاری شده در دانلود Shellcode تولید میشود.
- HMAC تولید شده در مرحله ۴ به عنوان کلید برای AES استفاده میگردد و دادههای مرحله ۳ با استفاده از AES رمزگشایی میشوند.
- دادههای رمزگشایی شده در مرحله ۵ با استفاده از یک کلید XOR تک بایتی رمزگشایی میشوند.
گذرواژهها در نمونههایی که بررسی کردیم در قالب زیر هارد کد شدهاند. اگر این رمز عبور در دسترس نباشد، حتی اگر فایل PEM جعلی با موفقیت به دست آید، رمزگشایی دادههای بعدی بسیار دشوار خواهد بود.
استقرار Shellcode بکدور LODEINFO در حافظه
دادههای رمزگشایی شده در مرحله ۶ با یک ساختار داده منحصر به فرد طراحی شده است. آبجکتهایی مانند Frau.dll مخرب برای استفاده در مرحله بعد در آن تعبیه شده است. جزئیات ساختار به شرح زیر است:
دادههای بازیابی شده حاوی چندین آبجکت به شرح زیر هستند:
- exe
- dll
- exe_bak
هر آبجکت در یک فایل توسط Downloader Shellcode ایجاد میشود و در endpoint آلوده نصب میگردد؛ سپس Elze.exe اجرا خواهد شد. Elze.exe خود یک فایل قانونی است، اما Frau.dll مخرب را با استفاده از بارگذاری جانبی DLL بارگیری میکند. Frau.dll یک بدافزار بسیار ساده است که Shellcode بکدور LODEINFO را به عنوان یک پیلود در حافظه بارگذاری میکند.
با این حال، مبهم سازی در نسخههای v0.6.6، v0.6.8، و v0.6.9، با استفاده از Control-Flow Flattening (CFF) و کد ناخواسته بیشتر تقویت میشود. همانطور که در شکل زیر مشاهده میکنید، سمت چپ جریان برنامه بسیار پیچیده است. کد سمت راست شکل، بخشی از کد مربوطه است، اما بیشتر کد با CFF (زرد) و کد ناخواسته (خاکستری) پر شده است و در واقع فقط مقدار کمی از کد مخرب (سفید) استفاده شده است.
در نهایت، فایل Elze.exe_bak که دادهای با Shellcode بکدور LODEINFO است و با یک XOR تک بایتی کدگذاری شده است، توسط Frau.dll خوانده میشود و به عنوان یک پیلود، رمزگشایی میگردد.
شباهت با دانلودر شناخته شده DOWNIISSA
با انجام یک تحلیل دقیق، مشخص گردید که Downloader Shellcode مورد بررسی و دانلودر شناخته شده DOWNIISSA دارای سه شباهت با یکدیگر هستند. با این حال، ما معتقدیم که DOWNIISSA و Downloader Shellcode که مورد تحلیل و بررسی قرار دادیم، بر اساس ساختار خود از خانوادههای مختلف بدافزارها هستند.
شباهتها:
- مکانیزم وصله خودکار برای پنهان سازی کدهای مخرب
- روش رمزگذاری برای اطلاعات سرور C2
- ساختار دادههای رمزگشایی شده از فایل PEM جعلی
شباهت اول: مکانیزم وصله خودکار برای پنهان سازی کدهای مخرب
اولین شباهت مکانیزم وصله برای رمزگشایی خود Shellcode است. DOWNIISSA که در سال ۲۰۲۲ گزارش گردید، فرآیندی برای اصلاح خود Shellcode در هنگام اجرای آن داشت. Downloader Shellcode تازه یافت شده همچنین دارای مکانیزم خود اصلاحی یا Self-patching است.
اگرچه این مکانیزم (Self-patching) در DOWNIISA مشابه همان مکانیزمی است که در Shellcode انجام میشود، اما تفاوتهای واضحی نیز وجود دارد. DOWNIISSA از Base64 استفاده میکند، اما Downloader Shellcode فعلی از رمزگشایی XOR استفاده مینماید. کلید XOR یک به یک استفاده میشود و از 0X00 به 0XFF افزایش مییابد.
شباهت دوم: روش رمزگذاری برای اطلاعات سرور C2
شباهت دوم این است که روش رمزگذاری اطلاعات سرور C2 تعبیه شده در Shellcode یکسان میباشد. Downloader Shellcode شامل دو آدرس سرور C2 است که با یک XOR تک بایتی کدگذاری شدهاند. نه تنها متد رمزگذاری بلکه روش تعبیه نیز بسیار مشابه است.
شباهت سوم: ساختار دادههای رمزگشایی شده از فایل PEM جعلی
همانطور که در بالا ذکر گردید، ساختار دادههای رمزگشایی شده از فایل PEM جعلی یک ساختار منحصربهفرد میباشد و تایید شده است که از همان ساختار دادهای استفاده میکند که توسط DOWNIISA رمزگشایی شده است.
Shellcode بکدور LODEINFO
Shellcode بکدور LODEINFO ، یک بدافزار بدون فایل (fileless) است که به مهاجمان اجازه میدهد از راه دور به میزبانهای آلوده دسترسی داشته باشند و از آنها استفاده کنند. ویژگیهای زیر همانند اطلاعات منتشر شده هستند:
- آدرس سرور C2 از یک ساختار داده منحصر به فرد استفاده میکند.
- مکانیزمی که به آدرس دادههای تعبیه شده اشاره دارد، به عنوان مشخصه یا characteristic در نظر گرفته میشود.
- شناسه فرمان بکدور با استفاده از XOR دو بایتی مخفی میشود.
- ساختار و رمزگذاری دادههای ارتباطی با سرور C2 بسیار پیچیده است، همانطور که در شکل زیر نشان داده شده است.
- رمزگذاری فوق چندین بار از رمز Vigenere استفاده میکند.
تجزیه و تحلیل شرکت ژاپنی ITOCHU Cyber & Intelligence از نمونههای متعدد LODEINFO که در سال ۲۰۲۳ یافت شدند، تفاوتهای زیر را با اطلاعات منتشر شده قبلی نشان میدهد:
- تغییر در الگوریتم محاسبه هش برای به دست آوردن نام توابع API
- اضافه شدن دستورات بکدور
تغییر ۱: تغییر در الگوریتم محاسبه هش برای به دست آوردن نام توابع API
نسخه v0.7.0 از یک الگوریتم محاسبه هش جدید در مقایسه با v0.6.9 استفاده میکند. این تغییر، تطبیق امضاها را با استفاده از قوانین مشابه نمونههای قبلی غیرممکن میسازد.
الگوریتم محاسبه هش، توسط بدافزارها برای محاسبه هش نام توابع API و تجزیه آدرسهای تابع مورد استفاده قرار میگیرد. منطق محاسبه هش، شامل یک کلید XOR هاردکد شده است که برای هر نمونه متفاوت میباشد. این کلید برای رمزگشایی XOR استفاده میگردد، بنابراین مقادیر هش تعبیه شده در هر نمونه متفاوت است.
تغییر ۲: افزودن موارد بیشتر به دستورات بکدور
LODEINFO دستورات بکدور زیر را برای کنترل میزبانهای آلوده پیاده سازی میکند:
تعداد دستورات بکدور در نسخه 0.6.5 به ۱۱ مورد کاهش یافت، اما نسخه v0.7.1 ، تعداد۶ دستور را بازیابی نموده و دستور runas جدید را نیز اضافه کرده و مجموع آن را به ۱۸ مورد رسانده است. علاوه بر این، چهار دستور (keylog، ps، pkill، autorun) که در v0.7.2 و v0.7.3 حذف شده بودند، بازیابی شدهاند و محتوای دستور config (پیکربندی) که قبلاً پیغام ” Not Available ” را نشان میداد نیز پیاده سازی شده است.
دستور | شرح | v0.6.5 | v0.7.1 | v0.7.2 و v0.7.3 |
command | دستورات بکدور تعبیه شده را فهرست میکند. | فعال | فعال | فعال |
ls | لیستی از فایل ها را دریافت میکند. | حذف شده | فعال | فعال |
rm | یک فایل را حذف میکند. | حذف شده | فعال | فعال |
mv | انتقال یک فایل | حذف شده | فعال | فعال |
cp | یک فایل را کپی میکند. | حذف شده | فعال | فعال |
cat | یک فایل به C2 آپلود میکند. | حذف شده | فعال | فعال |
mkdir | یک دایرکتوری ایجاد میکند. | حذف شده | فعال | فعال |
send | یک فایل از C2 دانلود میکند. | فعال | فعال | فعال |
recv | یک فایل به C2 آپلود میکند. | فعال | فعال | فعال |
memory | Shellcode را به حافظه تزریق میکند. | فعال | فعال | فعال |
kill | یک فرآیند را توسط شناسه فرآیند خاتمه میدهد. | فعال | فعال | فعال |
cd | دایرکتوری را تغییر میدهد. | فعال | فعال | فعال |
ver | ارسال بدافزار و اطلاعات سیستم. این شامل نسخه فعلی سیستم عامل، نسخه بدافزار، شناسه فرآیند، مسیر فایل اجرایی، نام کاربری سیستم، دایرکتوری فعلی، نامهای C2 و Mutec است. | فعال | فعال | فعال |
یک اسکرین شات از دسکتاپ تهیه میکند. | فعال | فعال | فعال | |
ransom | فایل ها را با استفاده از یک کلید AES ایجاد شده رمزگذاری میکند و همزمان آن کلید AES را با استفاده از یک کلید RSA هاردکد شده، رمزگذاری میکند. | فعال | فعال | فعال |
comc | یک دستور را با استفاده از WMI اجرا میکند. | فعال | فعال | فعال |
config | تنظیمات را در رجیستری مینویسد (در نسخه 0.7.2 اجرا شده است، این تابع فقط پیام ” Not Available ” را قبل از نسخه 0.7.1 باز میگرداند). | Not Available (در دسترس نیست) | Not Available (در دسترس نیست) | فعال |
runas | یک دستور را به عنوان یک کاربر خاص اجرا میکند (پیادهسازی شده در v0.7.1). | N/A (در دسترس نیست) | فعال | فعال |
keylog | کلیدهای فشرده شده کیبرد، تاریخ و زمان و نام پنجره فعال را از endpoint مشکوک ذخیره میکند. از رمزگذاری XOR تک بایتی استفاده میکند و فایل در %temp%%hostname%.tmp ذخیره میشود. | حذف شده | حذف شده | فعال |
ps | لیست فرآیندها را نمایش میدهد. | حذف شده | حذف شده | فعال |
pkill | خاتمه فرآیند | حذف شده | حذف شده | فعال |
autorun | تنظیم و حذف دسترسی | حذف شده | حذف شده | فعال |
زیرساخت مهاجم
روند زیرساخت مهاجم که در سال ۲۰۲۳ مشاهده گردید در بین نسخهها ثابت میباشد و مهاجمان ترجیح میدهند از AS-CHOOPA استفاده کنند.
سخن پایانی
چندین نسخه از LODEINFO در سال ۲۰۲۳ و نسخه 0.7.3 در ژانویه ۲۰۲۴ مشاهده گردید. مهم است که همچنان مراقب باشید، زیرا احتمال زیادی وجود دارد که در آینده ویژگیهای جدید و تکنیکهای دور زدن مکانیزم شناسایی نیز در آن گنجانده شود. به عنوان یک اقدام متقابل، از آنجایی که هم Downloader Shellcode و هم Shellcode بکدور LODEINFO، بدافزارهای بدون فایل هستند، معرفی محصولی که بتواند بدافزار را در حافظه اسکن و شناسایی کند، برای شناسایی آن ضروری میباشد.
IoCها
MD5:
69dd7fd355d79db0325816569ae2129a – Maldoc
E82d98bae599cd172bb194adbdc76873 – zip file of above Maldoc
D1a925ddb6d0defc94afb5996ed148bd – Maldoc
9598b2af9dd1493dd213dbca56912af4 – Maldoc
2a9012499d15145b5f63700c05adc426 – Loader module
508aed3687c146c68ad16326568431ab – Loader module
60dea5b5f889f37f5a9196e040bce0eb – BLOB:encrypted LODEINFO v0.6.9
3d910e8ab29362ae36de73c6b70a7e09 – BLOB:encrypted LODEINFO v0.7.1
290c5f33a4f4735e386b8193b1abdcf9 – Artifact:unique data structure for malware set