Бул постто биз сизге OceanLotus кибер тобу (APT32 жана APT-C-00) жакында жалпыга жеткиликтүү эксплуатациялардын бирин кантип колдонгонун айтып беребиз. , Microsoft Office'теги эс тутумдун бузулуусунун начар жактары жана топтун кесепеттүү программасы бузулган системаларда из калтырбастан туруктуулукка кантип жетишээри. Андан кийин, биз 2019-жылдын башынан бери топ кодду иштетүү үчүн өзүн-өзү ачуучу архивдерди кантип колдонуп жатканын сүрөттөп беребиз.
OceanLotus кибер тыңчылык боюнча адистешкен, артыкчылыктуу максаттары Түштүк-Чыгыш Азиядагы өлкөлөр. Чабуулчулар потенциалдуу жабырлануучулардын көңүлүн бурган документтерди жасалмалап, аларды арткы эшикти ишке ашырууга көндүрүшөт, ошондой эле куралдарды иштеп чыгуунун үстүндө иштеп жатышат. Бал чөйчөкчөлөрүн түзүү үчүн колдонулган ыкмалар ар кандай чабуулдардан, "кош кеңейтилген" файлдардан, өз алдынча ачылуучу архивдерден, макростору бар документтерден, белгилүү эксплуатацияларга чейин.

Microsoft Equation Editor программасында эксплойт колдонуу
2018-жылдын ортосунда OceanLotus CVE-2017-11882 аялуулугун пайдалануу менен кампания өткөрдү. Кибер топтун зыяндуу документтеринин бири 360 Threat Intelligence борборунун адистери тарабынан талдоого алынган (), анын ичинде эксплуатациянын толук сүрөттөлүшү. Төмөнкү постто ушундай зыяндуу документтин серепти камтыйт.
биринчи этап
документ FW Report on demonstration of former CNRP in Republic of Korea.doc (SHA-1: D1357B284C951470066AAA7A8228190B88A5C7C3) жогорудагы изилдөөдө айтылганга окшош. Бул кызыктуу, анткени ал Камбоджанын саясатына кызыккан колдонуучуларга багытталган (CNRP - Камбоджа Улуттук куткаруу партиясы, 2017-жылдын аягында жоюлган). .doc кеңейтүүсүнө карабастан, документ RTF форматында (төмөндөгү сүрөттү караңыз), таштанды кодун камтыйт жана ошондой эле бурмаланган.

1-сүрөт. РТФдагы "Таштандылар"
Бузулган элементтер бар болсо да, Word бул RTF файлын ийгиликтүү ачат. 2-сүрөттө көрүнүп тургандай, 0xC00 офсетинде EQNOLEFILEHDR структурасы бар, андан кийин MTEF баш аты, андан кийин шрифт үчүн MTEF жазуусу (3-сүрөт) бар.

2-сүрөт. FONT киргизүү маанилери

Figure 3.
Талаада толуп кетиши мүмкүн ысым, анткени анын өлчөмү көчүрүүдөн мурун текшерилбейт. Өтө узун аталыш алсыздыкты жаратат. RTF файлынын мазмунунан көрүнүп тургандай (0-сүрөттө 26xC2 офсет), буфер shellcode менен толтурулган, андан кийин жасалма команда (0x90) жана кайтаруу дареги 0x402114. Дарек - бул диалогдун элементи EQNEDT32.exe, көрсөтмөлөрдү көрсөтүү RET. Бул EIP талаанын башталышын көрсөтөт ысымshellcode камтылган.

Сүрөт 4. Exploit shellcode башталышы
дарек 0x45BD3C учурда жүктөлгөн түзүмгө көрсөткүчкө жеткенге чейин шилтемеси жок өзгөрмө сактайт MTEFData. Shellcode калган бул жерде.
Shellcode максаты ачык документке киргизилген shellcode экинчи бөлүгүн аткаруу болуп саналат. Түпнуска shellcode алгач бардык системанын дескрипторлорун кайталоо менен ачык документтин файл дескрипторун табууга аракет кылат (NtQuerySystemInformation аргумент менен SystemExtendedHandleInformation) жана алардын дал келгендигин текшерүү PID дескриптор жана PID тартиби WinWord жана документ кирүү маскасы менен ачылганбы - 0x12019F.
Туура тутка табылганын тастыктоо үчүн (башка ачык документтин туткасы эмес) функциянын жардамы менен файлдын мазмуну көрсөтүлөт. CreateFileMapping, жана shellcode документтин акыркы төрт байтынын дал келгенин текшерет "yyyy"(Жумуртка аңчылык ыкмасы). Дал келген нерсе табылгандан кийин, документ убактылуу папкага көчүрүлөт (GetTempPath) Кантип ole.dll. Андан кийин документтин акыркы 12 байты окулат.
![]()
Сүрөт 5. Документтин маркерлеринин аягы
Маркерлердин ортосундагы 32 биттик маани AABBCCDD и yyyy кийинки кабык кодунун офсети болуп саналат. Бул функцияны колдонуу деп аталат CreateThread. Мурда OceanLotus тобу колдонгон shellcode чыгарылган. , биз 2018-жылдын март айында чыгарган, дагы эле экинчи этап таштанды үчүн иштейт.
экинчи буту
Компоненттерди алып салуу
Файлдын жана каталогдун аттары динамикалык түрдө тандалат. Код кокусунан аткарылуучу же DLL файлынын атын тандайт C:Windowssystem32. Андан кийин ал өзүнүн ресурстарына суроо-талап менен кайрылып, талааны алат FileDescription папканын аты катары колдонуу. Эгер бул иштебесе, код каталогдордон папканын атын туш келди тандайт %ProgramFiles% же C:Windows (из GetWindowsDirectoryW). Он избегает использования имени, которое может конфликтовать с существующими файлами, и следит за тем, чтобы оно не содержало следующие слова: windows, Microsoft, desktop, system, system32 же syswow64. Эгерде каталог мурунтан эле бар болсо, атка "NLS_{6 characters}" тиркелет.
каражат 0x102 талданат жана файлдарга ташталат %ProgramFiles% же %AppData%, туш келди тандалган папкага. Ошол эле баалуулуктарга ээ болуу үчүн түзүү убактысы өзгөртүлдү kernel32.dll.
Мисалы, бул жерде аткарылуучу файлды тандоо менен түзүлгөн папка жана файлдардын тизмеси C:Windowssystem32TCPSVCS.exe маалымат булагы катары.

Сүрөт 6. Ар кандай компоненттерди алуу
Ресурстун структурасы 0x102 бир тамчылаткычта абдан татаал. Кыскача айтканда, ал камтыйт:
— Файл аттары
— Файлдын өлчөмү жана мазмуну
— кысуу форматы (COMPRESSION_FORMAT_LZNT1, функциясы тарабынан колдонулат RtlDecompressBuffer)
Биринчи файл катары баштапкы абалга келтирилет TCPSVCS.exe, бул мыйзамдуу AcroTranscoder.exe (Ылайык FileDescription, SHA-1: 2896738693A8F36CC7AD83EF1FA46F82F32BE5A3).
Сиз кээ бир DLL файлдары 11 МБдан чоң экенин байкаган чыгарсыз. Себеби аткарылуучу файлдын ичине кокус маалыматтардын чоң жанаша буфери жайгаштырылат. Бул кээ бир коопсуздук продуктулары тарабынан аныкталбоо үчүн бир жолу болушу мүмкүн.
Туруктуулукту камсыз кылуу
каражат 0x101 тамчылаткычта 32 биттик эки бүтүн сан бар, алар туруктуулукту кантип камсыз кылуу керек экенин аныктайт. Биринчинин мааниси кесепеттүү программа администратордун укугусуз кантип сакталып калаарын көрсөтөт.

Таблица 1. Администратордук укуксуз туруктуулук механизми
Экинчи бүтүн сандын мааниси кесепеттүү программа администратор укуктары менен иштегенде туруктуулукка кантип жетиши керектигин аныктайт.

Таблица 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 жөн гана башка функцияны чакырат. Кээ бир бүдөмүк предикаттар бар:

Сүрөт 7. бүдөмүк предикаттар
Бул адаштыруучу текшерүүлөрдөн кийин код бир бөлүмдү алат .text файл TCPSVCS.exe, коргонуусун өзгөртөт PAGE_EXECUTE_READWRITE жана жасалма көрсөтмөлөрдү кошуу менен аны кайра жазат:

Сүрөт 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 тобу адатта колдонгон кабык коду болуп саналат. Биз жарыялаган эмулятор скриптинин жардамы менен анын пайдалуу жүгүн кайрадан ийгиликтүү таңгактан чыгардык .
Сценарий акыркы баскычты чыгарат. Бул компонент биз буга чейин талдоого алган бэкдор . Бул GUID тарабынан аныкталышы мүмкүн {A96B020F-0000-466F-A96D-A91BBF8EAC96} бинардык файл. Кесепеттүү программа конфигурациясы дагы эле PE ресурсунда шифрленген. Ал болжол менен бирдей конфигурацияга ээ, бирок C&C серверлери мурункулардан айырмаланат:
- andreagahuvrauvin[.]com
- byronorenstein[.]com
- stienollmache[.]xyz
OceanLotus командасы дагы бир жолу аныктоодон качуу үчүн ар кандай ыкмалардын айкалышын көрсөтөт. Алар инфекция процессинин "такталган" диаграммасы менен кайтышты. Кокус аттарды тандоо жана аткарылуучу файлдарды кокус маалыматтар менен толтуруу менен, алар ишенимдүү IoC санын азайтат (хэштердин жана файл аталыштарынын негизинде). Мындан тышкары, үчүнчү тараптын DLL жүктөөсүн колдонуунун аркасында, чабуулчулар мыйзамдуу бинардык файлды алып салышы керек. AcroTranscoder.
Өзүн-өзү ачуучу архивдер
RTF файлдарынан кийин, топ колдонуучуну ого бетер чаташтыруу үчүн жалпы документтин сүрөтчөлөрү менен өзүн-өзү ачуучу (SFX) архивдерге өттү. Бул тууралуу Threatbook жазган (). Ишке киргизилгенден кийин, өз алдынча ачылуучу 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 скрипти төмөнкүдөй көрүнөт:

Сүрөт 9. SFX буйруктары
Кесепеттүү программа баштапкы абалга келтирилет {9ec60ada-a200-4159-b310-8071892ed0c3}.ocx (SHA-1: EFAC23B0E6395B1178BCF7086F72344B24C04DCC), ошондой эле сүрөт 2018 thich thong lac.jpg.
Алдамчы сүрөт төмөнкүдөй көрүнөт:

10-сүрөт
Сиз SFX скриптиндеги биринчи эки сап OCX файлын эки жолу чакырганын байкаган чыгарсыз, бирок бул ката эмес.
{9ec60ada-a200-4159-b310-8071892ed0c3}.ocx (ShLd.dll)
OCX файлынын башкаруу агымы башка OceanLotus компоненттерине абдан окшош - көптөгөн буйрук ырааттуулугу JZ/JNZ и PUSH/RET, таштанды коду менен кезектешип.

11-сүрөт. Туталанган код
Керексиз кодду чыпкалагандан кийин, экспорттоо DllRegisterServer, деп аталат regsvr32.exe, төмөнкүдөй:

Сүрөт 12. Орнотуучунун негизги коду
Негизинен биринчи чалганда DllRegisterServer экспорт реестр маанисин белгилейт HKCUSOFTWAREClassesCLSID{E08A0F4B-1F65-4D4D-9A09-BD4625B9C5A1}Model DLLде шифрленген офсет үчүн (0x10001DE0).
Функция экинчи жолу чакырылганда, ал ошол эле маанини окуп, ошол даректе аткарылат. Бул жерден ресурс жана RAMдагы көптөгөн аракеттер окулат жана аткарылат.
Shellcode мурунку OceanLotus кампанияларында колдонулган PE жүктөгүч болуп саналат. Аны колдонуп эмуляциялоого болот . Акыр-аягы, ал кайра db293b825dcc419ba7dc2c49fa2757ee.dll, аны эс тутумуна жүктөйт жана аткарат DllEntry.
DLL өз ресурсунун мазмунун чыгарып, шифрди чечмелейт (AES-256-CBC) жана аны ачат (LZMA). Ресурстун декомпиляцияга оңой болгон белгилүү бир форматы бар.

Сүрөт 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 конфигурация файлы
Backdoor конфигурациясы шифрленген жана анын ресурстарына киргизилген. Конфигурация файлынын структурасы мурункуга абдан окшош.

Сүрөт 14. Backdoor конфигурациясынын структурасы (KaitaiStruct Visualizer)
Түзүлүшү окшош болсо да, талаанын көптөгөн баалуулуктары көрсөтүлгөндөрдөн жаңыртылган .
бинардык массивдин биринчи элементи DLLди камтыйт (HttpProv.dll MD5: 2559738D1BD4A999126F900C7357B759), . Бирок экспорттун аталышы бинардык системадан алынып салынгандыктан, хэштер дал келбейт.
Кошумча изилдөө
Үлгүлөрдү чогултуп жатып, биз кээ бир өзгөчөлүктөрүн байкадык. Жаңы эле сүрөттөлгөн үлгү 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 (резюменин жасалма pdf документи)
— пикир, 28-жылдын 29-2018-июлундагы АКШдагы митинг.exe
Арткы эшик ачылгандан бери {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll жана анын анализин бир нече изилдөөчүлөр жарыялаганда, биз кесепеттүү программа конфигурациясынын маалыматтарында айрым өзгөрүүлөрдү байкадык.
Биринчиден, авторлор жардамчы DLL файлдарынан ысымдарды өчүрө башташты (DNSprov.dll жана эки версия HttpProv.dll). Андан кийин операторлор үчүнчү DLL (экинчи версия) пакеттөөсүн токтотушту HttpProv.dll), бир гана кыстарууну тандоо.
Экинчиден, көптөгөн IoC жеткиликтүү болгондон кийин аныктоодон качышы мүмкүн болгон көптөгөн backdoor конфигурация талаалары өзгөртүлдү. Жазуучулар тарабынан өзгөртүлгөн маанилүү талаалар төмөнкүлөрдү камтыйт:
- AppX реестр ачкычы өзгөртүлдү (IoCs караңыз)
- мутекс коддоо сабы ("def", "abc", "ghi")
- порт номери
Акырында, талданган бардык жаңы версияларда IoCs бөлүмүндө тизмеленген жаңы C&C бар.
табылгалары
OceanLotus өнүгүп келе жатат. Кибер топ инструменттерди жана жемдерди тазалоого жана кеңейтүүгө багытталган. Авторлор зыяндуу жүктөрдү жашырып, алардын темасы болжолдонгон курмандыктарга тиешелүү болгон көңүл бурган документтерди колдонушат. Алар жаңы схемаларды иштеп чыгышат, ошондой эле Equation Editor эксплоити сыяктуу жалпыга жеткиликтүү куралдарды колдонушат. Мындан тышкары, алар жабырлануучулардын машиналарында калган артефакттардын санын азайтуу үчүн инструменттерди өркүндөтүп, антивирустук программа аркылуу аныктоо мүмкүнчүлүгүн азайтышат.
Компромисстин көрсөткүчтөрү
Компромисстин көрсөткүчтөрү, ошондой эле MITER ATT&CK атрибуттары бар и .
Source: www.habr.com
