ESET: uued tagaukse edastusskeemid kĂŒberrĂŒhma OceanLotus jaoks

Selles postituses rÀÀgime teile, kuidas kĂŒbergrupp OceanLotus (APT32 ja APT-C-00) kasutas hiljuti ĂŒht avalikult kĂ€ttesaadavat Ă€pardust CVE-2017-11882, Microsoft Office'i mĂ€lurikke haavatavused ja see, kuidas grupi pahavara sĂ€ilib ohustatud sĂŒsteemides jĂ€lgi jĂ€tmata. JĂ€rgmisena kirjeldame, kuidas grupp on alates 2019. aasta algusest kasutanud koodi kĂ€itamiseks isepahanduvaid arhiive.

OceanLotus on spetsialiseerunud kĂŒberspionaaĆŸile, mille prioriteetsed sihtmĂ€rgid on Kagu-Aasia riigid. RĂŒndajad vĂ”ltsivad dokumente, mis tĂ”mbavad potentsiaalsete ohvrite tĂ€helepanu, et veenda neid tagaukse hukkamises, ning töötavad ka tööriistade vĂ€ljatöötamisega. Meepottide loomiseks kasutatavad meetodid on rĂŒnnakute lĂ”ikes erinevad, alates "topeltlaiendiga" failidest, isepakkivatest arhiividest, makrodega dokumentidest kuni teadaolevate Ă€rakasutamisteni.

ESET: uued tagaukse edastusskeemid kĂŒberrĂŒhma OceanLotus jaoks

Exploiti kasutamine Microsofti vÔrrandiredaktoris

2018. aasta keskel viis OceanLotus lĂ€bi kampaania, mis kasutas turvaauku CVE-2017-11882. Ühte kĂŒbergrupi pahatahtlikku dokumenti analĂŒĂŒsisid 360 Threat Intelligence Centeri spetsialistid (uurimus hiina keeles), sealhulgas Ă€rakasutamise ĂŒksikasjalik kirjeldus. Allolev postitus sisaldab ĂŒlevaadet sellisest pahatahtlikust dokumendist.

Esimene etapp

Dokument FW Report on demonstration of former CNRP in Republic of Korea.doc (SHA-1: D1357B284C951470066AAA7A8228190B88A5C7C3) on sarnane ĂŒlaltoodud uuringus mainituga. See on huvitav, kuna on suunatud kasutajatele, kes on huvitatud KambodĆŸa poliitikast (CNRP – Cambodia National Rescue Party, mis saadeti laiali 2017. aasta lĂ”pus). Vaatamata .doc laiendile on dokument RTF formaadis (vt allolevat pilti), sisaldab prĂŒgikoodi ja on ka moonutatud.

ESET: uued tagaukse edastusskeemid kĂŒberrĂŒhma OceanLotus jaoks
Joonis 1. "PrĂŒgi" RTF-is

Kuigi seal on moonutatud elemente, avab Word selle RTF-faili edukalt. Nagu nÀete jooniselt 2, on nihke 0xC00 juures EQNOLEFILEHDR-struktuur, millele jÀrgneb MTEF-i pÀis ja seejÀrel fondi MTEF-kirje (joonis 3).

ESET: uued tagaukse edastusskeemid kĂŒberrĂŒhma OceanLotus jaoks
Joonis 2. FONT kirje vÀÀrtused

ESET: uued tagaukse edastusskeemid kĂŒberrĂŒhma OceanLotus jaoks
Joonis 3. FONT salvestusvorming

VĂ”imalik ĂŒlevool pĂ”llul nimi, sest selle suurust enne kopeerimist ei kontrollita. Liiga pikk nimi vallandab haavatavuse. Nagu nĂ€ete RTF-faili sisust (nihe 0xC26 joonisel 2), tĂ€idetakse puhver shellkoodiga, millele jĂ€rgneb nĂ€iv kĂ€sk (0x90) ja tagastusaadress 0x402114. Aadress on dialoogielement EQNEDT32.exe, mis nĂ€itab juhiseid RET. See paneb EIP osutama vĂ€lja algusesse nimimis sisaldab shellkoodi.

ESET: uued tagaukse edastusskeemid kĂŒberrĂŒhma OceanLotus jaoks
Joonis 4. Exploit shellcode'i algus

Aadress 0x45BD3C salvestab muutuja, millele viidatakse seni, kuni see jĂ”uab parajasti laetud struktuurile viivani MTEFData. ÜlejÀÀnud shellkood on siin.

Shellcode'i eesmĂ€rk on kĂ€ivitada avatud dokumenti manustatud shellkoodi teine ​​osa. Algne shellkood proovib esmalt leida avatud dokumendi failideskriptorit itereerides ĂŒle kĂ”igi sĂŒsteemikirjelduste (NtQuerySystemInformation argumendiga SystemExtendedHandleInformation) ja kontrollides, kas need sobivad PID deskriptor ja PID protsess WinWord ja kas dokument avati juurdepÀÀsumaskiga - 0x12019F.

Õige kĂ€epideme leidmise kinnitamiseks (mitte teise avatud dokumendi pideme leidmise kohta), kuvatakse faili sisu funktsiooniga CreateFileMappingja shellkood kontrollib, kas dokumendi viimased neli baiti ĂŒhtivad "yyyy"(Munajahi meetod). Kui vaste on leitud, kopeeritakse dokument ajutisse kausta (GetTempPath) Kuidas ole.dll. SeejĂ€rel loetakse dokumendi viimased 12 baiti.

ESET: uued tagaukse edastusskeemid kĂŒberrĂŒhma OceanLotus jaoks
Joonis 5. Dokumendi markerite lÔpp

32-bitine vÀÀrtus markerite vahel AABBCCDD Đž yyyy on jĂ€rgmise shellkoodi nihe. Seda nimetatakse funktsiooni abil CreateThread. Ekstraktis sama shellkoodi, mida kasutas OceanLotuse grupp varem. Pythoni emuleerimisskript, mille avaldasime mĂ€rtsis 2018, töötab endiselt teise etapi prĂŒgikasti jaoks.

Teine etapp

Komponentide eemaldamine

Failide ja kataloogide nimed valitakse dĂŒnaamiliselt. Kood valib juhuslikult kĂ€ivitatava vĂ”i DLL-faili nime C:Windowssystem32. SeejĂ€rel esitab see oma ressurssidele pĂ€ringu ja otsib vĂ€lja FileDescription kasutada kausta nimena. Kui see ei tööta, valib kood juhuslikult kataloogidest kaustanime %ProgramFiles% vĂ”i C:Windows (alates Get'ist)WindowsKataloog (DirectoryW). See vĂ€ldib nime kasutamist, mis vĂ”ib olla vastuolus olemasolevate failidega, ja tagab, et see ei sisalda jĂ€rgmisi sĂ”nu: windows, Microsoft, desktop, system, system32 vĂ”i syswow64. Kui kataloog on juba olemas, lisatakse nimele "NLS_{6 tĂ€hemĂ€rki}".

ressurss 0x102 analĂŒĂŒsitakse ja failid sisestatakse %ProgramFiles% vĂ”i %AppData%, juhuslikult valitud kausta. Loomisaega muudeti samade vÀÀrtustega kui kernel32.dll.

NÀiteks siin on kÀivitatava faili valimisel loodud failide kaust ja loend C:Windowssystem32TCPSVCS.exe andmeallikana.

ESET: uued tagaukse edastusskeemid kĂŒberrĂŒhma OceanLotus jaoks
Joonis 6. Erinevate komponentide eraldamine

Ressursi struktuur 0x102 tilgutis on ĂŒsna keeruline. LĂŒhidalt, see sisaldab:
— Failide nimed
— faili suurus ja sisu
— tihendusvorming (COMPRESSION_FORMAT_LZNT1, mida funktsioon kasutab RtlDecompressBuffer)

Esimene fail lÀhtestatakse kui TCPSVCS.exe, mis on seaduslik AcroTranscoder.exe (vastavalt FileDescription, SHA-1: 2896738693A8F36CC7AD83EF1FA46F82F32BE5A3).

VĂ”ib-olla olete mĂ€rganud, et mĂ”ned DLL-failid on suuremad kui 11 MB. Selle pĂ”hjuseks on asjaolu, et kĂ€ivitatavasse faili paigutatakse suur kĂŒlgnev juhuslike andmete puhver. VĂ”imalik, et see on viis vĂ€ltida mĂ”ne turbetoote tuvastamist.

PĂŒsivuse tagamine

ressurss 0x101 tilguti sisaldab kahte 32-bitist tĂ€isarvu, mis mÀÀravad pĂŒsivuse tagamise. Esimese vÀÀrtus mÀÀrab, kuidas pahavara ilma administraatoriĂ”igusteta pĂŒsib.

ESET: uued tagaukse edastusskeemid kĂŒberrĂŒhma OceanLotus jaoks
Tabel 1. PĂŒsimehhanism ilma administraatoriĂ”igusteta

Teise tĂ€isarvu vÀÀrtus mÀÀrab, kuidas pahavara peaks saavutama pĂŒsivuse administraatoriĂ”igustega töötamise ajal.

ESET: uued tagaukse edastusskeemid kĂŒberrĂŒhma OceanLotus jaoks
Tabel 2. AdministraatoriĂ”igustega pĂŒsivusmehhanism

Teenuse nimi on failinimi ilma laiendita; kuvatav nimi on kausta nimi, kuid kui see on juba olemas, siis string "Revision 1” (arv suureneb seni, kuni leitakse kasutamata nimi). Operaatorid hoolitsesid selle eest, et teenuse pĂŒsivus oleks tugev – tĂ”rke korral tuleks teenus 1 sekundi pĂ€rast taaskĂ€ivitada. Siis vÀÀrtus WOW64 Uue teenuse registrivĂ”tmeks on seatud 4, mis nĂ€itab, et tegemist on 32-bitise teenusega.

Ajastatud ĂŒlesanne luuakse mitme COM-liidese kaudu: ITaskScheduler, ITask, ITaskTrigger, IPersistFile Đž ITaskScheduler. PĂ”himĂ”tteliselt loob pahavara peidetud ĂŒlesande, mÀÀrab kontoteabe koos praeguse kasutaja vĂ”i administraatori teabega ja seejĂ€rel kĂ€ivitab.

See on igapĂ€evane ĂŒlesanne, mille kestus on 24 tundi ja kahe tĂ€itmise vaheline intervall on 10 minutit, mis tĂ€hendab, et see töötab pidevalt.

Pahatahtlik osa

Meie nÀites kÀivitatav fail TCPSVCS.exe (AcroTranscoder.exe) on seaduslik tarkvara, mis laadib koos sellega lÀhtestatud DLL-e. Sel juhul pakub see huvi Flash Video Extension.dll.

Selle funktsioon DLLMain kutsub lihtsalt vÀlja teise funktsiooni. Esinevad mÔned hÀgused predikaadid:

ESET: uued tagaukse edastusskeemid kĂŒberrĂŒhma OceanLotus jaoks
Joonis 7. HĂ€gusad predikaadid

PĂ€rast neid eksitavaid kontrolle saab kood jaotise .text faili TCPSVCS.exe, muudab oma kaitset PAGE_EXECUTE_READWRITE ja kirjutab selle ĂŒmber, lisades nĂ€ivaid juhiseid:

ESET: uued tagaukse edastusskeemid kĂŒberrĂŒhma OceanLotus jaoks
Joonis 8. Juhiste jada

Funktsiooni aadressi lĂ”pus FLVCore::Uninitialize(void), eksporditud Flash Video Extension.dll, on lisatud juhis CALL. See tĂ€hendab, et pĂ€rast pahatahtliku DLL-i laadimist, kui kĂ€itusaeg kutsub WinMain ĐČ TCPSVCS.exe, osutab juhiste osuti NOP-le, pĂ”hjustades FLVCore::Uninitialize(void), jĂ€rgmine etapp.

Funktsioon loob lihtsalt mutexi, mis algab tÀhega {181C8480-A975-411C-AB0A-630DB8B0A221}millele jÀrgneb praegune kasutajanimi. SeejÀrel loeb see vÀlja visatud *.db3 faili, mis sisaldab positsioonist sÔltumatut koodi, ja kasutab CreateThread sisu teostamiseks.

Faili *.db3 sisu on shellkood, mida OceanLotuse rĂŒhm tavaliselt kasutab. Pakkisime selle kasuliku koormuse uuesti edukalt lahti, kasutades avaldatud emulaatori skripti GitHubis.

Skript ekstraheerib viimase etapi. See komponent on tagauks, mida oleme juba analĂŒĂŒsinud eelmine OceanLotuse uuring. Seda saab mÀÀrata GUID-iga {A96B020F-0000-466F-A96D-A91BBF8EAC96} binaarfail. Pahavara konfiguratsioon on endiselt PE-ressursis krĂŒpteeritud. Sellel on ligikaudu sama konfiguratsioon, kuid C&C serverid erinevad eelmistest:

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

OceanLotuse meeskond demonstreerib taas tuvastamise vĂ€ltimiseks erinevate tehnikate kombinatsiooni. Nad naasid nakatumisprotsessi "rafineeritud" diagrammiga. Valides juhuslikke nimesid ja tĂ€ites kĂ€ivitatavad failid juhuslike andmetega, vĂ€hendavad need usaldusvÀÀrsete IoC-de arvu (pĂ”hinevad rĂ€sidel ja failinimedel). Lisaks peavad rĂŒndajad tĂ€nu kolmanda osapoole DLL-i laadimise kasutamisele eemaldama ainult seadusliku binaarfaili. AcroTranscoder.

Iseparandavad arhiivid

PĂ€rast RTF-faile liikus rĂŒhm kasutajat veelgi segadusse ajamiseks tavaliste dokumendiikoonidega isevĂ€ljavĂ”tvatele (SFX) arhiividele. Threatbook kirjutas sellest (link hiina keeles). KĂ€ivitamisel loobutakse isepakkivatest RAR-failidest ja kĂ€ivitatakse .ocx laiendiga DLL-id, mille lĂ”plik koormus on eelnevalt dokumenteeritud {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll. Alates 2019. aasta jaanuari keskpaigast on OceanLotus seda tehnikat taaskasutanud, kuid aja jooksul mĂ”nda konfiguratsiooni muutnud. Selles osas rÀÀgime tehnikast ja muudatustest.

Lure loomine

Dokument THICH-THONG-LAC-HANH-THAP-THIEN-VIET-NAM (1).EXE (SHA-1: AC10F5B1D5ECAB22B7B418D6E98FA18E32BBDEAB) leiti esmakordselt 2018. aastal. See SFX-fail loodi targalt – kirjelduses (Teave versiooni kohta) ĂŒtleb, et see on JPEG-kujutis. SFX-skript nĂ€eb vĂ€lja selline:

ESET: uued tagaukse edastusskeemid kĂŒberrĂŒhma OceanLotus jaoks
Joonis 9. SFX-kÀsud

Pahavara lÀhtestub {9ec60ada-a200-4159-b310-8071892ed0c3}.ocx (SHA-1: EFAC23B0E6395B1178BCF7086F72344B24C04DCC), samuti pilt 2018 thich thong lac.jpg.

Peibutuspilt nÀeb vÀlja selline:

ESET: uued tagaukse edastusskeemid kĂŒberrĂŒhma OceanLotus jaoks
Joonis 10. Peibutuspilt

VÔib-olla olete mÀrganud, et SFX-skripti kaks esimest rida kutsuvad OCX-faili kaks korda, kuid see pole viga.

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

OCX-faili juhtimisvoog on vĂ€ga sarnane teiste OceanLotuse komponentidega – palju kĂ€sujadasid JZ/JNZ Đž PUSH/RET, vaheldumisi prĂŒgikoodiga.

ESET: uued tagaukse edastusskeemid kĂŒberrĂŒhma OceanLotus jaoks
Joonis 11. HĂ€gustatud kood

PÀrast rÀmpskoodi vÀlja filtreerimist eksportige DllRegisterServer, kutsus regsvr32.exe, jÀrgnevalt:

ESET: uued tagaukse edastusskeemid kĂŒberrĂŒhma OceanLotus jaoks
Joonis 12. Paigaldaja pÔhikood

PĂ”himĂ”tteliselt esimesel kĂ”nel DllRegisterServer eksport mÀÀrab registrivÀÀrtuse HKCUSOFTWAREClassesCLSID{E08A0F4B-1F65-4D4D-9A09-BD4625B9C5A1}Model krĂŒptitud nihke jaoks DLL-is (0x10001DE0).

Kui funktsiooni kutsutakse teist korda, loeb see sama vÀÀrtust ja kÀivitatakse sellel aadressil. Siit loetakse ja kÀivitatakse ressurss ja paljud RAM-is olevad toimingud.

Shellcode on sama PE-laadur, mida kasutati varasemates OceanLotuse kampaaniates. Seda saab emuleerida kasutades meie stsenaarium. LÔpuks ta lÀhtestab db293b825dcc419ba7dc2c49fa2757ee.dll, laadib selle mÀllu ja kÀivitab DllEntry.

DLL ekstraktib oma ressursi sisu, dekrĂŒpteerib (AES-256-CBC) ja pakkib lahti (LZMA). Ressursil on konkreetne vorming, mida on lihtne dekompileerida.

ESET: uued tagaukse edastusskeemid kĂŒberrĂŒhma OceanLotus jaoks
Joonis 13. Installeri konfiguratsiooni struktuur (KaitaiStruct Visualizer)

Konfiguratsioon on selgesĂ”naliselt mÀÀratud – sĂ”ltuvalt privileegide tasemest kirjutatakse binaarandmed %appdata%IntellogsBackgroundUploadTask.cpl vĂ”i %windir%System32BackgroundUploadTask.cpl (VĂ”i SysWOW64 64-bitiste sĂŒsteemide jaoks).

Edasise pĂŒsivuse tagab nimega ĂŒlesande loomine BackgroundUploadTask[junk].jobKus [junk] tĂ€histab baitide kogumit 0x9D Đž 0xA0.

Ülesande rakenduse nimi %windir%System32control.exe, ja parameetri vÀÀrtus on allalaaditud binaarfaili tee. Peidetud ĂŒlesanne töötab iga pĂ€ev.

Struktuuriliselt on CPL-fail sisemise nimega DLL ac8e06de0a6c4483af9837d96504127e.dll, mis ekspordib funktsiooni CPlApplet. See fail dekrĂŒpteerib oma ainsa ressursi {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll, laadib seejĂ€rel selle DLL-i ja kutsub selle ainsaks ekspordiks DllEntry.

Tagaukse konfiguratsioonifail

Tagaukse konfiguratsioon on krĂŒptitud ja manustatud selle ressurssidesse. Konfiguratsioonifaili struktuur on eelmisega vĂ€ga sarnane.

ESET: uued tagaukse edastusskeemid kĂŒberrĂŒhma OceanLotus jaoks
Joonis 14. Tagaukse konfiguratsiooni struktuur (KaitaiStruct Visualizer)

Kuigi struktuur on sarnane, on paljusid vÀljade vÀÀrtusi vÀrskendatud nendest, mis on nÀidatud meie vana aruanne.

Binaarmassiivi esimene element sisaldab DLL-i (HttpProv.dll MD5: 2559738D1BD4A999126F900C7357B759), tuvastanud Tencent. Aga kuna ekspordinimi eemaldati kahendkoodist, siis rĂ€sid ei ĂŒhti.

TĂ€iendavad uuringud

Proovide kogumisel mĂ€rkasime mĂ”ningaid omadusi. Äsja kirjeldatud isend ilmus 2018. aasta juuli paiku ja teised samasugused ilmusid alles 2019. aasta jaanuari keskpaigast kuni veebruari alguseni. SFX-arhiivi kasutati nakkusvektorina, jĂ€ttes maha seadusliku peibutusdokumendi ja pahatahtliku OSX-faili.

Kuigi OceanLotus kasutab vĂ”ltsitud ajatempleid, mĂ€rkasime, et SFX- ja OCX-failide ajatemplid on alati samad (0x57B0C36A (08 kell 14:2016 UTC) ja 0x498BE80F (02/06/2009 kell 7:34 UTC)). See viitab ilmselt sellele, et autoritel on mingi “kujundaja”, kes kasutab samu malle ja muudab lihtsalt mingeid omadusi.

Alates 2018. aasta algusest uuritud dokumentide hulgas on erinevaid nimesid, mis nĂ€itavad rĂŒndajaid huvitavaid riike:

— Cambodia Media(New).xls.exe uus kontaktteave
— 李ć»ș驙 (äžȘäșș缀掆).exe (CV vĂ”lts pdf-dokument)
— tagasiside, ralli USAs 28.-29.exe

Kuna tagauks avastati {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll ja selle analĂŒĂŒsi avaldamisel mitmete teadlaste poolt, tĂ€heldasime mĂ”ningaid muutusi pahavara konfiguratsiooniandmetes.

Esiteks hakkasid autorid nimesid eemaldama abistaja-DLL-idest (DNSprov.dll ja kaks versiooni HttpProv.dll). SeejĂ€rel lĂ”petasid operaatorid kolmanda DLL-i (teine ​​versioon HttpProv.dll), valides ainult ĂŒhe manustamise.

Teiseks muudeti paljusid tagaukse konfiguratsioonivÀlju, mis tÔenÀoliselt vÀldisid tuvastamist, kuna paljud IoCd muutusid kÀttesaadavaks. Olulised vÀljad, mida autorid on muutnud, on jÀrgmised:

  • AppX-i registrivĂ”ti muudetud (vt IoC-sid)
  • mutexi kodeerimisstring ("def", "abc", "ghi")
  • pordi number

LĂ”puks on kĂ”ikidel uutel analĂŒĂŒsitud versioonidel IoC-de jaotises loetletud uued C&C-d.

JĂ€reldused

OceanLotus areneb edasi. KĂŒbergrupp on keskendunud tööriistade ja söötade tĂ€iustamisele ja laiendamisele. Autorid varjavad pahatahtlikke koormusi, kasutades tĂ€helepanu köitvaid dokumente, mille teema on mĂ”eldud ohvritele. Nad töötavad vĂ€lja uusi skeeme ja kasutavad ka avalikult kĂ€ttesaadavaid tööriistu, nĂ€iteks vĂ”rrandiredaktorit. Lisaks tĂ€iustavad nad tööriistu, et vĂ€hendada ohvrite masinatesse jÀÀvate esemete arvu, vĂ€hendades seelĂ€bi viirusetĂ”rjetarkvara tuvastamise vĂ”imalust.

Kompromissi nÀitajad

Saadaval on nii kompromissi indikaatorid kui ka MITER ATT&CK atribuudid Welifesecurity kohta Đž GitHubis.

Allikas: www.habr.com

Ostke DDoS-kaitsega saitide jaoks usaldusvÀÀrne hostimine, VPS VDS-serverid đŸ”„ Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega, VPS VDS serverid | ProHoster