ESET: OceanLotus кибер тобына арналған жаңа бэкдор жеткізу схемалары

Бұл постта біз OceanLotus (APT32 және APT-C-00) кибер тобы жақында жалпыға қолжетімді эксплуатациялардың бірін қалай пайдаланғанын айтамыз. CVE-2017-11882, Microsoft Office жүйесіндегі жадтың бүліну осалдықтары және топтың зиянды бағдарламасы бұзылған жүйелерде із қалдырмай тұрақтылыққа қалай қол жеткізеді. Әрі қарай, біз 2019 жылдың басынан бері топ кодты іске қосу үшін өздігінен ашылатын мұрағаттарды қалай пайдаланғанын сипаттаймыз.

OceanLotus кибер тыңшылыққа маманданған, оның басымдықтары Оңтүстік-Шығыс Азия елдері. Шабуыл жасаушылар әлеуетті құрбандардың назарын аударатын, оларды бэкдорды орындауға сендіру үшін жалған құжаттарды жасайды, сонымен қатар құралдарды әзірлеуде жұмыс істейді. Бал балшықтарын жасау үшін қолданылатын әдістер «қос кеңейтілген» файлдардан, өздігінен ашылатын мұрағаттардан, макростары бар құжаттардан белгілі эксплуаттарға дейін әртүрлі шабуылдарға байланысты.

ESET: OceanLotus кибер тобына арналған жаңа бэкдор жеткізу схемалары

Microsoft Equation Editor қолданбасында эксплуатацияны пайдалану

2018 жылдың ортасында OceanLotus CVE-2017-11882 осалдығын пайдаланатын науқан жүргізді. Кибертоптың зиянды құжаттарының бірін 360 Threat Intelligence Center мамандары талдаған (қытай тілінде зерттеу), оның ішінде эксплуатацияның толық сипаттамасы. Төмендегі жазбада осындай зиянды құжаттың шолуы бар.

бірінші кезең

Құжат FW Report on demonstration of former CNRP in Republic of Korea.doc (SHA-1: D1357B284C951470066AAA7A8228190B88A5C7C3) жоғарыдағы зерттеуде айтылғанға ұқсас. Бұл қызықты, себебі ол Камбоджа саясатына қызығушылық танытқан пайдаланушыларға бағытталған (CNRP - Камбоджа Ұлттық Құтқару партиясы, 2017 жылдың соңында таратылған). .doc кеңейтіміне қарамастан, құжат RTF пішімінде (төмендегі суретті қараңыз), қоқыс коды бар және сонымен бірге бұрмаланған.

ESET: OceanLotus кибер тобына арналған жаңа бэкдор жеткізу схемалары
Сурет 1. РТФ-дағы «Қоқыс».

Бұзылған элементтер болса да, Word бұл RTF файлын сәтті ашады. 2-суретте көріп отырғаныңыздай, 0xC00 офсетінде EQNOLEFILEHDR құрылымы бар, одан кейін MTEF тақырыбы, содан кейін қаріп үшін MTEF жазбасы (3-сурет).

ESET: OceanLotus кибер тобына арналған жаңа бэкдор жеткізу схемалары
2-сурет. FONT енгізу мәндері

ESET: OceanLotus кибер тобына арналған жаңа бэкдор жеткізу схемалары
Сурет 3. FONT жазу пішімі

Егістікте толып кетуі мүмкін ат, себебі оның өлшемі көшіру алдында тексерілмейді. Тым ұзын атау осалдықты тудырады. RTF файлының мазмұнынан көріп отырғаныңыздай (0-суретте 26xC2 офсет), буфер қабықша кодымен толтырылған, содан кейін жалған пәрмен (0x90) және қайтару мекенжайы 0x402114. Мекенжай диалогтық элемент болып табылады EQNEDT32.exe, нұсқауларды көрсетеді RET. Бұл EIP өрістің басына нұсқайды атқабық кодын қамтиды.

ESET: OceanLotus кибер тобына арналған жаңа бэкдор жеткізу схемалары
Сурет 4. Эксплуатациялық қабық кодының басталуы

Мекен-жай 0x45BD3C ағымдағы жүктелген құрылымға көрсеткішке жеткенше сілтемесі жойылған айнымалы мәнді сақтайды MTEFData. Shell-кодтың қалған бөлігі осында.

Shellcode мақсаты ашық құжатқа енгізілген қабық кодының екінші бөлігін орындау болып табылады. Түпнұсқа қабық коды алдымен барлық жүйе дескрипторларын қайталау арқылы ашық құжаттың файл дескрипторын табуға тырысады (NtQuerySystemInformation дәлелмен SystemExtendedHandleInformation) және олардың сәйкестігін тексеру PID дескриптор және PID процесс WinWord және құжат кіру маскасымен ашылды ма - 0x12019F.

Дұрыс дескриптор (басқа ашық құжаттың дескрипті емес) табылғанын растау үшін файлдың мазмұны функция арқылы көрсетіледі. CreateFileMapping, және қабық коды құжаттың соңғы төрт байтының сәйкестігін тексереді "yyyy«(Жұмыртқа аулау әдісі). Сәйкестік табылғаннан кейін құжат уақытша қалтаға көшіріледі (GetTempPath) Қалай ole.dll. Содан кейін құжаттың соңғы 12 байты оқылады.

ESET: OceanLotus кибер тобына арналған жаңа бэкдор жеткізу схемалары
Сурет 5. Құжат маркерлерінің соңы

Маркерлер арасындағы 32 биттік мән AABBCCDD и yyyy келесі қабық кодының ығысуы болып табылады. Функцияның көмегімен деп аталады CreateThread. Бұрын OceanLotus тобы пайдаланған қабық коды шығарылды. Python эмуляция сценарийі, біз 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 (сәйкес) FileDescription, SHA-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), келесі кезең.

Функция жай ғана бастап мутекс жасайды {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) мұрағаттарға көшті. Бұл туралы Threbook жазды (қытай тілінде сілтеме). Іске қосылғаннан кейін өздігінен ашылатын RAR файлдары жойылады және соңғы пайдалы жүктемесі бұрын құжатталған .ocx кеңейтімі бар DLL файлдары орындалады. {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).

Функция екінші рет шақырылғанда, ол бірдей мәнді оқып, сол мекенжайда орындалады. Осыдан жедел жадтағы ресурс және көптеген әрекеттер оқылады және орындалады.

Shellcode бұрынғы OceanLotus науқандарында пайдаланылған PE жүктеушісі болып табылады. Оны пайдалану арқылы эмуляциялауға болады біздің сценарий. Соңында ол қалпына келтіреді 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. Backdoor конфигурация құрылымы (KaitaiStruct Visualizer)

Құрылым ұқсас болғанымен, көптеген өріс мәндері көрсетілгендерден жаңартылды біздің ескі есеп.

Екілік массивтің бірінші элементінде DLL бар (HttpProv.dll MD5: 2559738D1BD4A999126F900C7357B759), Tencent анықтаған. Бірақ экспорт атауы екілік жүйеден жойылғандықтан, хэштер сәйкес келмейді.

Қосымша зерттеулер

Үлгілерді жинау кезінде біз кейбір ерекшеліктерді байқадық. Жаңа ғана сипатталған үлгі 2018 жылдың шілдесінде пайда болды, ал басқалары 2019 жылдың қаңтар айының ортасынан ақпан айының басында пайда болды. SFX мұрағаты заңды алдау құжатын және зиянды OSX файлын тастап, инфекция векторы ретінде пайдаланылды.

OceanLotus жалған уақыт белгілерін пайдаланса да, SFX және OCX файлдарының уақыт белгілері әрқашан бірдей екенін байқадық (0x57B0C36A (08 @ 14:2016 UTC) және 0x498BE80F (02/06/2009 @ 7:34 UTC) тиісінше). Бұл авторларда бірдей үлгілерді қолданатын және кейбір сипаттамаларды жай ғана өзгертетін қандай да бір «дизайнер» бар екенін көрсетсе керек.

2018 жылдың басынан бері біз зерттеген құжаттардың арасында шабуылдаушыларды қызықтыратын елдерді көрсететін әртүрлі атаулар бар:

— Камбоджа медиасының жаңа байланыс ақпараты(New).xls.exe
— 李建香 (个人简历).exe (резюменің жалған pdf құжаты)
— кері байланыс, АҚШ-тағы ралли 28-29 шілде 2018.exe

Артқы есік ашылғаннан бері {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll және оның талдауын бірнеше зерттеушілер жариялағанда, біз зиянды бағдарлама конфигурациясының деректерінде кейбір өзгерістерді байқадық.

Біріншіден, авторлар көмекші DLL файлдарынан атауларды жоюды бастады (DNSprov.dll және екі нұсқасы HttpProv.dll). Содан кейін операторлар үшінші DLL (екінші нұсқасы HttpProv.dll), тек біреуін ендіруді таңдау.

Екіншіден, көптеген IoC қол жетімді болған сайын анықтаудан жалтаратын көптеген бэкдор конфигурация өрістері өзгертілді. Авторлар өзгерткен маңызды өрістерге мыналар жатады:

  • AppX тіркеу кілті өзгертілді (IoC қараңыз)
  • мутекстік кодтау жолы («def», «abc», «ghi»)
  • порт нөмірі

Соңында, талданған барлық жаңа нұсқаларда IoC бөлімінде тізімделген жаңа C&C бар.

қорытындылар

OceanLotus дамуын жалғастыруда. Кибертоп құралдар мен айла-амалдарды жетілдіруге және кеңейтуге бағытталған. Авторлар тақырыбы болжанған құрбандарға қатысы бар назар аударатын құжаттарды пайдалана отырып, зиянды жүктерді жасырады. Олар жаңа схемаларды әзірлейді, сондай-ақ Equation Editor эксплуатациясы сияқты жалпыға қолжетімді құралдарды пайдаланады. Сонымен қатар, олар құрбандардың машиналарында қалған артефакттардың санын азайту үшін құралдарды жетілдіреді, осылайша антивирустық бағдарламалық құрал арқылы анықтау мүмкіндігін азайтады.

Келісім көрсеткіштері

Ымыра көрсеткіштері, сондай-ақ MITER ATT&CK атрибуттары қол жетімді Welivesecurity туралы и GitHub арналған.

Ақпарат көзі: www.habr.com

пікір қалдыру