У овом посту ћемо вам рећи како је сајбер група ОцеанЛотус (АПТ32 и АПТ-Ц-00) недавно користила један од јавно доступних експлоатација за , рањивости оштећења меморије у Мицрософт Оффице-у и како злонамерни софтвер групе постиже постојаност на компромитованим системима без остављања трага. Затим ћемо описати како, од почетка 2019. године, група користи самораспакирајуће архиве за покретање кода.
ОцеанЛотус је специјализован за сајбер шпијунажу, а приоритетне мете су земље југоисточне Азије. Нападачи кривотворе документе који привлаче пажњу потенцијалних жртава како би их убедили да изврше бацкдоор, а такође раде на развоју алата. Методе које се користе за креирање хонеипотс варирају у зависности од напада, од датотека са „двоструким проширењима“, архива које се самораспакују, докумената са макроима, до познатих експлоатација.

Коришћење експлоатације у Мицрософт Екуатион Едитору
Средином 2018. године, ОцеанЛотус је спровео кампању искоришћавајући рањивост ЦВЕ-2017-11882. Један од злонамерних докумената сајбер групе анализирали су стручњаци из 360 Тхреат Интеллигенце Центер (), укључујући детаљан опис експлоатације. Пост испод садржи преглед таквог злонамерног документа.
Прва фаза
Dokument FW Report on demonstration of former CNRP in Republic of Korea.doc (СХА-1: D1357B284C951470066AAA7A8228190B88A5C7C3) је сличан оном поменутом у претходној студији. Занимљива је јер је намењена корисницима заинтересованим за камбоџанску политику (ЦНРП - Цамбодиа Натионал Ресцуе Парти, распуштена крајем 2017.). Упркос проширењу .доц, документ је у РТФ формату (погледајте слику испод), садржи код за смеће, а такође је изобличен.

Слика 1. „Смеће“ у РТФ-у
Иако постоје искривљени елементи, Ворд успешно отвара ову РТФ датотеку. Као што можете видети на слици 2, постоји структура ЕКНОЛЕФИЛЕХДР на офсету 0кЦ00, праћена МТЕФ заглављем, а затим МТЕФ уносом (слика 3) за фонт.

Слика 2. Вредности уноса ФОНТ-а

Слика КСНУМКС.
Могуће преливање у пољу име, јер се његова величина не проверава пре копирања. Име које је предуго изазива рањивост. Као што можете видети из садржаја РТФ датотеке (оффсет 0кЦ26 на слици 2), бафер је попуњен схелл кодом праћен лажном командом (0x90) и повратну адресу 0x402114. Адреса је елемент дијалога у EQNEDT32.exe, са упутствима RET. Ово узрокује да ЕИП показује на почетак поља имекоји садржи схеллцоде.

Слика 4. Почетак експлоатског схелл кода
Адреса 0x45BD3C чува променљиву која је дереференцирана све док не дође до показивача на тренутно учитану структуру MTEFData. Остатак схелл кода је овде.
Сврха схелл кода је да изврши други део схелл кода уграђеног у отворени документ. Оригинални схеллцоде прво покушава да пронађе дескриптор датотеке отвореног документа итерацијом преко свих системских дескриптора (NtQuerySystemInformation са аргументацијом SystemExtendedHandleInformation) и провера да ли се поклапају ПИД дескриптор и ПИД процеса WinWord и да ли је документ отворен са приступном маском - 0x12019F.
Да би се потврдило да је пронађена исправна ручица (а не ручица другог отвореног документа), садржај датотеке се приказује помоћу функције CreateFileMapping, а схеллцоде проверава да ли се последња четири бајта документа подударају "yyyy"(метода лова на јаја). Када се пронађе подударање, документ се копира у привремену фасциклу (GetTempPath) како ole.dll. Затим се чита последњих 12 бајтова документа.
![]()
Слика 5. Крај маркера документа
32-битна вредност између маркера AABBCCDD и yyyy је помак следећег схелл кода. Позива се помоћу функције CreateThread. Екстраховао исти схеллцоде који је раније користила група ОцеанЛотус. , који смо објавили у марту 2018, још увек ради за другу фазу депоније.
Друга фаза
Уклањање компоненти
Имена датотека и директоријума се бирају динамички. Код насумично бира име извршне или ДЛЛ датотеке у C:Windowssystem32. Затим поставља захтев својим ресурсима и преузима поље FileDescription да се користи као име фасцикле. Ако ово не успе, код насумично бира име фасцикле из директоријума %ProgramFiles% или C:Windows (из GetWindowsDirectoryW). Он избегает использования имени, которое может конфликтовать с существующими файлами, и следит за тем, чтобы оно не содержало следующие слова: windows, Microsoft, desktop, system, system32 или syswow64. Ако директоријум већ постоји, имену се додаје „НЛС_{6 знакова}“.
ресурс 0x102 се анализира и датотеке се убацују у %ProgramFiles% или %AppData%, у случајно изабрани фолдер. Време креирања је промењено да има исте вредности као kernel32.dll.
На пример, ево фасцикле и листе датотека креираних избором извршне датотеке C:Windowssystem32TCPSVCS.exe као извор података.

Слика 6. Екстраховање различитих компоненти
Структура ресурса 0x102 у капаљку је прилично сложен. Укратко, садржи:
— Имена датотека
— Величина и садржај датотеке
— Формат компресије (COMPRESSION_FORMAT_LZNT1, који користи функција RtlDecompressBuffer)
Прва датотека се ресетује као TCPSVCS.exe, што је легитимно AcroTranscoder.exe (према FileDescription, СХА-1: 2896738693A8F36CC7AD83EF1FA46F82F32BE5A3).
Можда сте приметили да су неке ДЛЛ датотеке веће од 11 МБ. То је зато што је велики непрекидни бафер насумичних података смештен унутар извршне датотеке. Могуће је да је то начин да се избегне откривање од стране неких безбедносних производа.
Обезбеђивање упорности
ресурс 0x101 у дроппер-у садржи два 32-битна цела броја која одређују како треба обезбедити постојаност. Вредност првог одређује како ће малвер опстати без администраторских права.

Табела 1. Механизам постојаности без администраторских права
Вредност другог целог броја одређује како малвер треба да постигне постојаност када се покреће са администраторским правима.

Табела 2. Механизам постојаности са администраторским правима
Име услуге је име датотеке без екстензије; име за приказ је име фасцикле, али ако већ постоји, стринг „ се додаје уз његаRevision 1” (број се повећава све док се не пронађе некоришћено име). Оператери су се побринули да упорност кроз услугу буде чврста - у случају квара, сервис треба поново покренути након 1 секунде. Затим вредност WOW64 Кључ регистратора нове услуге је постављен на 4, што указује да је то 32-битна услуга.
Планирани задатак се креира преко неколико ЦОМ интерфејса: ITaskScheduler, ITask, ITaskTrigger, IPersistFile и ITaskScheduler. У суштини, малвер креира скривени задатак, поставља информације о налогу заједно са информацијама о тренутном кориснику или администратору, а затим поставља окидач.
Ово је дневни задатак у трајању од 24 сата и интервалима између два извршења од по 10 минута, што значи да ће радити непрекидно.
Малициоус бит
У нашем примеру, извршна датотека TCPSVCS.exe (AcroTranscoder.exe) је легитиман софтвер који учитава ДЛЛ-ове који се ресетују заједно са њим. У овом случају, то је од интереса Flash Video Extension.dll.
Његова функција DLLMain само позива другу функцију. Присутни су неки нејасни предикати:

Слика 7. Фазни предикати
Након ових обмањујућих провера, код добија одељак .text филе TCPSVCS.exe, мења своју одбрану у PAGE_EXECUTE_READWRITE и преписује га додавањем лажних инструкција:

Слика 8. Редослед инструкција
На крају до адресе функције FLVCore::Uninitialize(void), извезено Flash Video Extension.dll, додато је упутство CALL. То значи да након учитавања злонамерног ДЛЛ-а, када га рунтиме позове WinMain в TCPSVCS.exe, показивач инструкције ће показивати на НОП, узрокујући FLVCore::Uninitialize(void), наредна фаза.
Функција једноставно креира мутекс почевши од {181C8480-A975-411C-AB0A-630DB8B0A221}праћено тренутним корисничким именом. Затим чита избачену *.дб3 датотеку, која садржи код независан од позиције, и користи CreateThread да изврши садржај.
Садржај *.дб3 датотеке је схеллцоде који група ОцеанЛотус обично користи. Поново смо успешно распаковали његов терет користећи скрипту емулатора коју смо објавили .
Сценарио издваја завршну фазу. Ова компонента је бацкдоор, који смо већ анализирали . Ово може да одреди ГУИД {A96B020F-0000-466F-A96D-A91BBF8EAC96} бинарни фајл. Конфигурација злонамерног софтвера је и даље шифрована у ПЕ ресурсу. Има приближно исту конфигурацију, али се Ц&Ц сервери разликују од претходних:
- andreagahuvrauvin[.]com
- byronorenstein[.]com
- stienollmache[.]xyz
Тим ОцеанЛотус поново демонстрира комбинацију различитих техника како би се избегло откривање. Вратили су се са „пречишћеним“ дијаграмом процеса инфекције. Одабиром насумичних имена и попуњавањем извршних датотека насумичним подацима, они смањују број поузданих ИоЦ-а (на основу хешева и имена датотека). Штавише, захваљујући коришћењу учитавања ДЛЛ-а треће стране, нападачи треба само да уклоне легитимни бинарни AcroTranscoder.
Самораспакујућа архива
Након РТФ датотека, група је прешла на самораспакирајуће (СФКС) архиве са уобичајеним иконама докумената како би додатно збунила корисника. Тхреатбоок је писао о овоме (). По покретању, РАР датотеке које се саме распакују се одбацују и извршавају се ДЛЛ-ови са екстензијом .оцк, чији је коначни терет претходно документован {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll. Од средине јануара 2019, ОцеанЛотус поново користи ову технику, али временом мења неке конфигурације. У овом одељку ћемо говорити о техници и променама.
Креирање мамаца
Dokument THICH-THONG-LAC-HANH-THAP-THIEN-VIET-NAM (1).EXE (СХА-1: AC10F5B1D5ECAB22B7B418D6E98FA18E32BBDEAB) први пут је пронађен 2018. Ова СФКС датотека је направљена мудро - у опису (Информације о верзији) каже да је ово ЈПЕГ слика. СФКС скрипта изгледа овако:

Слика 9. СФКС команде
Малвер се ресетује {9ec60ada-a200-4159-b310-8071892ed0c3}.ocx (СХА-1: EFAC23B0E6395B1178BCF7086F72344B24C04DCC), као и слику 2018 thich thong lac.jpg.
Слика варалице изгледа овако:

Слика 10. Слика варалице
Можда сте приметили да прва два реда у СФКС скрипти двапут позивају ОЦКС датотеку, али то није грешка.
{9ec60ada-a200-4159-b310-8071892ed0c3}.ocx (ShLd.dll)
Контролни ток ОЦКС датотеке је веома сличан другим компонентама ОцеанЛотус-а – многим секвенцама команди JZ/JNZ и PUSH/RET, наизменично са кодом за смеће.

Слика 11. Замагљени код
Након филтрирања нежељеног кода, извезите DllRegisterServer, позван regsvr32.exe, као што следи:

Слика 12. Основни код инсталатера
Углавном, на први позив DllRegisterServer екпорт поставља вредност регистра HKCUSOFTWAREClassesCLSID{E08A0F4B-1F65-4D4D-9A09-BD4625B9C5A1}Model за шифровани помак у ДЛЛ (0x10001DE0).
Када се функција позове други пут, она чита исту вредност и извршава се на тој адреси. Одавде се ресурс и многе акције у РАМ-у читају и извршавају.
Схеллцоде је исти ПЕ лоадер који је коришћен у прошлим кампањама ОцеанЛотус. Може се емулирати помоћу . На крају се ресетира db293b825dcc419ba7dc2c49fa2757ee.dll, учитава га у меморију и извршава DllEntry.
ДЛЛ издваја садржај свог ресурса, дешифрује (АЕС-256-ЦБЦ) и декомпресује (ЛЗМА). Ресурс има специфичан формат који је лако декомпилирати.

Слика 13. Структура конфигурације инсталатера (КаитаиСтруцт Висуализер)
Конфигурација је експлицитно специфицирана - у зависности од нивоа привилегија, бинарни подаци ће бити уписани %appdata%IntellogsBackgroundUploadTask.cpl или %windir%System32BackgroundUploadTask.cpl (Или SysWOW64 за 64-битне системе).
Даља упорност је обезбеђена креирањем задатка са именом BackgroundUploadTask[junk].jobГде [junk] представља скуп бајтова 0x9D и 0xA0.
Назив апликације задатка %windir%System32control.exe, а вредност параметра је путања до преузете бинарне датотеке. Скривени задатак се покреће сваки дан.
Структурно, ЦПЛ датотека је ДЛЛ са интерним именом ac8e06de0a6c4483af9837d96504127e.dll, који извози функцију CPlApplet. Ова датотека дешифрује свој једини ресурс {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll, затим учитава овај ДЛЛ и позива његов једини извоз DllEntry.
Бацкдоор конфигурациони фајл
Конфигурација бацкдоор-а је шифрована и уграђена у њене ресурсе. Структура конфигурационог фајла је веома слична претходној.

Слика 14. Структура конфигурације позадинских врата (КаитаиСтруцт Висуализер)
Иако је структура слична, многе вредности поља су ажуриране од оних приказаних у .
Први елемент бинарног низа садржи ДЛЛ (HttpProv.dll МД5: 2559738D1BD4A999126F900C7357B759), . Али пошто је име извоза уклоњено из бинарне датотеке, хешови се не поклапају.
Додатна истраживања
При прикупљању узорака уочили смо неке карактеристике. Управо описани примерак појавио се око јула 2018, а други попут њега појавили су се тек од средине јануара до почетка фебруара 2019. СФКС архива је коришћена као вектор заразе, испуштајући легитимни лажни документ и злонамерну ОСКС датотеку.
Иако ОцеанЛотус користи лажне временске ознаке, приметили смо да су временске ознаке СФКС и ОЦКС датотека увек исте (0x57B0C36A (08. у 14:2016 УТЦ) и 0x498BE80F (02/06/2009 @ 7:34 ам УТЦ) респективно). Ово вероватно указује да аутори имају неку врсту „дизајнера“ који користи исте шаблоне и једноставно мења неке карактеристике.
Међу документима које смо проучавали од почетка 2018. налазе се различита имена која указују на земље од интереса за нападаче:
— Нове контакт информације Цамбодиа Медиа(Нев).клс.еке
— 李建香 (个人简历).еке (лажни пдф документ ЦВ-а)
— повратне информације, Рели у САД од 28. до 29. јула 2018.еке
Откако су задња врата откривена {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll и објављивањем његове анализе од стране неколико истраживача, приметили смо неке промене у подацима о конфигурацији малвера.
Прво, аутори су почели да уклањају имена из помоћних ДЛЛ-ова (DNSprov.dll и две верзије HttpProv.dll). Оператери су тада престали да пакују трећи ДЛЛ (друга верзија HttpProv.dll), бирајући да уградите само један.
Друго, многа поља за конфигурацију бацкдоор-а су промењена, вероватно да би се избегло откривање пошто је много ИоЦ-а постало доступно. Важна поља која су модификовали аутори укључују:
- АппКс кључ регистратора је промењен (погледајте ИоЦс)
- низ за кодирање мутекса ("деф", "абц", "гхи")
- број порта
Коначно, све нове анализиране верзије имају нове Ц&Ц наведене у одељку ИоЦ.
Налази
ОцеанЛотус наставља да се развија. Сајбер група је фокусирана на усавршавање и проширење алата и мамаца. Аутори прикривају злонамерне садржаје користећи документе који привлаче пажњу чија је тема релевантна за намераване жртве. Они развијају нове шеме и такође користе јавно доступне алате, као што је експлоатација Екуатион Едитор. Штавише, они побољшавају алате за смањење броја артефаката преосталих на машинама жртава, чиме се смањује могућност откривања од стране антивирусног софтвера.
показатељи компромиса
Доступни су индикатори компромиса као и МИТЕР АТТ&ЦК атрибути и .
Извор: ввв.хабр.цом
