گونه جدید Locky، مخفی شده در فایل DLL

به گزارش شرکت مهندسی شبکه گستر به نقل از شرکت امنیتی McAfee، در ماه های اخیر گردانندگان باج افزار Locky بشدت در حال انتشار این بدافزار هستند. این باج افزار از طریق یک دانلود کننده (Downloader) مبتنی بر JavaScript و بصورت پیوست شده به هرزنامه ها منتشر می شود. در گونه اخیر این باج افزار، فایل مخرب دانلود شده توسط فایل JavaScript یک فایل Dynamic-link Library – به اختصار DLL – است.

همانند گونه های پیشین Locky، در گونه جدید نیز فایل JavaScript مبهم سازی (Obfuscation) شده است.

1-7
که با حذف مبهم سازی های انجام شده، کد زیر حاصل می شود.

2-5

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

در ادامه کد رمزگشایی اسکریپت فایل را باز می کند که نتیجه آن یک فایل DLL فشرده شده است.

3-4

خصوصیات فایل فشرده شده بشرح زیر است.

4-6

فایل فشرده شده DLL دارای یک تابع صادر کننده (Export) با عنوان _WinMainExp@16 است.

5-7
در فرآیند باز کردن فایل فشرده شده DLL از تکنیکی جالب برای تشخیص ماشین های مجازی بهره گرفته شده است. بسیاری از مهندسان بدافزار برای بررسی فایل مخرب از ماشین های مجازی استفاده می کنند. در تکنیک استفاده شده تفاوت زمانی بین فراخوانی دو API به نام های GetProcessHeap و CloseHandle بررسی می شود. اسکریپت در زمان اجرا نشانی CloseHandle را با استفاده از LoadLibrary و GetProcAddress بدست می آورد.

11-2

در حالت عادی، بر روی یک سیستم واقعی، CloseHandle باید بسرعت GetProcessHeap را اجرا کند. بنابراین چنانچه فاصله زمانی اجرای این دو API بیشتر از حد در نظر گرفته شده باشد سیستم یک ماشین مجازی در نظر گرفته شده و بر روی آن اجرا نمی شود.

12-3

13-2

در ادامه فایل فشرده شده DLL از طریق تابع qwerty باز می شود.

7-4

در خط ششم فایل JavaScript، تابع ExpandEnvironmentStrings فایل DLL را در مسیر %TEMP% با نامی تصادفی ذخیره می کند. همچنین اسکریپت معماری ماشین را در خط های 11 تا 18 با استفاده از فرامین شرطی If-Else بررسی می کند.

8-3

بر اساس معماری ماشین، فایل DLL با استفاده از Rundll32.exe اجرا می شود. در خط 22 می توان پروسه اجرا کننده DLL را مشاهده کرد.

9-3

گونه جدید با استفاده از یک پارامتر خاص از سد نرم افزارها یا سخت افزارهای قرنطینه امن (Sandbox) عبور می کند. فایل DLL تنها در صورتی که توسط تابع صادر کننده صحیح (در این گونه qwerty) و پارامتر صحیح (323) اجرا شود رفتار مخرب را از خود بروز خواهد داد. بنابراین در صورت فراهم نشدن این شرایط DLL رفتار مخربی از خود نشان نداده و نرم افزارها و سخت افزارهای قرنطینه امن سنتی از بررسی آن عاجز خواهند بود. پارامتر 323 که در کد تزریق شده است در تصویر زیر قابل مشاهده است.

10-3

14-3-1

توضیح اینکه فایل JavaScript، فایل فشرده شده DLL و فایل DLL توسط راهکارهای امنیتی McAfee با حداقل DAT 8270 بترتیب با نام های JS/Nemucod،وRansomware-Locky.d!enc و Ransomware-FRO![Partial Hash] قابل شناسایی می باشد.

اشتراک گذاری

Facebook
Twitter
WhatsApp
Telegram

نظرات

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *