ESET: OceanLotus kiberguruhi uchun yangi orqa eshiklarni yetkazib berish sxemalari

Ushbu postda biz sizga OceanLotus kiberguruhi (APT32 va APT-C-00) yaqinda ommaga ochiq bo'lgan ekspluatatsiyalardan birini qanday ishlatganini aytib beramiz. CVE-2017-11882, Microsoft Office-dagi xotira buzilishining zaifliklari va guruhning zararli dasturlari buzilgan tizimlarda iz qoldirmasdan qanday qilib barqarorlikka erishayotgani. Keyinchalik, 2019 yil boshidan beri guruh kodni ishga tushirish uchun o'z-o'zidan ochiladigan arxivlardan qanday foydalanayotganini tasvirlab beramiz.

OceanLotus kiber-josuslikka ixtisoslashgan bo'lib, ustuvor maqsadlari Janubi-Sharqiy Osiyo mamlakatlari hisoblanadi. Hujumchilar potentsial qurbonlarning e'tiborini tortadigan hujjatlarni ularni orqa eshikni bajarishga ishontirish uchun soxtalashtiradilar, shuningdek, vositalarni ishlab chiqish ustida ishlamoqdalar. Asal po'stlog'ini yaratishda qo'llaniladigan usullar "ikki marta kengaytmali" fayllardan, o'z-o'zidan ochiladigan arxivlardan, makroli hujjatlardan ma'lum ekspluatatsiyalargacha bo'lgan hujumlarda farqlanadi.

ESET: OceanLotus kiberguruhi uchun yangi orqa eshiklarni yetkazib berish sxemalari

Microsoft Equation Editor-da ekspluatatsiyadan foydalanish

2018-yil o‘rtalarida OceanLotus CVE-2017-11882 zaifligidan foydalangan holda kampaniya o‘tkazdi. Kiberguruhning zararli hujjatlaridan biri 360 Threat Intelligence Center mutaxassislari tomonidan tahlil qilindi (xitoy tilida tadqiqot), shu jumladan ekspluatatsiyaning batafsil tavsifi. Quyidagi postda bunday zararli hujjatning umumiy ko'rinishi mavjud.

birinchi bosqichi

Hujjat FW Report on demonstration of former CNRP in Republic of Korea.doc (SHA-1: D1357B284C951470066AAA7A8228190B88A5C7C3) yuqoridagi tadqiqotda aytib o'tilganlarga o'xshaydi. Bu qiziq, chunki u Kambodja siyosatiga qiziqqan foydalanuvchilarga qaratilgan (CNRP - Kambodja milliy qutqaruv partiyasi, 2017 yil oxirida tarqatib yuborilgan). .doc kengaytmasiga qaramay, hujjat RTF formatida (quyidagi rasmga qarang), axlat kodini o'z ichiga oladi va u ham buzilgan.

ESET: OceanLotus kiberguruhi uchun yangi orqa eshiklarni yetkazib berish sxemalari
Shakl 1. RTFda "Axlat"

Buzilgan elementlar mavjud bo'lsa ham, Word ushbu RTF faylini muvaffaqiyatli ochadi. 2-rasmda ko'rib turganingizdek, 0xC00 ofsetida EQNOLEFILEHDR tuzilmasi, undan keyin MTEF sarlavhasi, keyin esa shrift uchun MTEF yozuvi (3-rasm) mavjud.

ESET: OceanLotus kiberguruhi uchun yangi orqa eshiklarni yetkazib berish sxemalari
2-rasm. FONT kiritish qiymatlari

ESET: OceanLotus kiberguruhi uchun yangi orqa eshiklarni yetkazib berish sxemalari
Shakl 3. FONT yozish formati

Maydonda toshib ketishi mumkin ism, chunki nusxa olishdan oldin uning o'lchami tekshirilmaydi. Juda uzun ism zaiflikni keltirib chiqaradi. RTF faylining mazmunidan ko'rinib turibdiki (0-rasmda 26xC2 ofset), bufer qobiq kodi bilan to'ldirilgan va undan keyin qo'g'irchoq buyrug'i (0x90) va qaytish manzili 0x402114. Manzil dialog elementi hisoblanadi EQNEDT32.exe, ko'rsatmalarni ko'rsatuvchi RET. Bu EIP maydonning boshlanishiga ishora qiladi ismqobiq kodini o'z ichiga oladi.

ESET: OceanLotus kiberguruhi uchun yangi orqa eshiklarni yetkazib berish sxemalari
Rasm 4. Exploit shellcodening boshlanishi

Manzil 0x45BD3C joriy yuklangan tuzilmaga ko'rsatgichga etgunga qadar, o'zgarmaydigan o'zgaruvchini saqlaydi MTEFData. Shellkodning qolgan qismi shu yerda.

Shellcodening maqsadi ochiq hujjatga o'rnatilgan qobiq kodining ikkinchi qismini bajarishdir. Asl qobiq kodi birinchi navbatda barcha tizim identifikatorlarini takrorlash orqali ochiq hujjatning fayl deskriptorini topishga harakat qiladi (NtQuerySystemInformation argument bilan SystemExtendedHandleInformation) va ularning mos kelishini tekshirish PID tavsiflovchi va PID jarayon WinWord va hujjat kirish niqobi bilan ochilganmi - 0x12019F.

To'g'ri tutqich (boshqa ochiq hujjatning tutqichi emas) topilganligini tasdiqlash uchun faylning mazmuni funksiya yordamida ko'rsatiladi. CreateFileMapping, va qobiq kodi hujjatning oxirgi to'rt bayti mos kelishini tekshiradi "yyyy"(tuxum ovlash usuli). Moslik topilgach, hujjat vaqtinchalik jildga ko'chiriladi (GetTempPath) Qanaqasiga ole.dll. Keyin hujjatning oxirgi 12 bayti o'qiladi.

ESET: OceanLotus kiberguruhi uchun yangi orqa eshiklarni yetkazib berish sxemalari
Shakl 5. Hujjat belgilarining oxiri

Markerlar orasidagi 32 bitli qiymat AABBCCDD и yyyy keyingi qobiq kodining ofsetidir. Funktsiya yordamida chaqiriladi CreateThread. Ilgari OceanLotus guruhi tomonidan ishlatilgan qobiq kodini chiqarib oldi. Python emulyatsiya skripti, biz 2018-yil mart oyida chiqargan, hali ham ikkinchi bosqich borini uchun ishlaydi.

Ikkinchi bosqich

Komponentlarni olib tashlash

Fayl va katalog nomlari dinamik ravishda tanlanadi. Kod tasodifiy bajariladigan yoki DLL fayl nomini tanlaydi C:Windowssystem32. Keyin u o'z resurslariga so'rov yuboradi va maydonni oladi FileDescription jild nomi sifatida foydalanish uchun. Agar bu ishlamasa, kod tasodifiy kataloglardan papka nomini tanlaydi %ProgramFiles% yoki C:Windows (GetWindowsDirectoryW dan). U mavjud fayllarga zid bo'lishi mumkin bo'lgan nomdan foydalanishni oldini oladi va unda quyidagi so'zlarni o'z ichiga olmaydi: windows, Microsoft, desktop, system, system32 yoki syswow64. Agar katalog allaqachon mavjud bo'lsa, nomga "NLS_{6 belgi}" qo'shiladi.

resurs 0x102 tahlil qilinadi va fayllar ichiga tashlanadi %ProgramFiles% yoki %AppData%, tasodifiy tanlangan jildga. Yaratish vaqti bir xil qiymatlarga ega bo'lishi uchun o'zgartirildi kernel32.dll.

Misol uchun, bu erda bajariladigan faylni tanlash orqali yaratilgan papka va fayllar ro'yxati C:Windowssystem32TCPSVCS.exe ma'lumotlar manbai sifatida.

ESET: OceanLotus kiberguruhi uchun yangi orqa eshiklarni yetkazib berish sxemalari
Shakl 6. Turli komponentlarni ajratib olish

Resurs tuzilishi 0x102 bir tomchi ichida juda murakkab. Bir so'z bilan aytganda, u quyidagilarni o'z ichiga oladi:
- Fayl nomlari
- Fayl hajmi va mazmuni
— Siqish formati (COMPRESSION_FORMAT_LZNT1, funksiya tomonidan ishlatiladi RtlDecompressBuffer)

Birinchi fayl sifatida tiklanadi TCPSVCS.exe, bu qonuniydir AcroTranscoder.exe (ko'ra.) FileDescription, SHA-1: 2896738693A8F36CC7AD83EF1FA46F82F32BE5A3).

Ba'zi DLL fayllari 11 MB dan katta ekanligini payqagan bo'lishingiz mumkin. Buning sababi, bajariladigan fayl ichida tasodifiy ma'lumotlarning katta qo'shni buferi joylashtirilgan. Bu ba'zi xavfsizlik mahsulotlari tomonidan aniqlanmaslikning bir usuli bo'lishi mumkin.

Qat'iylikni ta'minlash

resurs 0x101 tomizgichda qat'iylikni qanday ta'minlash kerakligini ko'rsatadigan ikkita 32 bitli tamsayı mavjud. Birinchisining qiymati zararli dastur administrator huquqlarisiz qanday davom etishini bildiradi.

ESET: OceanLotus kiberguruhi uchun yangi orqa eshiklarni yetkazib berish sxemalari
Jadval 1. Administrator huquqlarisiz doimiylik mexanizmi

Ikkinchi butun sonning qiymati administrator huquqlari bilan ishlayotganda zararli dastur qanday qilib barqarorlikka erishishi kerakligini belgilaydi.

ESET: OceanLotus kiberguruhi uchun yangi orqa eshiklarni yetkazib berish sxemalari
Jadval 2. Administrator huquqlari bilan doimiylik mexanizmi

Xizmat nomi kengaytmasiz fayl nomi; displey nomi jildning nomidir, lekin agar u allaqachon mavjud bo'lsa, unga " qatori qo'shiladiRevision 1” (ishlatilmagan ism topilmaguncha raqam ortadi). Operatorlar xizmat orqali qat'iylik mustahkam ekanligiga ishonch hosil qilishdi - ishlamay qolganda, xizmat 1 soniyadan keyin qayta ishga tushirilishi kerak. Keyin qiymat WOW64 Yangi xizmatning ro'yxatga olish kitobi kaliti 4 ga o'rnatilgan bo'lib, u 32 bitli xizmat ekanligini ko'rsatadi.

Rejalashtirilgan vazifa bir nechta COM interfeyslari orqali yaratiladi: ITaskScheduler, ITask, ITaskTrigger, IPersistFile и ITaskScheduler. Asosan, zararli dastur yashirin vazifani yaratadi, joriy foydalanuvchi yoki administrator ma'lumotlari bilan birga hisob ma'lumotlarini o'rnatadi va keyin tetikni o'rnatadi.

Bu 24 soat davom etadigan va 10 daqiqalik ikkita ijro orasidagi intervalli kundalik vazifa bo'lib, u doimiy ravishda ishlaydi.

Zararli bit

Bizning misolimizda bajariladigan fayl TCPSVCS.exe (AcroTranscoder.exe) u bilan birga qayta o'rnatilgan DLL fayllarini yuklaydigan qonuniy dasturiy ta'minot. Bunday holda, bu qiziqish uyg'otadi Flash Video Extension.dll.

Uning funktsiyasi DLLMain faqat boshqa funktsiyani chaqiradi. Ba'zi noaniq predikatlar mavjud:

ESET: OceanLotus kiberguruhi uchun yangi orqa eshiklarni yetkazib berish sxemalari
7-rasm. Noaniq predikatlar

Ushbu noto'g'ri tekshiruvlardan so'ng kod bo'lim oladi .text fayl TCPSVCS.exe, himoyasini o'zgartiradi PAGE_EXECUTE_READWRITE va soxta ko'rsatmalarni qo'shish orqali uni qayta yozadi:

ESET: OceanLotus kiberguruhi uchun yangi orqa eshiklarni yetkazib berish sxemalari
Rasm 8. Ko'rsatmalar ketma-ketligi

Funktsiya manzili oxirida FLVCore::Uninitialize(void), eksport qilindi Flash Video Extension.dll, ko'rsatma qo'shiladi CALL. Bu shuni anglatadiki, zararli DLL yuklangandan so'ng, ish vaqti qo'ng'iroq qilganda WinMain в TCPSVCS.exe, ko'rsatma ko'rsatkichi sabab bo'ladigan NOP ga ishora qiladi FLVCore::Uninitialize(void), keyingi bosqich.

Funktsiya oddiygina bilan boshlanadigan mutex yaratadi {181C8480-A975-411C-AB0A-630DB8B0A221}keyin joriy foydalanuvchi nomi. Keyin u joylashuvga bog'liq bo'lmagan kodni o'z ichiga olgan dumping *.db3 faylini o'qiydi va foydalanadi CreateThread tarkibni bajarish uchun.

*.db3 faylining mazmuni OceanLotus guruhi odatda foydalanadigan qobiq kodidir. Biz chop etgan emulyator skriptidan foydalanib, uning foydali yukini yana muvaffaqiyatli ochdik GitHub-da.

Skript yakuniy bosqichni chiqaradi. Ushbu komponent biz allaqachon tahlil qilgan orqa eshikdir oldingi OceanLotus tadqiqoti. Bu GUID tomonidan aniqlanishi mumkin {A96B020F-0000-466F-A96D-A91BBF8EAC96} ikkilik fayl. Zararli dastur konfiguratsiyasi hali ham PE resursida shifrlangan. U taxminan bir xil konfiguratsiyaga ega, ammo C&C serverlari avvalgilaridan farq qiladi:

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

OceanLotus jamoasi aniqlanmaslik uchun yana turli usullarning kombinatsiyasini namoyish etadi. Ular infektsiya jarayonining "tozalangan" diagrammasi bilan qaytishdi. Tasodifiy nomlarni tanlash va bajariladigan fayllarni tasodifiy ma'lumotlar bilan to'ldirish orqali ular ishonchli IoC sonini kamaytiradi (xeshlar va fayl nomlari asosida). Bundan tashqari, uchinchi tomon DLL yuklashdan foydalanish tufayli, tajovuzkorlar faqat qonuniy ikkilik faylni olib tashlashlari kerak. AcroTranscoder.

O'z-o'zidan ochiladigan arxivlar

RTF fayllaridan so'ng, guruh foydalanuvchini chalkashtirib yuborish uchun umumiy hujjat piktogrammalari bilan o'z-o'zidan ochiladigan (SFX) arxivlarga o'tdi. Bu haqda Threatbook yozgan (xitoy tilida havola). Ishga tushgandan so'ng, o'z-o'zidan ochiladigan RAR fayllari o'chiriladi va .ocx kengaytmali DLL-lar bajariladi, ularning yakuniy yuklanishi avvalroq hujjatlashtirilgan. {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll. 2019-yil yanvar oyi oʻrtalaridan boshlab OceanLotus ushbu texnikadan qayta foydalanmoqda, biroq vaqt oʻtishi bilan baʼzi konfiguratsiyalarni oʻzgartirmoqda. Ushbu bo'limda biz texnika va o'zgarishlar haqida gapiramiz.

Lure yaratish

Hujjat THICH-THONG-LAC-HANH-THAP-THIEN-VIET-NAM (1).EXE (SHA-1: AC10F5B1D5ECAB22B7B418D6E98FA18E32BBDEAB) birinchi marta 2018 yilda topilgan. Ushbu SFX fayli oqilona yaratilgan - tavsifda (Versiya haqida ma'lumot) bu JPEG tasvir ekanligini aytadi. SFX skripti quyidagicha ko'rinadi:

ESET: OceanLotus kiberguruhi uchun yangi orqa eshiklarni yetkazib berish sxemalari
9-rasm. SFX buyruqlari

Zararli dastur qayta tiklanadi {9ec60ada-a200-4159-b310-8071892ed0c3}.ocx (SHA-1: EFAC23B0E6395B1178BCF7086F72344B24C04DCC), shuningdek, rasm 2018 thich thong lac.jpg.

Yopiq rasm quyidagicha ko'rinadi:

ESET: OceanLotus kiberguruhi uchun yangi orqa eshiklarni yetkazib berish sxemalari
10-rasm. Aldash tasviri

Siz SFX skriptidagi dastlabki ikkita satr OCX faylini ikki marta chaqirishini payqagandirsiz, ammo bu xato emas.

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

OCX faylining boshqaruv oqimi boshqa OceanLotus komponentlariga juda o'xshaydi - ko'plab buyruqlar ketma-ketligi JZ/JNZ и PUSH/RET, axlat kodi bilan almashtiriladi.

ESET: OceanLotus kiberguruhi uchun yangi orqa eshiklarni yetkazib berish sxemalari
11-rasm. Buzilgan kod

Keraksiz kodni filtrlagandan so'ng, eksport qiling DllRegisterServer, chaqirildi regsvr32.exe, quyidagicha:

ESET: OceanLotus kiberguruhi uchun yangi orqa eshiklarni yetkazib berish sxemalari
Rasm 12. Asosiy o'rnatuvchi kodi

Asosan, birinchi qo'ng'iroqda DllRegisterServer eksport ro'yxatga olish qiymatini o'rnatadi HKCUSOFTWAREClassesCLSID{E08A0F4B-1F65-4D4D-9A09-BD4625B9C5A1}Model DLL da shifrlangan ofset uchun (0x10001DE0).

Funktsiya ikkinchi marta chaqirilganda, u xuddi shu qiymatni o'qiydi va shu manzilda ishlaydi. Bu erdan resurs va RAMdagi ko'plab harakatlar o'qiladi va bajariladi.

Shellcode o'tgan OceanLotus kampaniyalarida ishlatilgan bir xil PE yuklagichidir. U yordamida taqlid qilish mumkin bizning skriptimiz. Oxir-oqibat u qayta tiklanadi db293b825dcc419ba7dc2c49fa2757ee.dll, uni xotiraga yuklaydi va bajaradi DllEntry.

DLL o'z resursi tarkibini chiqaradi, shifrini ochadi (AES-256-CBC) va uni ochadi (LZMA). Resurs o'ziga xos formatga ega, uni dekompilyatsiya qilish oson.

ESET: OceanLotus kiberguruhi uchun yangi orqa eshiklarni yetkazib berish sxemalari
Shakl 13. O'rnatuvchi konfiguratsiya tuzilishi (KaitaiStruct Visualizer)

Konfiguratsiya aniq ko'rsatilgan - imtiyozlar darajasiga qarab, ikkilik ma'lumotlar yoziladi %appdata%IntellogsBackgroundUploadTask.cpl yoki %windir%System32BackgroundUploadTask.cpl (yoki SysWOW64 64 bitli tizimlar uchun).

Keyinchalik qat'iyatlilik nom bilan vazifa yaratish orqali ta'minlanadi BackgroundUploadTask[junk].jobqayerda [junk] baytlar to'plamini ifodalaydi 0x9D и 0xA0.

Vazifa ilova nomi %windir%System32control.exe, va parametr qiymati yuklab olingan ikkilik faylga yo'ldir. Yashirin vazifa har kuni ishlaydi.

Strukturaviy jihatdan, CPL fayli ichki nomga ega bo'lgan DLL faylidir ac8e06de0a6c4483af9837d96504127e.dll, qaysi funktsiyani eksport qiladi CPlApplet. Bu fayl o'zining yagona resursini parolini hal qiladi {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll, keyin ushbu DLL-ni yuklaydi va uning yagona eksportini chaqiradi DllEntry.

Orqa eshik konfiguratsiya fayli

Orqa eshik konfiguratsiyasi shifrlangan va uning resurslariga kiritilgan. Konfiguratsiya faylining tuzilishi avvalgisiga juda o'xshash.

ESET: OceanLotus kiberguruhi uchun yangi orqa eshiklarni yetkazib berish sxemalari
14-rasm. Orqa eshik konfiguratsiyasi tuzilishi (KaitaiStruct Visualizer)

Tuzilishi o'xshash bo'lsa-da, ko'plab maydon qiymatlari ko'rsatilganidan yangilangan bizning eski hisobotimiz.

Ikkilik massivning birinchi elementi DLL ni o'z ichiga oladi (HttpProv.dll MD5: 2559738D1BD4A999126F900C7357B759), Tencent tomonidan aniqlangan. Ammo eksport nomi ikkilikdan olib tashlanganligi sababli, xeshlar mos kelmaydi.

Qo'shimcha tadqiqotlar

Namunalarni yig'ishda biz ba'zi xususiyatlarga e'tibor qaratdik. Hozirgina tasvirlangan namuna 2018 yil iyul oyida paydo bo'lgan va shunga o'xshash boshqalar 2019 yil yanvar oyining o'rtalaridan fevral oyining boshlarida paydo bo'lgan. SFX arxivi qonuniy aldash hujjati va zararli OSX faylini tashlab, infektsiya vektori sifatida ishlatilgan.

OceanLotus soxta vaqt belgilaridan foydalansa ham, biz SFX va OCX fayllarining vaqt belgilari har doim bir xil ekanligini payqadik (0x57B0C36A (08 @ 14:2016 UTC) va 0x498BE80F (02/06/2009 @ 7:34 UTC) mos ravishda). Bu, ehtimol, mualliflarning bir xil shablonlardan foydalanadigan va ba'zi xususiyatlarni o'zgartiradigan qandaydir "dizayner" ga ega ekanligini ko'rsatadi.

2018 yil boshidan beri biz o'rgangan hujjatlar orasida hujumchilarni qiziqtirgan mamlakatlarni ko'rsatadigan turli nomlar mavjud:

— Kambodja ommaviy axborot vositalarining yangi aloqa ma'lumotlari (New).xls.exe
— míngyín (yàngíngyín).exe (CVning soxta pdf hujjati)
— fikr-mulohaza, 28 yil 29-2018 iyul kunlari AQShda Rally.exe

Orqa eshik topilganidan beri {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll va uning tahlilini bir nechta tadqiqotchilar tomonidan nashr etilganda, biz zararli dastur konfiguratsiyasi ma'lumotlarida ba'zi o'zgarishlarni kuzatdik.

Birinchidan, mualliflar yordamchi DLL-lardan nomlarni olib tashlashni boshladilar (DNSprov.dll va ikkita versiya HttpProv.dll). Keyin operatorlar uchinchi DLL-ni (ikkinchi versiya HttpProv.dll), faqat bittasini joylashtirishni tanlash.

Ikkinchidan, orqa eshik konfiguratsiyasining ko'p maydonlari o'zgartirildi, chunki ko'plab IoC mavjud bo'lganda aniqlashdan qochish mumkin. Mualliflar tomonidan o'zgartirilgan muhim maydonlarga quyidagilar kiradi:

  • AppX ro'yxatga olish kitobi kaliti o'zgartirildi (qarang IoCs)
  • mutex kodlash qatori ("def", "abc", "ghi")
  • port raqami

Nihoyat, tahlil qilingan barcha yangi versiyalarda IoC bo'limida ro'yxatga olingan yangi C&C mavjud.

topilmalar

OceanLotus rivojlanishda davom etmoqda. Kiberguruh asboblar va hiyla-nayranglarni takomillashtirish va kengaytirishga qaratilgan. Mualliflar mavzusi mo'ljallangan qurbonlarga tegishli bo'lgan diqqatni tortuvchi hujjatlardan foydalangan holda zararli yuklarni yashiradi. Ular yangi sxemalarni ishlab chiqadilar, shuningdek, Equation Editor ekspluatatsiyasi kabi ommaviy foydalanish mumkin bo'lgan vositalardan foydalanadilar. Bundan tashqari, ular qurbonlarning mashinalarida qolgan artefaktlar sonini kamaytirish uchun vositalarni takomillashtirmoqda va shu bilan antivirus dasturlari tomonidan aniqlash imkoniyatini kamaytiradi.

Murosaga kelish ko'rsatkichlari

Murosa ko'rsatkichlari, shuningdek, MITER ATT&CK atributlari mavjud Welivesecurity haqida и GitHub-da.

Manba: www.habr.com

a Izoh qo'shish