ESET: nije leveringsskema's foar efterdoar foar de cybergroep OceanLotus

Yn dizze post sille wy jo fertelle hoe't de cybergroep OceanLotus (APT32 en APT-C-00) koartlyn ien fan 'e iepenbier beskikbere eksploaten brûkte foar CVE-2017-11882, kwetsberens foar ûnthâldkorrupsje yn Microsoft Office, en hoe't de malware fan 'e groep persistinsje berikt op kompromitteare systemen sûnder in spoar efter te litten. Folgjende sille wy beskriuwe hoe't, sûnt it begjin fan 2019, de groep hat brûkt sels-extracting argiven foar it útfieren fan koade.

OceanLotus is spesjalisearre yn cyber-spionaazje, mei prioriteitsdoelen lannen yn Súdeast-Aazje. Oanfallers smide dokuminten dy't de oandacht lûke fan potinsjele slachtoffers om har te oertsjûgjen om de efterdoar út te fieren, en wurkje ek oan it ûntwikkeljen fan ark. De metoaden dy't brûkt wurde foar it meitsjen fan honeypots ferskille oer oanfallen, fan "dûbele-útwreiding" bestannen, sels-útpakke argiven, dokuminten mei makro's, oant bekende eksploaten.

ESET: nije leveringsskema's foar efterdoar foar de cybergroep OceanLotus

Mei help fan in eksploitaasje yn Microsoft Equation Editor

Mids 2018 fierde OceanLotus in kampanje dy't de CVE-2017-11882 kwetsberens benutte. Ien fan 'e kweade dokuminten fan' e cybergroep waard analysearre troch spesjalisten fan 360 Threat Intelligence Center (ûndersyk yn Sineesk), ynklusyf in detaillearre beskriuwing fan 'e eksploitaasje. De post hjirûnder befettet in oersjoch fan sa'n kwea-aardich dokumint.

De earste poadium

Dokumint FW Report on demonstration of former CNRP in Republic of Korea.doc (SHA-1: D1357B284C951470066AAA7A8228190B88A5C7C3) is fergelykber mei dat neamd yn 'e boppesteande stúdzje. It is nijsgjirrich om't it rjochte is op brûkers dy't ynteressearre binne yn Kambodjaanske polityk (CNRP - Cambodia National Rescue Party, ûntbûn oan 'e ein fan 2017). Nettsjinsteande de .doc-útwreiding is it dokumint yn RTF-formaat (sjoch ôfbylding hjirûnder), befettet garbagekoade, en is ek ferfoarme.

ESET: nije leveringsskema's foar efterdoar foar de cybergroep OceanLotus
figuer 1. "Garbage" yn RTF

Ek al binne d'r fersmoarge eleminten, Word iepenet dit RTF-bestân mei súkses. Lykas jo kinne sjen yn figuer 2, is d'r in EQNOLEFILEHDR-struktuer by offset 0xC00, folge troch in MTEF-koptekst, en dan in MTEF-yngong (figuer 3) foar it lettertype.

ESET: nije leveringsskema's foar efterdoar foar de cybergroep OceanLotus
figuer 2. FONT entry wearden

ESET: nije leveringsskema's foar efterdoar foar de cybergroep OceanLotus
Figure 3. FONT opname formaat

Mooglike oerstreaming yn it fjild namme, om't syn grutte net kontrolearre is foardat it kopiearjen. In namme dy't te lang is liedt ta in kwetsberens. Lykas jo kinne sjen fan 'e ynhâld fan' e RTF-bestân (offset 0xC26 yn figuer 2), is de buffer fol mei shellcode folge troch in dummy-kommando (0x90) en weromadres 0x402114. It adres is in dialooch elemint yn EQNEDT32.exe, oanjout ynstruksjes RET. Dit soarget dat EIP nei it begjin fan it fjild wiist nammemei de shellcode.

ESET: nije leveringsskema's foar efterdoar foar de cybergroep OceanLotus
figuer 4. Begjin fan de eksploitaasje shellcode

Adres 0x45BD3C bewarret in fariabele dy't derreferenced wurdt oant it in oanwizer berikt nei de op it stuit laden struktuer MTEFData. De rest fan 'e shellcode is hjir.

It doel fan 'e shellcode is om it twadde stik shellcode út te fieren ynbêde yn it iepen dokumint. De orizjinele shellcode besiket earst de triembeskriuwing fan it iepen dokumint te finen troch iterearjen oer alle systeembeskriuwers (NtQuerySystemInformation mei argumint SystemExtendedHandleInformation) en kontrolearje oft se oerienkomme PID beskriuwing en PID proses WinWord en oft it dokumint waard iepene mei in tagongsmasker - 0x12019F.

Om te befêstigjen dat de juste handgreep fûn is (en net de handgreep nei in oar iepen dokumint), wurdt de ynhâld fan it bestân werjûn mei de funksje CreateFileMapping, en de shellcode kontrolearret oft de lêste fjouwer bytes fan it dokumint oerienkomme mei "yyyy"(Ei Hunting metoade). Sadree't in oerienkomst is fûn, wurdt it dokumint kopiearre nei in tydlike map (GetTempPath) Hoe ole.dll. Dan wurde de lêste 12 bytes fan it dokumint lêzen.

ESET: nije leveringsskema's foar efterdoar foar de cybergroep OceanLotus
figuer 5. Ein fan dokumint markers

32-bit wearde tusken markers AABBCCDD и yyyy is de offset fan 'e folgjende shellcode. It hjit it brûken fan de funksje CreateThread. Uthelle deselde shellcode dy't earder brûkt waard troch de OceanLotus-groep. Python emulaasje skript, dy't wy yn maart 2018 frijlitten, wurket noch altyd foar de twadde etappe dump.

De twadde poadium

It fuortsmiten fan komponinten

Triem- en mapnammen wurde dynamysk keazen. De koade selektearret willekeurich de namme fan it útfierbere of DLL-bestân yn C:Windowssystem32. It docht dan in fersyk oan syn middels en heljen it fjild FileDescription te brûken as de mapnamme. As dit net wurket, selekteart de koade willekeurich in mapnamme út de mappen %ProgramFiles% of C:Windows (из GetWindowsDirectoryW). Он избегает использования имени, которое может конфликтовать с существующими файлами, и следит за тем, чтобы оно не содержало следующие слова: windows, Microsoft, desktop, system, system32 of syswow64. As de map al bestiet, wurdt "NLS_{6 tekens}" oan de namme taheakke.

helpboarne 0x102 wurdt analysearre en triemmen wurde dumpt yn %ProgramFiles% of %AppData%, nei in willekeurich selektearre map. Feroare skeppingstiid om deselde wearden te hawwen as kernel32.dll.

Hjir is bygelyks de map en list mei bestannen makke troch it útfierber te selektearjen C:Windowssystem32TCPSVCS.exe as gegevensboarne.

ESET: nije leveringsskema's foar efterdoar foar de cybergroep OceanLotus
figuer 6. Extracting ferskate komponinten

Resource struktuer 0x102 yn in dropper is frij kompleks. Yn in notedop befettet it:
- Bestânsnammen
- Bestânsgrutte en ynhâld
- Kompresjeformaat (COMPRESSION_FORMAT_LZNT1, brûkt troch de funksje RtlDecompressBuffer)

De earste triem wurdt weromset as TCPSVCS.exe, dat is legitime AcroTranscoder.exe (neffens FileDescription, SHA-1: 2896738693A8F36CC7AD83EF1FA46F82F32BE5A3).

Jo hawwe miskien opfallen dat guon DLL-bestannen grutter binne dan 11 MB. Dit is om't in grutte oanienkommende buffer fan willekeurige gegevens yn it útfierbere bestân pleatst wurdt. It is mooglik dat dit in manier is om deteksje troch guon feiligensprodukten te foarkommen.

It garandearjen fan persistinsje

helpboarne 0x101 yn 'e dropper befettet twa 32-bit heule getallen dy't oantsjutte hoe't persistinsje moat wurde levere. De wearde fan 'e earste jout oan hoe't de malware sil oanhâlde sûnder behearderrjochten.

ESET: nije leveringsskema's foar efterdoar foar de cybergroep OceanLotus
Tabel 1. Persistinsjemeganisme sûnder administratorrjochten

De wearde fan it twadde heule getal spesifiseart hoe't de malware persistinsje moat berikke by it útfieren mei administratorrjochten.

ESET: nije leveringsskema's foar efterdoar foar de cybergroep OceanLotus
Tabel 2. Persistinsjemeganisme mei administratorrjochten

De tsjinstnamme is de triemnamme sûnder tafoeging; de werjeftenamme is de namme fan 'e map, mar as dy al bestiet, wurdt de tekenrige " deroan taheakkeRevision 1” (it oantal nimt ta oant in net brûkte namme fûn wurdt). De operators soargje derfoar dat persistinsje troch de tsjinst robúst wie - yn gefal fan mislearring soe de tsjinst nei 1 sekonde opnij moatte wurde starte. Dan de wearde WOW64 De registerkaai fan 'e nije tsjinst is ynsteld op 4, wat oanjout dat it in 32-bit tsjinst is.

In plande taak wurdt makke fia ferskate COM-ynterfaces: ITaskScheduler, ITask, ITaskTrigger, IPersistFile и ITaskScheduler. Yn essinsje makket de malware in ferburgen taak, stelt de akkountynformaasje yn tegearre mei de hjoeddeistige brûker of behearderynformaasje, en stelt dan de trigger yn.

Dit is in deistige taak mei in doer fan 24 oeren en yntervallen tusken twa útfieringen fan 10 minuten, wat betsjut dat it kontinu rint.

Malicious bytsje

Yn ús foarbyld is it útfierbere bestân TCPSVCS.exe (AcroTranscoder.exe) is legitime software dy't DLL's laadt dy't tegearre mei har weromsette. Yn dit gefal is it fan belang Flash Video Extension.dll.

Syn funksje DLLMain neamt gewoan in oare funksje. Guon fuzzy predikaten binne oanwêzich:

ESET: nije leveringsskema's foar efterdoar foar de cybergroep OceanLotus
figuer 7. Fuzzy predikaten

Nei dizze misliedende kontrôles krijt de koade in seksje .text map TCPSVCS.exe, feroaret syn ferdigening oan PAGE_EXECUTE_READWRITE en skriuwt it opnij troch dummy-ynstruksjes ta te foegjen:

ESET: nije leveringsskema's foar efterdoar foar de cybergroep OceanLotus
figuer 8. Folchoarder fan ynstruksjes

Oan 'e ein nei de funksje adres FLVCore::Uninitialize(void), eksportearre Flash Video Extension.dll, ynstruksje wurdt tafoege CALL. Dit betsjut dat neidat de kweade DLL wurdt laden, doe't de runtime ropt WinMain в TCPSVCS.exe, sil de ynstruksjeoanwizer nei NOP wize, wêrtroch FLVCore::Uninitialize(void), folgjende poadium.

De funksje makket gewoan in mutex begjinnend mei {181C8480-A975-411C-AB0A-630DB8B0A221}folge troch de aktuele brûkersnamme. It dan lêst de dumpte *.db3 triem, dat befettet posysje-ûnôfhinklike koade, en brûkt CreateThread om de ynhâld út te fieren.

De ynhâld fan it *.db3-bestân is de shellkoade dy't de OceanLotus-groep typysk brûkt. Wy hawwe de lading wer mei súkses útpakt mei it emulatorskript dat wy publisearre hawwe op GitHub.

It skript ekstrakt it lêste stadium. Dizze komponint is in efterdoar, wêryn wy al analysearre hawwe foarige OceanLotus-stúdzje. Dit kin bepaald wurde troch de GUID {A96B020F-0000-466F-A96D-A91BBF8EAC96} binêre triem. De malware-konfiguraasje is noch fersifere yn 'e PE-boarne. It hat sawat deselde konfiguraasje, mar de C&C-tsjinners binne oars as de foarige:

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

It OceanLotus-team toant opnij in kombinaasje fan ferskate techniken om deteksje te foarkommen. Se kamen werom mei in "ferfine" diagram fan it ynfeksjeproses. Troch willekeurige nammen te kiezen en útfierbere bestannen te foljen mei willekeurige gegevens, ferminderje se it oantal betroubere IoC's (basearre op hashes en bestânsnammen). Boppedat, troch it brûken fan DLL-laden fan tredden, moatte oanfallers allinich de legitime binêr fuortsmite AcroTranscoder.

Self-extracting argiven

Nei RTF-bestannen ferhuze de groep nei sels-extracting (SFX) argiven mei mienskiplike dokumintikoanen om de brûker fierder te betize. Threatbook skreau hjiroer (link yn Sineesk). By lansearring wurde sels-ekstrahearjende RAR-bestannen sakke en DLL's mei in .ocx-útwreiding wurde útfierd, wêrfan de lêste lading earder dokumintearre is {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll. Sûnt heal jannewaris 2019 hat OceanLotus dizze technyk opnij brûkt, mar wat konfiguraasjes yn 'e rin fan' e tiid feroare. Yn dizze paragraaf sille wy prate oer de technyk en feroarings.

It meitsjen fan in Lure

Dokumint THICH-THONG-LAC-HANH-THAP-THIEN-VIET-NAM (1).EXE (SHA-1: AC10F5B1D5ECAB22B7B418D6E98FA18E32BBDEAB) waard foar it earst fûn yn 2018. Dit SFX-bestân is wiis makke - yn 'e beskriuwing (Ferzje-ynfo) seit dat dit in JPEG-ôfbylding is. It SFX-skript sjocht der sa út:

ESET: nije leveringsskema's foar efterdoar foar de cybergroep OceanLotus
figuer 9. SFX Commands

De malware reset {9ec60ada-a200-4159-b310-8071892ed0c3}.ocx (SHA-1: EFAC23B0E6395B1178BCF7086F72344B24C04DCC), lykas in foto 2018 thich thong lac.jpg.

De decoy-ôfbylding sjocht der sa út:

ESET: nije leveringsskema's foar efterdoar foar de cybergroep OceanLotus
figuer 10. Decoy image

Jo hawwe miskien opfallen dat de earste twa rigels yn it SFX-skript de OCX-bestân twa kear neame, mar dit is gjin flater.

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

De kontrôlestream fan in OCX-bestân is heul gelyk oan oare OceanLotus-komponinten - in protte kommando-sekwinsjes JZ/JNZ и PUSH/RET, ôfwikseljend mei garbage koade.

ESET: nije leveringsskema's foar efterdoar foar de cybergroep OceanLotus
figuer 11. Obfuscated koade

Nei it filterjen fan junkkoade, eksportearje DllRegisterServer, neamd regsvr32.exe, as folget:

ESET: nije leveringsskema's foar efterdoar foar de cybergroep OceanLotus
figuer 12. Basic ynstallearder koade

Yn prinsipe, op 'e earste oprop DllRegisterServer eksport sets register wearde HKCUSOFTWAREClassesCLSID{E08A0F4B-1F65-4D4D-9A09-BD4625B9C5A1}Model foar fersifere offset yn DLL (0x10001DE0).

As de funksje in twadde kear oanroppen wurdt, lêst it deselde wearde en wurdt útfierd op dat adres. Fan hjirút wurde de boarne en in protte aksjes yn RAM lêzen en útfierd.

De shellcode is deselde PE-loader brûkt yn eardere OceanLotus-kampanjes. It kin wurde emulearre mei help ús skript. Op it lêst set er werom db293b825dcc419ba7dc2c49fa2757ee.dll, laadt it yn it ûnthâld en útfiert DllEntry.

De DLL ekstrahearret de ynhâld fan syn boarne, ûntsiferet (AES-256-CBC) en dekomprimearret (LZMA) it. De boarne hat in spesifyk formaat dat maklik te dekompilearjen is.

ESET: nije leveringsskema's foar efterdoar foar de cybergroep OceanLotus
figuer 13. Ynstallearder konfiguraasje struktuer (KaitaiStruct Visualizer)

De konfiguraasje wurdt eksplisyt oantsjutte - ôfhinklik fan it privileezjenivo, wurde binêre gegevens nei skreaun %appdata%IntellogsBackgroundUploadTask.cpl of %windir%System32BackgroundUploadTask.cpl (of SysWOW64 foar 64-bit systemen).

Fierdere persistinsje wurdt garandearre troch it meitsjen fan in taak mei de namme BackgroundUploadTask[junk].jobwêr [junk] stiet foar in set fan bytes 0x9D и 0xA0.

Taak Application Name %windir%System32control.exe, en de parameterwearde is it paad nei it ynladen binêre bestân. De ferburgen taak rint alle dagen.

Struktureel is in CPL-bestân in DLL mei in ynterne namme ac8e06de0a6c4483af9837d96504127e.dll, dy't in funksje eksportearret CPlApplet. Dit bestân ûntsiferet syn ienige boarne {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll, dan laadt dizze DLL en ropt syn ienige eksport DllEntry.

Backdoor konfiguraasjetriem

De efterdoarkonfiguraasje is fersifere en ynbêde yn har boarnen. De struktuer fan it konfiguraasjetriem is tige ferlykber mei de foarige.

ESET: nije leveringsskema's foar efterdoar foar de cybergroep OceanLotus
figuer 14. Backdoor konfiguraasje struktuer (KaitaiStruct Visualizer)

Hoewol de struktuer ferlykber is, binne in protte fan 'e fjildwearden bywurke fan' e werjûn yn ús âlde ferslach.

It earste elemint fan 'e binêre array befettet in DLL (HttpProv.dll MD5: 2559738D1BD4A999126F900C7357B759), identifisearre troch Tencent. Mar om't de eksportnamme út 'e binêr fuortsmiten is, komme de hashes net oerien.

Oanfoljende Undersyk

By it sammeljen fan samples hawwe wy guon skaaimerken opmurken. It krekt beskreaune eksimplaar ferskynde om july 2018 hinne, en oaren like it ferskynden sa resint as heal jannewaris oant begjin febrewaris 2019. It SFX-argyf waard brûkt as in ynfeksjevektor, wêrtroch in legitime decoy-dokumint en in kwea-aardich OSX-bestân falle.

Sels hoewol OceanLotus falske tiidstempels brûkt, hawwe wy opmurken dat de tiidstempels fan SFX- en OCX-bestannen altyd itselde binne (0x57B0C36A (08/14/2016 @ 7:15 UTC) en 0x498BE80F (02/06/2009 @ 7:34am UTC) respektivelik). Dit jout wierskynlik oan dat de auteurs in soarte fan "ûntwerper" hawwe dy't deselde sjabloanen brûkt en gewoan wat skaaimerken feroaret.

Under de dokuminten dy't wy sûnt it begjin fan 2018 hawwe studearre, binne d'r ferskate nammen dy't de lannen oanjaan fan belang foar de oanfallers:

- De nije kontaktynformaasje fan Cambodia Media (Nij).xls.exe
- 李建香 (个人简历).exe (falske pdf-dokumint fan in CV)
- feedback, Rally yn 'e Feriene Steaten fan 28-29 july, 2018.exe

Sûnt de efterdoar waard ûntdutsen {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll en de publikaasje fan syn analyze troch ferskate ûndersikers, hawwe wy wat feroaringen observearre yn 'e malware-konfiguraasjegegevens.

Earst begûnen de auteurs nammen te ferwiderjen fan helper DLL's (DNSprov.dll en twa ferzjes HttpProv.dll). De operators stopten doe mei it ferpakken fan de tredde DLL (de twadde ferzje HttpProv.dll), kieze om mar ien yn te ynbêden.

Twadder waarden in protte efterdoar-konfiguraasjefjilden feroare, wierskynlik om deteksje te ûntkommen, om't in protte IoC's beskikber waarden. Wichtige fjilden wizige troch de auteurs omfetsje:

  • AppX-registerkaai feroare (sjoch IoC's)
  • mutex kodearring tekenrige ("def", "abc", "ghi")
  • havennûmer

Uteinlik hawwe alle nije ferzjes analysearre nije C&C's neamd yn 'e IoC's seksje.

befinings

OceanLotus bliuwt te ûntwikkeljen. De cybergroep is rjochte op it ferfine en útwreidzjen fan de ark en lokwinsken. Auteurs ferklaaie kweade ladingen mei help fan dokuminten dy't oandacht krije wêrfan it ûnderwerp relevant is foar de bedoelde slachtoffers. Se ûntwikkelje nije skema's en brûke ek iepenbier beskikbere ark, lykas de eksploitaasje fan 'e Equation Editor. Boppedat ferbetterje se ark om it oantal oerbleaune artefakten op 'e masines fan' e slachtoffers te ferminderjen, wêrtroch't de kâns op deteksje troch antivirussoftware ferminderje.

Yndikatoaren fan kompromis

Yndikatoaren fan kompromis likegoed as MITER ATT & CK attributen binne beskikber op Welivesecurity и op GitHub.

Boarne: www.habr.com

Keapje betroubere hosting foar siden mei DDoS-beskerming, VPS VDS-tsjinners 🔥 Keapje betroubere websidehosting mei DDoS-beskerming, VPS VDS-tsjinners | ProHoster