DarkUniverse

DarkUniverse

در تاریخ آپریل ۲۰۱۷ گروه ShadowBrokers نشت اطلاعات معروف خود را انجام داد، که بین آن‌‌ها اسکریپت جالبی بود که درباره APTهای مختلف روی سیستم جستجو انجام میداد.

در سال ۲۰۱۸ ما یک APT پیدا کردیم که به عنوان ۲۷مین عملکرد این اسکریپت شناخته میشد، که ما آن را دنیای تاریک (DarkUniverse) مینامیم. ما با کمی اطمینان حدس میزنیم که DarkUniverse بخشی از مجموعه فعالیت های ItaDuke به دلیل یکسان بودن کد های خاصشان است. ItaDuke گروهی معروف است که از سال ۲۰۱۳ شناخته شده است، این گروه از PDF برای ارسال بدافزار و توییتر برای ذخیره آدرسهای سرور C2 استفاده می کند.

 اطلاعات فنی

 

محدوده آلودگی

 

از فیشینگ هدفمند (Spear Phishing) برای پخش بدافزار استفاده شده است. یک نامه برای تک تک قربانی‌ها آماده شده است تا توجه آن‌ها را جلب کند و باعث شود که فایل آفیس آلوده‌ای را باز کنند.

هر نمونه از بدافزار بلافاصله قبل از ارسال کامپایل شده است و شامل آخرین نسخه موجود از بدافزار است. از آنجایی که این فریمورک از سال ۲۰۰۹ تا ۲۰۱۷ تحول یافته است، آخرین نسخه ها کاملاً متفاوت از نسخه های اول هستند، بنابراین گزارش فعلی تنها جدیدترین نسخه موجود از بدافزارهای مورد استفاده تا سال ۲۰۱۷ را نشان می دهد.

فایل اجرایی جاسازی شده درون فایل آفیس دو فایل آلوده را به نام‌های updater.mod و glue30.dll را استخراج میکند و آن‌ها را در محل فعالیت بد افزار (%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Reorder.) ذخیره میکند.

بعد از آن نسخه سالم فایل rundll32.exe را در این پوشه کپی میکند و از آن برای اجرای کتابخانه updater.mod استفاده میکند.

 

ماژول updater.mod

 

این ماژول به عنوان یک کتابخانه با لینک پویا است و تنها یک عملکرد به نام callme@16 را پیاده سازی میکند. این ماژول وظیفه کارهایی از قبیل برقراری ارتباط با سرور C2 ، اطمینان از سالم بودن فایل بدافزار و درست بودن رفتارهای آن و مدیریت سایر ماژول های بدافزار را بر عهده دارد.

اطمینان از درست بودن رفتار فایل توسط یک فایل پیوند ارائه شده میشود که توسط updater.mod در پوشه خودش قرار می گیرد و از اجرای بدافزار پس از راه اندازی مجدد اطمینان می یابد. اگر فایل پیوند داده شده خراب شود ، ماژول updater.mod آن را دوباره راه اندازی می کند.

ارتباط با سرور C2

 

در این عملیات سرورهای C2 بیشتر در سرورهای ابری mydrive.ch مستقر شده‌اند. برای هر قربانی اپراتورها یک حساب جدید کاربری را آنجا ایجاد میکنند و ماژول‌های اضافی بدافزار و یک فایل پیکربندی به همراه دستورات اجرایی آن را در آنجا آپلود میکنند.

به محض اجرا شدن ماژول updater.mod که به سرور C2 متصل شده است، اقدامات زیر را انجام میدهد:

  • فایل دستورات اجرایی را در پوشه محل فعالیت دانلود میکند.
  • فایلهای جمع آوری و آماده شده توسط دیگر ماژول های مخرب (در صورت وجود) به سرور C2 آپلود میشوند. این فایل ها در پوشه‌ای به نام “queue” یا “ntfsrecover” در پوشه محل فعالیت قرار داشتند. فایل‌های درون این پوشه می توانند یکی از این دو پسوند را داشته باشند: .d یا .up که بستگی دارد به اینکه این فایل‌ها قبلاً در سرور بارگذاری شده بودند یا نه.
  • ماژول‌های اضافی بدافزار دانلود میشوند:
  •   dfrgntfs5.sqt – ماژولی برای اجرای دستورات از سرور C2
  •    msvcrt58.sqt – ماژول برای سرقت ایمیل‌ها و مشخصات آن‌ها
  •   zl4vq.sqt – کتابخانه قانونی zlib که توسط dfrgntfs5 استفاده میشود
  •     %victim_ID%.upe – افزونه اختیاری برای dfrgntfs5. متأسفانه نتوانستیم این فایل را بدست آوریم

همه ماژول های بدافزار با یک الگوریتم سفارشی رمزگذاری شده‌اند:

نام کاربری و رمزعبور حساب سرور C2 در پیکربندی که در رجیستری قرار دارد ذخیره می شود ، اما ماژول updater.mod یک نسخه را نیز به عنوان یک رشته رمزگذاری شده در فایل اجرایی ذخیره می کند. همچنین، فایل پیکربندی مشخص می کند که هر چند فایل updater.mod به سرور C2 متصل شود، که دو حالت فعال و نیمه فعال دارد.

 

پیکربندی بدافزار در رجیستری

 

پیکربندی بدافزار در رجیستری در ورودی SOFTWARE\AppDataLow\GUI\LegacyP ذخیره می شود. مقادیر مختلف در جدول زیر به تفصیل بیان شده است:

Value name Description
C1 C2 domain.
C2 C2 domain path.
C3 C2 credential username.
C4 C2 credential password.
install ۱ if malware is installed.
TL1 DESACTIVAR | HABILITAR – specifies whether msvcrt58 and glue libraries are active.
TL2, TL3 If TL1 is not NULL, it specifies time bounds when TL1 option is applied.
“kl” If 1, updater.mod should download msvcrt58.sqt from C2 again.
“re” If 1, updater.mod should download dfrgntfs5.sqt from C2 again.
“de” If not 0, framework should uninstall itself.
“cafe” REDBULL | SLOWCOW specifies how often updater.mod polls C2.
“path” Path to the folder from which files are being sent to C2.

ماژول های glue30.dll و msvcrt58.sqt

 

ماژول glue30.dll بدافزار، عملکرد ضبط دکمه‌های کیبورد را فراهم می کند. ماژول updater.mod از عملکرد SetWindowsHookExW که متعلق به Win API است برای اتصال به صفحه کلید و تزریق glue30.dll به فایل‌های اجرایی که ورودی صفحه کلید را میگیرند، استفاده میکند. پس از آن، فایل glue30.dll بارگیری می شود و ورودی را از هر فایل اجرایی دریافت می کند.

ماژول msvcrt58.sqt برای جمع آوری مکالمات ایمیلی و رمزعبور قربانیان ، از ترافیک POP3 رمزگذاری نشده استفاده می کند. این ماژول به دنبال ترافیک از فایل‌های اجرایی زیر است:

outlook.exe;

winmail.exe;

msimn.exe;

nlnotes.exe;

eudora.exe;

thunderbird.exe;

thunde~1.exe;

msmsgs.exe;

msnmsgr.exe;

این بدافزار ترافیک دریافت شده POP3 را بررسی کرده و نتیجه را برای بارگذاری در C2 به ماژول اصلی (updater.mod) می فرستد. این کار با استفاده از توابع Win API زیر که مربوط به شبکه هستند، انجام می شود:

ws2_32.connect;

ws2_32.send;

ws2_32.recv;

ws2_32.WSARecv;

ws2_32.closesocket;

ماژول dfrgntfs5.sqt

این ماژول کاربردی ترین قسمت فریمورک DarkUniverse است، این ماژول یک لیست بسیار زیادی از دستورات سرور C2 را که در جدول زیر ذکر شده است ، پردازش می کند:

Command Description
VER Sends malware version to server.
DESINSTALAR Uninstalls itself.
PANTALLA Takes screenshot of the full screen and saves it to the \queue folder.
CAN_TCP, CAN_HTTP, CAN_HTTPS Injects a shellcode into IE that establishes a direct connection with the C2, downloads additional code, sends info about the download results to the C2 and executes the downloaded code.
MET_TCP, MET_HTTPS Also injects a shellcode into IE. The only difference with the previous command set is that in this case the shellcode doesn’t send any additional info to the C2 – it only establishes the connection, downloads additional code and executes it.
CAN_HTTP_LSASS Injects the same shellcode as in the case of CAN_HTTP into the LSASS.exe process.
SCAN/STOPSCAN Starts/stops network scan. Collects lots of different info about the local network.
CREDSCAN Brute-forces IP range with specified username and password.
ACTUALIZAR Updates dfrgntfs5.sqt.
ACTUALIZARK Updates msvcrt58.sqt.
SYSINFO Collects full system info.
REDBULL Sets cafe flag to 1 – active.
SLOWCOW Sets cafe flag to 0 – slow mode.
X Runs specified process and logs its output, then prepares this output log for uploading to the C2.
T Obtains list of files from a specific directory.
TAUTH Obtains list of files of remote server if specified credentials are valid.
G Sends a file to the C2.
GAUTH Downloads a particular file from a shared resource if specified credentials are valid.
SPLIT Splits file into 400 KB parts and uploads them to the C2.
FLUSH Sends file with the data collected by all components that day and deletes it.
C1 – C4 Sets the C2 in its configuration in the registry (C1-C4).
TL1 – TL3 Sets the active state in its configuration in the registry (T1-T3).
ONSTART Sets process to be started every malware startup.
CLEARONSTART Undoes previous ONSTART command.
ARP Runs unavailable ARP module (uncparse.dll – unavailable). This module stores data in a file internally named arpSniff.pcap.
AUTO Automatically looks for updates of predefined files.
MANUAL Files in the specified directory are searched using the * .upd pattern, all found files are deleted.
REGDUMP Collects information from the registry.
PWDDUMP Collects and decrypts credentials from Outlook Express, Outlook, Internet Explorer, Windows Mail and Windows Live Mail, Windows Live Messenger, and also Internet Cache;
LOGHASH Injects process into lsass.exe and starts collecting password hashes in the file checksums.bk.
SENDLOGHASH Sends collected lsass.exe process password hashes to the C2.
PROXYINFO Checks if credentials for proxy are valid.
DHCP Sets DHCP settings for local machine.
DNS Sets DNS settings for local machine.
FAKESSL Provides basic MITM functionality.

قربانیان

 

ما حدود ۲۰ قربانی در سوریه ، ایران ، افغانستان ، تانزانیا ، اتیوپی ، سودان ، روسیه ، بلاروس و امارات متحده عربی را ثبت کرده‌ایم. قربانیان شامل سازمان های نظامی و غیرنظامی بودند. ما معتقدیم که تعداد قربانیان در دوره اصلی فعالیت بین ۲۰۰۹ و ۲۰۱۷ بسیار بیشتر بوده است.

 

نتیجه گیری

 

دنیای تاریک (DarkUniverse) یک نمونه جالب از یک فریمورک کامل جاسوسی سایبری است که حداقل برای مدت هشت سال مورد استفاده قرار می گیرد. این بدافزار حاوی کلیه ماژول های لازم برای جمع آوری انواع اطلاعات در مورد کاربر و سیستم آلوده است و به نظر می رسد کاملاً از پایه برنامه نویسی شده است. به دلیل یکسان بودن کدهای منحصر به فرد ، ما با اطمینان فرض می کنیم که سازندگان DarkUniverse با مجموعه فعالیتهای ItaDuke مرتبط بودند. مهاجمان باهوش بودند و در طول چرخه عمر کامل عملیات خود بدافزار خود را به روز می کردند ، بنابراین نمونه های مشاهده شده از سال ۲۰۱۷ با نمونه های اولیه از سال ۲۰۰۹ کاملاً متفاوت است. تعلیق عملیات آن ممکن است مربوط به انتشار نشت اطلاعات “Lost in Translation” باشد، یا ممکن است مهاجمان به سادگی تصمیم گرفته اند که به رویکردهای مدرن تری تغییر بدهند و برای کارهای خود از روش‌های گسترده تری استفاده کنند.

منبع: https://securelist.com/darkuniverse-the-mysterious-apt-framework-27/94897/

تهیه شده توسط : علیرضا هوشمند

ارسال دیدگاه

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