خانه » بدافزار BLOODALCHEMY، کشورهای جنوب شرق آسیا را مورد هدف قرار داد

بدافزار BLOODALCHEMY، کشورهای جنوب شرق آسیا را مورد هدف قرار داد

توسط Vulnerbyte
99 بازدید
بدافزار BLOODALCHEMY

محققان شرکت Elastic Security، بدافزار BLOODALCHEMY را در حمله به سازمان‌های دولتی در جنوب و جنوب شرق آسیا شناسایی کردند.

BloodAlchemy در اکتبر 2023، به عنوان یک RAT جدید (تروجان دسترسی از راه دور) نامگذاری شد. تحقیقات عمیق‌تر نشان داد که BloodAlchemy یک بدافزار کاملاً جدید نیست، بلکه نسخه تکامل یافته و به‌روزرسانی شده تروجان Deed RAT و جایگزین بدافزار ShadowPad میباشد.

ShadowPad یک خانواده بدافزار بدنام است که در حملات سایبری توسط گروه‌های APT41، APT23 و APT17 استفاده شده است. این بدافزار اولین بار در یک حمله زنجیره تامین نرم افزار در جولای 2017 گزارش گردید. تروجان Deed RAT نیز حداقل از سال 2017 فعال می‌باشد و شباهت کد بالایی با ShadowPad دارد.

بدافزار BloodAlchemy بر اساس تحلیل‌های آزمایشگاه Elastic Security ، دارای ویژگی‌های متعددی مانند استفاده از باینری‌های قانونی برای بارگیری DLLهای مخرب، حالت‌های اجرای چندگانه، مکانیزم تداوم دسترسی و استفاده از پروتکل‌های ارتباطی مختلف به هنگام برقراری ارتباط با سرور فرماندهی و کنترل (C2) است.

این ویژگی‌ها بیانگر آن است که BloodAlchemy یک نوع جدید از Deed RAT می‌باشد که توسط مهاجمان در حال توسعه است. اطلاعات عمومی در خصوص بدافزارهای ShadowPad، Deed RAT و BloodAlchemy در تصویر زیر نشان داده است:

بدافزار BLOODALCHEMY - ShadowPad - Deed RAT
شکل ۱- اطلاعات عمومی در مورد ShadowPad، Deed RAT و BloodAlchemy

 

بردار نفوذ اولیه و جریان نفوذ

مهاجمان از یک مجموعه فایل برای آلوده سازی اهداف به بدافزار BloodAlchemy با در اختیار گرفتن یک حساب VPN استفاده کرده‌اند. شکل 2 جریان نفوذ را نشان می‌دهد.

جریان نفوذ بدافزار BloodAlchemy
شکل ۲- جریان نفوذ بدافزار BloodAlchemy

مجموعه فایل‌های مخرب شامل سه فایل BrDifxapi.exe، BrLogAPI.dll و DIFX. می‌باشند. این فایل‌ها در دایرکتوری C:\windows ذخیره می‌شوند. علاوه بر این، یک تسک زمان‌بندی شده (C:\Windows\System32\Tasks\Dell\BrDifxapi) به منظور حفظ و تداوم دسترسی ایجاد می‌گردد.

مجموعه فایل‌های مخرب کشف شده از BloodAlchemy
شکل ۳- مجموعه فایل‌های مخرب کشف شده

 

تجزیه و تحلیل DLLهای مخرب

هنگامی که BrDifxapi.exe بر روی میزبان آلوده اجرا می‌شود، از تکنیک بارگذاری جانبی DLL برای بارگذاری یک فایل DLL مخرب به نام BrLogAPI.dll در همان دایرکتوری استفاده می‌کند. این DLL نیز فایل مخرب دیگری به نام DIFX را بارگیری کرده و shellcode  را از آن رمزگشایی و در حافظه اجرا می‌کند. الگوریتم رمزگذاری مورد استفاده، AES128  (حالت CBC) می‌باشد و کلید آن نیز 16 بایت اول فایل DIFX است.

فرآیند رمزگشایی shellcode در BrLogAPI.dll
شکل ۴. فرآیند رمزگشایی shellcode در BrLogAPI.dll
داده های DIFX (قبل) و shellcode رمزگشایی شده (بعد)
شکل ۵. داده های DIFX (قبل) و shellcode رمزگشایی شده (بعد)

 

تحلیل و بررسی shellcode  

shellcode رمزگشایی شده حاوی فرم رمزگذاری و فشرده شده BloodAlchemy است. این فرآیند رمزگشایی سفارشی بر اساس الگوریتم هش FNV-1a و فشرده سازی lznt1 می‌باشد.

بدافزار BloodAlchemy - متد رمزگذاری سفارشی با استفاده از هش FNV-1a
شکل ۶. متد رمزگذاری سفارشی با استفاده از هش FNV-1a

پیلود BloodAlchemy دارای یک فرمت داده منحصر به فرد است که تا حدودی شبیه به فرمت PE می‌باشد. ساختار داده‌های فرمت سفارشی در جدول زیر ارائه شده است.

داده

توضیحات

آفست

45 AB 45 AB

عدد جادویی

0x00

0x10

plugin id

0x04

0x698c

نقطه ورود

0x08

0x400000

پایه اصلی

0x0c

0

افست مطلق

0x10

0x17000

سایز virtualalloc

0x14

0x16fab

سایز داده های خام

0x18

0x163bc

سایز ناشناخته

0x1c

0x1000

پایه کد؟

0x20

0x0

بخش 1: آدرس مجازی

0x24

0x50

بخش 1: آدرس داده های خام

0x28

0x10fa0

بخش 1: اندازه داده های خام

0x2c

0x11000

بخش 2: آدرس مجازی

0x30

0x34

هنگامی که پیلود BloodAlchemy بازیابی شد، shellcode  نیز این فرمت سفارشی را برای استقرار پیلود نهایی در حافظه تفسیر کرده و آن را به عنوان بدافزار اجرا می‌کند (شکل ۷).

بدافزار BloodAlchemy
شکل ۷. کدی که فرمت سفارشی را برای استقرار BloodAlchemy تفسیر می‌کند

تحلیل و بررسی پیلود (BloodAlchemy)

ساختار

BloodAlchemy دارای چندین ویژگی است که معمولاً در سایر بدافزارها مشاهده نمی‌شود. یکی از این ویژگی‌ها مقدار ” run mode ” یا «حالت اجرا» است که دارای ۷ آرگومان می‌باشد. جدول زیر مقادیر هر حالت اجرا و رفتارهای مربوطه را بطور خلاصه بیان می‌کند:

run mode (حالت اجرا)

رفتار مربوط به هر حالت اجرا

0

ارتباط با C2 و پیاده سازی عملکرد بکدور؛

ایجاد یک فرآیند مشخص برای تزریق کد (code injection)؛

تزریق کد به فرآیندهای خاص و مشخص شده؛

آنتی دیباگینگ؛

تکنیک‌های آنتی سندباکس (anti-sandbox)؛

تداوم دسترسی.

1

ارتباط با C2 و پیاده سازی عملکرد بکدور

2

ایجاد thread  برای ارتباط با C2 و پیاده سازی عملکرد بکدور

3

ارتباط با C2 و پیاده سازی عملکرد بکدور؛

تزریق کد به فرآیندهای خاص و مشخص شده؛

آنتی دیباگینگ؛

تکنیک‌های آنتی سندباکس؛

تداوم دسترسی.

4

ایجاد فرآیند مشخص شده برای تزریق کد

5

ایجاد pipeهای نامگذاری شده

6

نصب بدافزار

BloodAlchemy، توانایی بارگذاری یک بدافزار را دارد. این پیکربندی در یک حالت رمزگذاری شده در shellcode  قبلی تعبیه شده است و در طول اجرای بدافزار BloodAlchemy رمزگشایی و استفاده می‌شود (شکل ۸).

علاوه بر این، اگر فایلی با نام فایل 15 کاراکتری متشکل از [a-zA-Z] در دایرکتوری C:\ProgramData\Store وجود داشته باشد، به عنوان فایل پیکربندی بدافزار در نظر گرفته شده و بارگذاری می‌شود. همچنین همان الگوریتم رمزگشایی مورد استفاده در پیلودی که قبلا ذکر شد برای این فرآیند رمزگشایی نیز استفاده می‌گردد.

بدافزار BloodAlchemy
شکل ۸. رمزگشایی و بارگذاری کد پیکربندی بدافزار

فایل پیکربندی بدافزار حاوی داده‌های مهم مربوط به پردازش کدهای مخرب است. این داده‌ها شامل مقادیری برای تغییر در رفتار تنظیم شده در حالت اجرا، URL سرور C2، نام فرآیندهای مشخص شده برای تزریق کد و موارد دیگر می‌باشند. برخی از داده‌های مهم مانند مقدار MUTEX، سرور C2، نام فرآیند هدف و غیره، رمزگذاری شده‌اند. فایل پیکربندی همچنین، مقادیر آفست را نیز شامل می‌شود که موقعیت این داده‌های رمزگذاری شده مانند ShadowPad را نشان می‌دهد.

داده های رمزگذاری شده و مقادیر آفست که موقعیت آنها را در فایل پیکربندی نشان داده است
شکل ۹. داده های رمزگذاری شده و مقادیر آفست که موقعیت آنها را در فایل پیکربندی نشان داده است

هر یک از این داده‌های رمزگذاری شده به این ترتیب ذخیره می‌شوند: اندازه داده‌های رمزگذاری شده، کلید یک بایتی و خود داده‌ رمزگذاری شده.

رمزگشایی با استفاده از یک الگوریتم سفارشی دیگر به همراه کلید ذخیره شده انجام می‌شود. شرکت Elastic Security، یک اسکریپت ساده پایتون برای رمزگشایی داده‌های رمزگذاری شده نوشته است.

اسکریپت پایتون - بدافزار BLOODALCHEMY
شکل ۱۰. اسکریپت پایتون

 

بررسی عملکردهای مختلف بدافزار BloodAlchemy

همانطور که پیش‌تر ذکر شد، BloodAlchemy بسته به حالت اجرا و مقادیر موجود در فایل پیکربندی بدافزار، رفتار متفاوتی دارد. ما با توجه به این ویژگی، معتقدیم که BloodAlchemy یک نمونه نسبتا منحصر به فرد است. عملکرد اصلی BloodAlchemy شامل ارتباط با سرور C2 و کنترل میزبان آلوده از طریق دستورات بکدور اجرا شده است.

عملکردهای منحصر به فرد پیاده سازی شده در بدافزار BloodAlchemy به شرح زیر می‌باشند:

 

تداوم دسترسی

پیلود، دارای قابلیت تداوم دسترسی است. اگر run_mode  دارای مقدار 0 یا 3 باشد و مسیر فایل اجرایی برای تداوم دسترسی مشخص نباشد و چنانچه persistence_flag  (مقدار 0x34 در فایل پیکربندی بدافزار) ، 0 نباشد، متد تداوم دسترسی بر اساس مقدار persistence_flag از 1 تا ۴ انتخاب خواهد شد.

1: service + startup + taskschd (COM obj)

2: service

3: startup

4: taskschd (COM obj)

فراخوانی تابع persistence وابسته به persistence_flag
شکل ۱۱. فراخوانی تابع persistence وابسته به persistence_flag

آنتی سندباکس

پیلود همچنین دارای قابلیت آنتی سندباکس (Anti Sandbox) برای فرار از تجزیه و تحلیل در محیط‌های sandbox است. این ویژگی فقط زمانی عمل می‌کند که run_mode  دارای مقدار 0 باشد، مسیر فایل اجرایی برای تداوم دسترسی مشخص نباشد و مقدار 0x1c در فایل پیکربندی 1 باشد.

این عملکرد، نام process_name، فایل‌ها و نتایج DNS را بررسی می‌کند. به نظر می‌آید هدف از این ویژگی، جلوگیری از شناسایی عملکرد سندباکس Trellix  بر اساس نام‌ فرآیندهای بررسی شده باشد.

بدافزار BLOODALCHEMY
شکل ۱۲. قابلیت‌های آنتی سندباکس توسط مقدار پیکربندی فعال می‌شود

تزریق فرآیند

ویژگی تزریق فرآیند یا Process Injection، با شرایط زیر پیاده‌سازی می‌گردد:

مقدار run_mode، 0 یا 3 باشد؛

مقدار 0x54 در فایل پیکربندی، 1 باشد؛

shellcode قبلی به فرآیندهای مشخص شده زیر در فایل پیکربندی تزریق شود:

%windir%\system32\SearchIndexer.exe

%windir%\system32\wininit.exe

%windir%\system32\taskhost.exe

%windir%\system32\svchost.exe

دستورات بکدور

15 فرمان بکدور برای کنترل ماشین قربانی در نظر گرفته شده است. عملیات انجام شده توسط هر شناسه فرمان به شرح زیر می‌باشد:

شناسه فرمان

توضیحات

0x1101

به روزرسانی فایل پیکربندی

0x1102

دریافت فایل پیکربندی فعلی

0x1201

به روز رسانی فایل test.exe

0x1202

به روز رسانی BrLogAPI.dll

0x1203

به روز رسانی DIFX

0x1204

حذف نصب و خاتمه

0x1205

اجرای persistence_dir\test.exe

0x1301

شناسه فرمان مجهول و ناشناخته

0x1302

بارگیری پیلود دریافتی و ذخیره آن در مقدار رجیستری

0x1303

حذف مقدار رجیستری

0x1304

شناسه فرمان مجهول و ناشناخته

0x1401

دریافت اطلاعات پروکسی

0x1402

به روز رسانی اطلاعات پروکسی

0x1501

جمع آوری اطلاعات قربانی

0x1502

بازگرداندن 0x1502 (echo 0x1502)

پردازش بر اساس شناسه فرمان بکدور - بدافزار BLOODALCHEMY
شکل ۱۳. پردازش بر اساس شناسه فرمان بکدور

منشا BloodAlchemy و تروجان Deed RAT، بدافزار ShadowPad می‌باشد و با توجه به سابقه استفاده از ShadowPad در حملات متعدد APT، توجه ویژه به روند استفاده از این بدافزار بسیار حائز اهمیت است.

 

منبع

همچنین ممکن است دوست داشته باشید

پیام بگذارید