ESET: طرح‌های تحویل در پشتی جدید برای گروه سایبری OceanLotus

در این پست به شما خواهیم گفت که چگونه گروه سایبری OceanLotus (APT32 و APT-C-00) اخیراً از یکی از اکسپلویت های عمومی در دسترس استفاده کرده است. CVE-2017-11882آسیب‌پذیری‌های آسیب‌پذیری حافظه در مایکروسافت آفیس، و اینکه چگونه بدافزار این گروه در سیستم‌های در معرض خطر ماندگاری می‌یابد بدون اینکه ردی از خود باقی بگذارد. در ادامه، توضیح خواهیم داد که چگونه از ابتدای سال 2019، این گروه از آرشیوهای خود استخراجی برای اجرای کد استفاده کرده است.

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

ESET: طرح‌های تحویل در پشتی جدید برای گروه سایبری OceanLotus

استفاده از اکسپلویت در Microsoft Equation Editor

در اواسط سال 2018، OceanLotus کمپینی را برای سوء استفاده از آسیب‌پذیری CVE-2017-11882 انجام داد. یکی از اسناد مخرب این گروه سایبری توسط متخصصان مرکز اطلاعات تهدید 360 مورد تجزیه و تحلیل قرار گرفت.تحقیق به زبان چینی) از جمله شرح مفصلی از اکسپلویت. پست زیر حاوی نمای کلی از چنین سند مخربی است.

مرحله اول

سند FW Report on demonstration of former CNRP in Republic of Korea.doc (SHA-1: D1357B284C951470066AAA7A8228190B88A5C7C3) مشابه آنچه در مطالعه بالا ذکر شد است. جالب است زیرا کاربران علاقه مند به سیاست کامبوج را هدف قرار داده است (CNRP - حزب نجات ملی کامبوج، منحل شده در پایان سال 2017). با وجود پسوند .doc، سند در قالب RTF است (تصویر زیر را ببینید)، حاوی کد زباله است، و همچنین تحریف شده است.

ESET: طرح‌های تحویل در پشتی جدید برای گروه سایبری OceanLotus
شکل 1. "زباله" در RTF

اگرچه عناصر مخدوش وجود دارد، Word این فایل RTF را با موفقیت باز می کند. همانطور که در شکل 2 می بینید، یک ساختار EQNOLEFILEHDR در افست 0xC00، به دنبال آن یک هدر MTEF و سپس یک ورودی MTEF (شکل 3) برای فونت وجود دارد.

ESET: طرح‌های تحویل در پشتی جدید برای گروه سایبری OceanLotus
شکل 2. مقادیر ورودی FONT

ESET: طرح‌های تحویل در پشتی جدید برای گروه سایبری OceanLotus
شکل 3. فرمت ضبط فونت

سرریز احتمالی در مزرعه نام، زیرا اندازه آن قبل از کپی بررسی نمی شود. نامی که بیش از حد طولانی باشد باعث ایجاد یک آسیب پذیری می شود. همانطور که از محتویات فایل RTF می بینید (تغییر 0xC26 در شکل 2)، بافر با کد پوسته و به دنبال آن یک دستور ساختگی پر شده است.0x90) و آدرس را برگردانید 0x402114. آدرس یک عنصر گفتگو در است EQNEDT32.exe، دستورالعمل ها را نشان می دهد RET. این باعث می شود EIP به شروع فیلد اشاره کند نامحاوی کد پوسته

ESET: طرح‌های تحویل در پشتی جدید برای گروه سایبری OceanLotus
شکل 4. آغاز کد پوسته اکسپلویت

نشانی 0x45BD3C متغیری را ذخیره می کند که تا زمانی که به یک اشاره گر به ساختار بارگذاری شده فعلی برسد، ارجاع داده نمی شود MTEFData. بقیه shellcode اینجاست.

هدف از shellcode اجرای دومین قطعه از shellcode است که در سند باز تعبیه شده است. کد پوسته اصلی ابتدا سعی می‌کند با تکرار روی تمام توصیفگرهای سیستم، توصیف‌گر فایل سند باز را پیدا کند.NtQuerySystemInformation با استدلال SystemExtendedHandleInformation) و بررسی اینکه آیا مطابقت دارند یا خیر PID توصیف کننده و PID روند WinWord و اینکه آیا سند با ماسک دسترسی باز شده است - 0x12019F.

برای تأیید اینکه دسته صحیح پیدا شده است (و نه دستگیره یک سند باز دیگر)، محتویات فایل با استفاده از تابع نمایش داده می شود. CreateFileMappingو کد پوسته بررسی می کند که آیا چهار بایت آخر سند مطابقت دارند یا خیر.yyyy(روش شکار تخم مرغ). پس از یافتن یک مطابقت، سند در یک پوشه موقت کپی می شود (GetTempPath) چگونه ole.dll. سپس 12 بایت آخر سند خوانده می شود.

ESET: طرح‌های تحویل در پشتی جدید برای گروه سایبری OceanLotus
شکل 5. نشانگرهای انتهای سند

مقدار 32 بیتی بین نشانگرها AABBCCDD и yyyy افست پوسته کد بعدی است. با استفاده از تابع نامیده می شود CreateThread. همان کد پوسته ای را استخراج کرد که قبلاً توسط گروه OceanLotus استفاده می شد. اسکریپت شبیه سازی پایتون، که در مارس 2018 منتشر کردیم، هنوز برای مرحله دوم کار می کند.

در مرحله دوم

حذف کامپوننت ها

نام فایل ها و دایرکتوری ها به صورت پویا انتخاب می شوند. کد به صورت تصادفی نام فایل اجرایی یا DLL را انتخاب می کند C:Windowssystem32. سپس از منابع خود درخواست می کند و فیلد را بازیابی می کند FileDescription برای استفاده به عنوان نام پوشه اگر این کار نکرد، کد به صورت تصادفی یک نام پوشه را از فهرست ها انتخاب می کند %ProgramFiles% یا C:Windows (از GetWindowsDirectoryW). از استفاده از نامی که ممکن است با فایل‌های موجود تضاد داشته باشد اجتناب می‌کند و تضمین می‌کند که حاوی کلمات زیر نباشد: windows, Microsoft, desktop, system, system32 یا syswow64. اگر دایرکتوری از قبل وجود داشته باشد، "NLS_{6 کاراکتر}" به نام اضافه می شود.

منابع 0x102 تجزیه و تحلیل می شود و فایل ها به داخل ریخته می شوند %ProgramFiles% یا %AppData%، به یک پوشه به طور تصادفی انتخاب شده است. زمان ایجاد تغییر کرد تا مقادیر مشابهی داشته باشد kernel32.dll.

به عنوان مثال، در اینجا پوشه و لیست فایل هایی است که با انتخاب فایل اجرایی ایجاد می شوند C:Windowssystem32TCPSVCS.exe به عنوان منبع داده

ESET: طرح‌های تحویل در پشتی جدید برای گروه سایبری OceanLotus
شکل 6. استخراج اجزای مختلف

ساختار منابع 0x102 در یک قطره چکان بسیار پیچیده است. به طور خلاصه شامل:
- نام فایل ها
- اندازه و محتوای فایل
- فرمت فشرده سازی (COMPRESSION_FORMAT_LZNT1، توسط تابع استفاده می شود RtlDecompressBuffer)

فایل اول به عنوان بازنشانی می شود TCPSVCS.exe، که مشروع است AcroTranscoder.exe (مطابق با FileDescriptionSHA-1: 2896738693A8F36CC7AD83EF1FA46F82F32BE5A3).

ممکن است متوجه شده باشید که برخی از فایل های DLL بزرگتر از 11 مگابایت هستند. این به این دلیل است که یک بافر پیوسته بزرگ از داده های تصادفی در داخل فایل اجرایی قرار می گیرد. ممکن است این راهی برای جلوگیری از شناسایی توسط برخی محصولات امنیتی باشد.

تضمین ماندگاری

منابع 0x101 در قطره چکان شامل دو عدد صحیح 32 بیتی است که مشخص می کند چگونه پایداری باید ارائه شود. مقدار اول مشخص می کند که چگونه بدافزار بدون حقوق سرپرست باقی می ماند.

ESET: طرح‌های تحویل در پشتی جدید برای گروه سایبری OceanLotus
جدول 1. مکانیسم ماندگاری بدون حقوق مدیر

مقدار عدد صحیح دوم مشخص می‌کند که بدافزار چگونه باید در هنگام اجرا با حقوق سرپرست به ماندگاری دست یابد.

ESET: طرح‌های تحویل در پشتی جدید برای گروه سایبری OceanLotus
جدول 2. مکانیسم پایداری با حقوق مدیر

نام سرویس، نام فایل بدون پسوند است. نام نمایشی نام پوشه است، اما اگر از قبل وجود داشته باشد، رشته "Revision 1” (تعداد افزایش می یابد تا زمانی که یک نام استفاده نشده پیدا شود). اپراتورها مطمئن شدند که پایداری از طریق سرویس قوی است - در صورت خرابی، سرویس باید پس از 1 ثانیه راه اندازی مجدد شود. سپس مقدار WOW64 کلید رجیستری سرویس جدید روی 4 تنظیم شده است که نشان می دهد یک سرویس 32 بیتی است.

یک کار برنامه ریزی شده از طریق چندین رابط COM ایجاد می شود: ITaskScheduler, ITask, ITaskTrigger, IPersistFile и ITaskScheduler. در اصل، بدافزار یک کار مخفی ایجاد می کند، اطلاعات حساب را همراه با اطلاعات کاربر فعلی یا مدیر تنظیم می کند و سپس ماشه را تنظیم می کند.

این یک کار روزانه با مدت زمان 24 ساعت و فواصل بین دو اجرا 10 دقیقه است، به این معنی که به طور مداوم اجرا می شود.

بیت مخرب

در مثال ما، فایل اجرایی TCPSVCS.exe (AcroTranscoder.exe) نرم افزار قانونی است که DLL هایی را که به همراه آن ریست شده اند بارگیری می کند. در این مورد، مورد توجه است Flash Video Extension.dll.

عملکرد آن DLLMain فقط تابع دیگری را فراخوانی می کند. برخی از محمولات فازی وجود دارد:

ESET: طرح‌های تحویل در پشتی جدید برای گروه سایبری OceanLotus
شکل 7. محمول های فازی

پس از این بررسی های گمراه کننده، کد یک بخش دریافت می کند .text فایل TCPSVCS.exe، دفاع خود را به PAGE_EXECUTE_READWRITE و آن را با افزودن دستورالعمل های ساختگی بازنویسی می کند:

ESET: طرح‌های تحویل در پشتی جدید برای گروه سایبری OceanLotus
شکل 8. توالی دستورالعمل ها

در پایان به آدرس تابع FLVCore::Uninitialize(void)، صادر شد Flash Video Extension.dll، دستورالعمل اضافه شده است CALL. این بدان معنی است که پس از بارگذاری DLL مخرب، زمانی که زمان اجرا فراخوانی می شود WinMain в TCPSVCS.exe، نشانگر دستورالعمل به NOP اشاره می کند و باعث می شود FLVCore::Uninitialize(void)، مرحله بعد.

این تابع به سادگی یک mutex ایجاد می کند که با آن شروع می شود {181C8480-A975-411C-AB0A-630DB8B0A221}پس از آن نام کاربری فعلی. سپس فایل *.db3 را که حاوی کد مستقل از موقعیت است می خواند و از آن استفاده می کند CreateThread برای اجرای محتوا

محتویات فایل *.db3 کد پوسته ای است که گروه OceanLotus معمولاً از آن استفاده می کند. ما دوباره با موفقیت بار بار آن را با استفاده از اسکریپت شبیه ساز که منتشر کردیم، باز کردیم در GitHub.

فیلمنامه مرحله نهایی را استخراج می کند. این مؤلفه یک درب پشتی است که قبلاً در آن تحلیل کرده ایم مطالعه قبلی OceanLotus. این را می توان توسط GUID تعیین کرد {A96B020F-0000-466F-A96D-A91BBF8EAC96} فایل باینری پیکربندی بدافزار هنوز در منبع PE رمزگذاری شده است. تقریباً همان پیکربندی را دارد، اما سرورهای C&C با سرورهای قبلی متفاوت هستند:

- andreagahuvrauvin[.]com
- byronorenstein[.]com
- stienollmache[.]xyz

تیم OceanLotus دوباره ترکیبی از تکنیک های مختلف را برای جلوگیری از شناسایی نشان می دهد. آنها با یک نمودار "تصفیه شده" از روند عفونت بازگشتند. با انتخاب نام‌های تصادفی و پر کردن فایل‌های اجرایی با داده‌های تصادفی، تعداد IoCهای قابل اعتماد (براساس هش‌ها و نام فایل‌ها) را کاهش می‌دهند. علاوه بر این، به لطف استفاده از بارگذاری DLL شخص ثالث، مهاجمان فقط باید باینری قانونی را حذف کنند. AcroTranscoder.

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

پس از فایل‌های RTF، گروه به آرشیوهای خود استخراجی (SFX) با نمادهای سند رایج رفت تا کاربر را بیشتر گیج کند. Threatbook در این مورد نوشته است (لینک به زبان چینی). پس از راه‌اندازی، فایل‌های RAR خود استخراج‌شده حذف می‌شوند و DLL‌هایی با پسوند ocx. اجرا می‌شوند که بار نهایی آن قبلاً مستند شده است. {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll. از اواسط ژانویه 2019، OceanLotus از این تکنیک استفاده مجدد کرده است، اما برخی از تنظیمات را در طول زمان تغییر داده است. در این بخش در مورد تکنیک و تغییرات صحبت خواهیم کرد.

ایجاد یک فریب

سند THICH-THONG-LAC-HANH-THAP-THIEN-VIET-NAM (1).EXE (SHA-1: AC10F5B1D5ECAB22B7B418D6E98FA18E32BBDEAB) اولین بار در سال 2018 یافت شد. این فایل SFX عاقلانه ایجاد شده است - در توضیحات (اطلاعات نسخه) می گوید این یک تصویر JPEG است. اسکریپت SFX به شکل زیر است:

ESET: طرح‌های تحویل در پشتی جدید برای گروه سایبری OceanLotus
شکل 9. دستورات SFX

بدافزار بازنشانی می شود {9ec60ada-a200-4159-b310-8071892ed0c3}.ocx (SHA-1: EFAC23B0E6395B1178BCF7086F72344B24C04DCC) و همچنین یک عکس 2018 thich thong lac.jpg.

تصویر فریب به این صورت است:

ESET: طرح‌های تحویل در پشتی جدید برای گروه سایبری OceanLotus
شکل 10. تصویر طعمه

ممکن است متوجه شده باشید که دو خط اول در اسکریپت SFX دو بار فایل OCX را فراخوانی می کند، اما این یک خطا نیست.

{9ec60ada-a200-4159-b310-8071892ed0c3}.ocx (ShLd.dll)

جریان کنترل یک فایل OCX بسیار شبیه به سایر اجزای OceanLotus است - بسیاری از توالی دستورات JZ/JNZ и PUSH/RETمتناوب با کد زباله.

ESET: طرح‌های تحویل در پشتی جدید برای گروه سایبری OceanLotus
شکل 11. کد مبهم

پس از فیلتر کردن کدهای ناخواسته، صادر کنید DllRegisterServer، تماس گرفت regsvr32.exe، به شرح زیر است:

ESET: طرح‌های تحویل در پشتی جدید برای گروه سایبری OceanLotus
شکل 12. کد نصب کننده اصلی

اصولاً در اولین تماس DllRegisterServer صادرات مقدار رجیستری را تنظیم می کند HKCUSOFTWAREClassesCLSID{E08A0F4B-1F65-4D4D-9A09-BD4625B9C5A1}Model برای افست رمزگذاری شده در DLL (0x10001DE0).

هنگامی که تابع برای بار دوم فراخوانی می شود، همان مقدار را می خواند و در آن آدرس اجرا می شود. از اینجا منبع و بسیاری از اقدامات در RAM خوانده و اجرا می شود.

کد پوسته همان لودر پلی اتیلن است که در کمپین های قبلی OceanLotus استفاده می شد. با استفاده از آن می توان آن را شبیه سازی کرد فیلمنامه ما. در پایان او ریست می کند db293b825dcc419ba7dc2c49fa2757ee.dll، آن را در حافظه بارگذاری کرده و اجرا می کند DllEntry.

DLL محتویات منبع خود را استخراج می کند، (AES-256-CBC) را رمزگشایی می کند و (LZMA) آن را از حالت فشرده خارج می کند. منبع دارای فرمت خاصی است که به راحتی قابل کامپایل کردن است.

ESET: طرح‌های تحویل در پشتی جدید برای گروه سایبری OceanLotus
شکل 13. ساختار پیکربندی نصب کننده (KaitaiStruct Visualizer)

پیکربندی به صراحت مشخص شده است - بسته به سطح امتیاز، داده های باینری در آن نوشته می شود %appdata%IntellogsBackgroundUploadTask.cpl یا %windir%System32BackgroundUploadTask.cpl (یا SysWOW64 برای سیستم های 64 بیتی).

ماندگاری بیشتر با ایجاد یک کار با نام تضمین می شود BackgroundUploadTask[junk].jobجایی که [junk] مجموعه ای از بایت ها را نشان می دهد 0x9D и 0xA0.

نام برنامه کار %windir%System32control.exe، و مقدار پارامتر مسیر فایل باینری دانلود شده است. وظیفه پنهان هر روز اجرا می شود.

از نظر ساختاری، یک فایل CPL یک DLL با نام داخلی است ac8e06de0a6c4483af9837d96504127e.dll، که یک تابع را صادر می کند CPlApplet. این فایل تنها منبع خود را رمزگشایی می کند {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll، سپس این DLL را بارگیری می کند و تنها صادرات آن را فراخوانی می کند DllEntry.

فایل پیکربندی Backdoor

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

ESET: طرح‌های تحویل در پشتی جدید برای گروه سایبری OceanLotus
شکل 14. ساختار پیکربندی درب پشتی (KaitaiStruct Visualizer)

اگرچه ساختار مشابه است، بسیاری از مقادیر فیلد از مقادیر نشان داده شده در به روز شده اند گزارش قدیمی ما.

اولین عنصر آرایه باینری حاوی یک DLL (HttpProv.dll MD5: 2559738D1BD4A999126F900C7357B759), توسط Tencent شناسایی شده است. اما از آنجایی که نام صادرات از باینری حذف شد، هش ها مطابقت ندارند.

تحقیقات تکمیلی

در حین جمع آوری نمونه ها متوجه برخی ویژگی ها شدیم. نمونه ای که به تازگی توضیح داده شد در حدود ژوئیه 2018 ظاهر شد و نمونه های مشابه آن اخیراً در اواسط ژانویه تا اوایل فوریه 2019 ظاهر شدند. بایگانی SFX به عنوان یک بردار عفونت، حذف یک سند فریبنده قانونی و یک فایل مخرب OSX استفاده شد.

حتی اگر OceanLotus از مهرهای زمانی جعلی استفاده می کند، ما متوجه شدیم که مهر زمانی فایل های SFX و OCX همیشه یکسان است (0x57B0C36A (08/14/2016 @ 7:15 UTC) و 0x498BE80F (به ترتیب 02/06/2009 @ 7:34 صبح UTC)). این احتمالاً نشان می‌دهد که نویسندگان نوعی «طراح» دارند که از همان الگوها استفاده می‌کند و به سادگی برخی ویژگی‌ها را تغییر می‌دهد.

در میان اسنادی که از ابتدای سال 2018 مطالعه کرده‌ایم، اسامی مختلفی وجود دارد که کشورهای مورد علاقه مهاجمان را نشان می‌دهد:

— اطلاعات تماس جدید رسانه کامبوج (New).xls.exe
— 李建香 (个人简历).exe (سند پی دی اف جعلی یک CV)
- بازخورد، رالی در ایالات متحده آمریکا از 28-29 ژوئیه، 2018.exe

از آنجایی که درب پشتی کشف شد {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll و با انتشار تجزیه و تحلیل آن توسط چندین محقق، تغییراتی را در داده های پیکربندی بدافزار مشاهده کردیم.

ابتدا، نویسندگان شروع به حذف نام ها از DLL های کمکی کردند (DNSprov.dll و دو نسخه HttpProv.dll). سپس اپراتورها بسته بندی DLL سوم (نسخه دوم) را متوقف کردند HttpProv.dll) تنها یکی را انتخاب کنید.

ثانیاً، بسیاری از فیلدهای پیکربندی درب پشتی تغییر کردند، که احتمالاً با در دسترس قرار گرفتن بسیاری از IoCها، از شناسایی فرار می‌کنند. فیلدهای مهم اصلاح شده توسط نویسندگان عبارتند از:

  • کلید رجیستری AppX تغییر کرد (به IoCها مراجعه کنید)
  • رشته رمزگذاری mutex ("def"، "abc"، "ghi")
  • شماره پورت

در نهایت، تمام نسخه‌های جدید تحلیل‌شده دارای C&Cهای جدید هستند که در بخش IoCs فهرست شده‌اند.

یافته ها

OceanLotus به توسعه خود ادامه می دهد. تمرکز گروه سایبری بر پالایش و گسترش ابزار و فریب است. نویسندگان بارهای مخرب را با استفاده از اسناد جلب توجه که موضوع آنها مربوط به قربانیان مورد نظر است، پنهان می کنند. آنها طرح های جدیدی را توسعه می دهند و همچنین از ابزارهای در دسترس عموم مانند بهره برداری Equation Editor استفاده می کنند. علاوه بر این، آنها در حال بهبود ابزارهایی برای کاهش تعداد مصنوعات باقی مانده در دستگاه های قربانیان هستند و در نتیجه شانس شناسایی توسط نرم افزار آنتی ویروس را کاهش می دهند.

شاخص های سازش

شاخص های سازش و همچنین ویژگی های MITER ATT&CK در دسترس هستند در Welivesecurity и در GitHub.

منبع: www.habr.com

اضافه کردن نظر