هکرهای کره شمالی، کشور کامبوج و احتمالاً سایر کشورهای جنوب شرق آسیا را توسط یک بکدور و تروجان دسترسی از راه دور (RAT) جدید به نام VeilShell، مورد هدف قرار دادهاند.
تیم تحقیقاتی Securonix، این حملاتِ در حال انجام را کشف و SHROUDED#SLEEP نامگذاری کرده است و آن را به گروه APT37 کره شمالی نسبت داده است. APT37 با نامهای InkySquid، Reaper، RedEyes، Ricochet Chollima، Ruby Sleet و ScarCruft نیز شناخته میشود.
به نظر میرسد که این گروه (APT37)، بدافزارهای مخفی را به اهدافی در سراسر کشورهای جنوب شرق آسیا ارسال میکند. APT37 از سال 2012 فعال میباشد و ارزیابی میشود که بخشی از وزارت امنیت دولت کره شمالی (MSS) است. این اولین بار نیست که کره شمالی این منطقه خاص را مورد هدف قرار میدهد.
زنجیره نفوذ حملات SHROUDED#SLEEP و پیاده سازی بکدور VeilShell
قربانیان احتمالاً توسط ایمیلهای فیشینگ هدفمند حاوی پیلود اولیه که یک فایل zip میباشد، آلوده شدهاند. هکرها در این زنجیره نفوذ نسبتا طولانی از یک بکدور PowerShell سفارشی با طیف گستردهای از قابلیتهای RAT (تروجان دسترسی از راه دور) سوء استفاده کردهاند.
تیم Securonix به دلیل روش اجرا و قابلیتهای مخفیانه این بکدور، آن را VeilShell نامیده است. این بکدور به هکرها اجازه دسترسی کامل به ماشینهای آلوده به بدافزار را میدهد. برخی از ویژگیهای بکدور VeilShell عبارتند از استخراج داده، رجیستری و ایجاد یا دستکاری تسکهای زمان بندی شده.
آرشیو ZIP مذکور، حاوی یک فایل شورتکات ویندوزی (LNK) است. فایلهای شورتکات از تکنیکهای پسوند دوگانه استفاده میکنند که به pdf.lnk. یا xlsx.lnk . ختم میشوند. پسوند lnk. در ویندوز، همیشه از دید کاربر پنهان میماند و باعث میشود فکر کند که در حال باز کردن یک صفحه گسترده (spreadsheet ) و یا سند PDF واقعی است. هکرها همچنین آیکون شورتکات را تغییر دادند تا با پسوند مطابقت داشته باشد و فایل شورتکات را مطابق شکل زیر قانونیتر جلوه دهند:
فایل شورتکات مستقیماً به فرآیند PowerShell متصل میشود و یک سری دستورات پیچیده را اجرا میکند. نمونهای از دستور را میتوانید در تصویر زیر مشاهده کنید.
به طور معمول، فایلهای شورتکات بسیار سبک و کم حجم هستند و اغلب فقط چند کیلوبایت میباشند. با این حال، تیم Securonix در مورد حملات SHROUDED#SLEEP، فایلهای شورتکات با اندازه 60 تا 600 کیلوبایت را مشاهده کرده است.
این اندازهء افزایش یافته به این دلیل است که فایل، به عنوان بدافزار dropper (نصب کننده بدافزار) عمل میکند و پیلودهای مرحله بعدی به انتهای فایل اضافه میشوند.
دستورات PowerShell تعبیه شده در فایل شورتکات در درجه اول برای رمزگشایی و استخراج این پیلودها از درون خود فایل شورتکات در نظر گرفته شدهاند. این تاکتیک بسیار شبیه به چیزی است که در حملات DEEP#GOSU، منتسب به کره شمالی نیز مشاهده شده است.
سه پیلود در مجموع، بر اساس یک محدوده بایت از پیش تعریف شده استخراج میشود که از بایت 2903 آغاز شده و در مجموع 64744 بایت را میخوانند (به بایت 67647 ختم میشود). هر فایل توسط Base64 رمزگذاری میگردد و با یک دونقطه (:) از هم جدا میشوند، که به عنوان یک جداکننده عمل میکند تا نشان دهد که یک پیلود به پایان رسیده و پیلود بعدی آغاز شده است.
سه فایل استخراج شده شامل یک سند طعمه (e.xlsx)، یک فایل پیکربندی (d.exe.config) و یک DLL مخرب (DomainManager.dll) به دایرکتوری Startup ویندوز برای ایجاد تداوم دسترسی میباشند. هر فایل شورتکات حاوی یک سند طعمه (یک فایل اکسل در یک مورد و در یک مورد دیگر یک PDF) میباشد که برای پرت کردن حواس کاربر در حالی که بدافزار در پسزمینه مستقر شده است، در نظر گرفته شده است.
همچنین یک فایل اجرایی قانونی به نام “dfsvc.exe” در همان پوشه کپی میشود که با فناوری ClickOnce در فریمورک .NET مایکروسافت مرتبط است. فایل به صورت “d.exe” کپی میشود.
اسناد طعمه در انتهای اسکریپت PowerShell با فراخوانی فرآیند explorer.exe اجرا میشوند، تکنیکی هوشمندانه برای اطمینان از باز شدن سند با برنامه پیشفرض سیستم بر اساس پسوند فایل آنها.
تداوم دسترسی در اجرا
حملات SHROUDED#SLEEP از یک تکنیک نسبتا مبهم به نام AppDomainManager injection برای اجرای DomainManager.dll و حفظ تداوم دسترسی با تزریق کدهای مخرب به برنامههای .NET استفاده میکنند.
این تکنیک از کلاس AppDomainManager سوء استفاده میکند و به هکرها اجازه میدهد تا DLL مخرب خود (DomainManager.dll) را در اوایل اجرای برنامه بارگیری کنند.
این تکنیک بر ای زمانی است که “d.exe” راه اندازی میشود و باینری فایل “d.exe.config” را که در همان پوشه startup قرار دارد، میخواند. سپس اجرای کد به DLL مخرب هدایت میشود و کد موجود در DLL را قادر میسازد تا پیش از اجرای فرآیند قانونی اجرا شود.
با استفاده از شکل بالا، میتوانیم بهتر بفهمیم که d.exe چگونه کدهای مخرب را از داخل DomainManager.dll اجرا میکند. فیلدهای appDomainManagerType و appDomainManagerAssembly در فایل config.، کلاس AppDomainManager سفارشی (InjectedDomainManager) و اسمبلی (DomainManager.dll) را مشخص میکنند.
فایل DLL، به نوبه خود، مانند یک لودر ساده برای بازیابی کد جاوا اسکریپت از یک سرور راه دور عمل میکند که برای به دست آوردن بکدور VeilShell به سرور دیگری متصل میشود.
VeilShell یک بدافزار مبتنی بر PowerShell است که برای تماس با یک سرور فرماندهی و کنترل (C2) طراحی شده است تا منتظر دستورالعملهای بیشتر بماند که به آن اجازه میدهند اطلاعات مربوط به فایلها را جمعآوری کند، یک پوشه خاص را در یک آرشیو ZIP فشرده کرده و آن را دوباره به سرور C2 ارسال کند. بکدور VeilShell همچنین فایلها را از یک URL مشخص دانلود میکند، فایلها را تغییر نام داده و حذف میکند و آرشیوهای ZIP را استخراج مینماید.
کمپین SHROUDED#SLEEP یک عملیات پیچیده و مخفی را نشان میدهد که جنوب شرق آسیا را مورد هدف قرار داده است و از لایههای متعدد اجرا، مکانیزمهای تداوم دسترسی و یک RAT بکدور مبتنی بر PowerShell برای دستیابی به کنترل طولانی مدت بر سیستمهای هک شده استفاده میکند.
گزارش Securonix یک روز پس از آن منتشر شد که Symantec فاش کرد که هکرهای کره شمالی در آگوست 2024 طی یک حمله سایبری با انگیزه مالی، سه سازمان مختلف را در ایالات متحده مورد هدف قرار دادهاند. گزارش کامل این حمله را میتوانید از اینجا بخوانید.