ESET: uued tagaveotaktikad küberrühma OceanLotus poolt

Postit räägime, kuidas küberrühm OceanLotus (APT32 ja APT-C-00) kasutas hiljuti ühte avalikult kätte saadavat eksploiti, CVE-2017-11882, Microsoft Office'i mälu kahjustamise haavatavust, ning kuidas rühma pahavara tagab püsivuse kompromiteeritud süsteemides, jättes vähe jälgi. Edasi kirjeldame, kuidas rühm on alates 2019. aastast kasutanud iseeneslikult lahti pakendavaid arhiive koodi käivitamiseks.

OceanLotus spetsialiseerub küberluurele, prioriteetsed sihid on Kagu-Aasia riigid. Ründajad valetavad dokumentides, mis köidavad potentsiaalsete ohvrite tähelepanu, et veenda neid sellega tagauste käivitamist, ning töötavad ka tööriistakomplekti arendamise kallal. Nende kütikute loomise meetodid varieeruvad erinevates rünnakutes - alates 'topeltpikendusega' failidest, iseeneslikult lahti pakendavatest arhiividest, makrosid sisaldavatest dokumentidest kuni tuntud eksploitideni.

ESET: uued tagaveotaktikad küberrühma OceanLotus poolt

Eksploidi kasutamine Microsoft Equation Editor'is

2018. aasta keskpaiku viis OceanLotus ellu kampaania, kasutades haavatavust CVE-2017-11882. Ühte rühma pahatahtlikku dokumenti analüüsis 360 Threat Intelligence Center (uurimus hiina keeles), sealhulgas üksikasjalik ülevaade eksploidi kohta. Allpool on kirjeldusega sarnane pahatahtlik dokument.

Esimene etapp

Dokument FW Report on demonstration of former CNRP in Republic of Korea.doc (SHA-1: D1357B284C951470066AAA7A8228190B88A5C7C3) sarnaneb ülemäänsuses mainituga. See on huvitav, kuna see on suunatud kasutajatele, keda huvitab Kambodža poliitika (CNRP – Kambodža Rahvusliku Päästearmee Partei, mis lahutati 2017. aasta lõpus). Kuigi sellel on .doc pikendus, on dokument RTF formaadis (vt allolevat joonist), sisaldab prügikoodi ning on moonutatud.

ESET: uued tagaveotaktikad küberrühma OceanLotus poolt
Joonis 1. „Prügi“ RTFs

Hoolimata moonutatud elementide olemasolust avab Word selle RTF-faili edukalt. Nagu näha jooniselt 2, on siin EQNOLEFILEHDR struktuur nihkega 0xC00, järgnes MTEF pealkiri ja seejärel MTEF kirje (joonis 3) fondi jaoks.

ESET: uued tagaveotaktikad küberrühma OceanLotus poolt
Joonis 2. Fondi kirje väärtused

ESET: uued tagaveotaktikad küberrühma OceanLotus poolt
Joonis 3. Fondikirje formaat

Võib esineda ülevoolu väljale nimi, kuna selle suurust ei kontrollita enne kopeerimist. Liialt pikk nimi aktiveerib haavatavuse. Nagu näha RTF faili sisust (nihke 0xC26 joonisel 2), täidetakse puhver shell-koodiga, millele järgneb vale käsk (0x90) ja tagasipöördumise aadress 0x402114. Aadress on dialoogielement EQNEDT32.exe, näidates juhiseid RET. See viib selleni, et EIP osutab välja algusele nimi, mis sisaldab shell-koodi.

ESET: uued tagaveotaktikad küberrühma OceanLotus poolt
Joonis 4. Koodijupi algus

Aadress 0x45BD3C hoiab muutuja, mis muudetakse, kuni jõuab viitaja praegusele laaditud struktuurile MTEFData. Siin asub ülejäänud shell-kood.

Shell-koodi eesmärk on teise shell-koodi tüki käivitamine, mis on sisseehitatud avatud dokumenti. Esmalt püüab algne shell-kood leida avatud dokumendi failitöötlejat, läbides kõiki süsteemi töödeldavaid faile (NtQuerySystemInformation argumentidega SystemExtendedHandleInformation) ja kontrollides, kas PID töötleja ja PID protsessi WinWord ning kas dokument avati juurdepääsu maskiga – 0x12019F.

Korrektse töödeldava leidmise kinnitamiseks (mitte teise avatud dokumendi töödeldava), kuvatakse faili sisu funktsiooni abil CreateFileMapping, ning shell-kood kontrollib, kas dokumendi viimased neli baiti on «yyyy» (mugavustunne meetod). Kui vaste leitud, kopeeritakse dokument ajutisse kausta (GetTempPathja avage brauser. aadressi järgi kirjutage: ole.dll. Seejärel loetakse dokumendi viimased 12 baiti.

ESET: uued tagaveotaktikad küberrühma OceanLotus poolt
Joonis 5. Dokumendi lõpu markerid

32-bitine väärtus markerite vahel AABBCCDD ja yyyy – on järgmise shell-koodi offset. See käivitatakse funktsiooni abil CreateThread. Sama shell-kood, mida rühm OceanLotus varem kasutas, on välja tõmmatud. Python emulatsiooni skript, mille me välja andsime märtsis 2018, töötab endiselt teise etapi dumpinguks.

Teine etapp

Komponentide eraldamine

Failide ja kaustade nimed valitakse dünaamiliselt. Kood valib juhuslikult teatud täitmisfaili või DLL-faili nime C:Windowssystem32. Seejärel teeb see oma ressursside päringu ja eraldab välja FileDescription kaustana kasutamiseks. Kui see ei toimi, valib kood juhuslikult kaustade nime kataloogidest %ProgramFiles% või C:Windows (GetWindowsDirectoryW kaudu). See väldib nimede kasutamist, mis võivad konflikti minna olemasolevate failidega ning jälgib, et see ei sisaldaks järgmisi sõnu: windows, Microsoft, desktop, system, Käivita uuesti või syswow64. Kui kaust juba eksisteerib, lisatakse nimele «NLS_{6 sümbolit}».

Allikas 0x102 analüüsitakse ja failid esitatakse %ProgramFiles% või %AppData%, juhuslikult valitud kausta. Loomise aeg muudetakse, et see oleks samasugune, nagu kernel32.dll.

Näiteks on siin kaust ja failide loend, mis on loodud täidesaatva faili valimise teel C:Windowssystem32TCPSVCS.exe andmeallikana.

ESET: uued tagaveotaktikad küberrühma OceanLotus poolt
Joonis 6. Erinevate komponentide väljavõtmine

Ressursi struktuur 0x102 droppis on üsna keeruline. Lühidalt öeldes sisaldab see:
— Failinimed
— Failide suurus ja sisu
— Kompressiooniformaat (COMPRESSION_FORMAT_LZNT1, mida kasutab funktsioon RtlDecompressBuffer)

Esimene fail saadetakse välja nagu TCPSVCS.exe, mis on seaduslik AcroTranscoder.exe ('sõltuvalt FileDescription, SHA-1: 2896738693A8F36CC7AD83EF1FA46F82F32BE5A3).

Võib-olla olete märganud, et mõned DLL-failid ületavad 11 MB. See on tingitud sellest, et suur pidev juhuslike andmete puhver on paigutatud täidesaatvasse faili. On võimalik, et see on viis, kuidas vältida avastamist mõnede turvatoodete poolt.

Püsimise tagamine

Allikas 0x101 droppis sisaldab kahte 32-bitist täisarvu, mis määravad, kuidas püsivust tagada. Esimese väärtus näitab, kuidas pahavara säilitab püsivuse ilma administreerimisõigusteta.

ESET: uued tagaveotaktikad küberrühma OceanLotus poolt
Tabel 1. Püsivuse mehhanism ilma administreerimisõigusteta

Teise täisarvu väärtus näitab, kuidas pahavara peab tagama püsivuse administreerimisõigustega.

ESET: uued tagaveotaktikad küberrühma OceanLotus poolt
Tabel 2. Püsivuse mehhanism administreerimisõigustega

Teenuse nimi on faili nimi ilma laiendita; kuvatav nimi on kausta nimi, kuid kui see on juba olemas, lisatakse sellele joon "Revision 1" (number suureneb seni, kuni leitakse kasutamata nimi). Operaatoreid on hoolt kandnud selle eest, et teenuse kaudu püsimine oleks stabiilne – tõrke korral tuleb teenus taaskäivitada 1 sekundi pärast. Seejärel määratakse WOW64 uue teenuse registrivõtme väärtuseks 4, mis näitab, et see on 32-bitine teenus.

Planeeritud ülesanne luuakse mitme COM-liidese kaudu: ITaskScheduler, ITask, ITaskTrigger, IPersistFile ja ITaskScheduler. Põhimõtteliselt loob pahavara peidetud ülesande, määrab konto teabe koos praeguse kasutaja või administraatori teabega ja seejärel määrab päästiku.

See on igapäevane ülesanne kestusega 24 tundi ja kahe täitmise vaheliste intervallidega 10 minutit, mis tähendab, et see täidetakse pidevalt.

Kahjulik bit

Meie näites on täitmise fail TCPSVCS.exe (AcroTranscoder.exe) on legitiimne tarkvara, mis laadib dll-faile, mis laaditakse koos sellega. Sellisel juhul on huvi Flash Video Extension.dll.

Selle funktsioon DLLMain lihtsalt kutsub välja veel ühe funktsiooni. On olemas mõned ebamugavad predikaadid:

ESET: uued tagaveotaktikad küberrühma OceanLotus poolt
Joonis 7. Ebamugavad predikaadid

Pärast neid eksitavaid kontrollimisi saab kood osa .text failist TCPSVCS.exe, muudab selle kaitset PAGE_EXECUTE_READWRITE ja kirjutab selle uuesti, lisades vale instruktsioone:

ESET: uued tagaveotaktikad küberrühma OceanLotus poolt
Joonis 8. Juhiste järjestus

Lõpus lisatakse funktsiooni aadressile FLVCore::Uninitialize(void), mida eksporditakse Flash Video Extension.dll, lisatakse käsklus CALL. See tähendab, et pärast kahjuliku dll-faili laadimist, kui käituskeskkond kutsub välja WinMain ja TCPSVCS.exe, näitaja osutab NOP-le, põhjustades seeläbi FLVCore::Uninitialize(void), järgmise etapi.

Funktsioon lihtsalt loob mutexi, mis algab {181C8480-A975-411C-AB0A-630DB8B0A221}, millele järgneb praegune kasutajanimi. Seejärel loeb see nullitud faili, millel on faililaiend *.db3, mis sisaldab positsioonist sõltumatut koodi, ja kasutab CreateThread selle sisu täitmiseks.

*.db3 faili sisu on shelli kood, mida kasutab tavaliselt OceanLotus rühm. Me oleme taas edukalt lahti pakkunud selle koormuse, kasutades emulaatori skripti, mille oleme avaldanud GitHubis.

Skript ekstraheerib lõpp-etapi. See komponent on tagaukse, mida oleme juba analüüsinud eelnevas OceanLotus uuringus. Seda saab määrata GUIDi abil {A96B020F-0000-466F-A96D-A91BBF8EAC96} binaarfaili. Kahjulike programmide konfiguratsioon on endiselt krüpteeritud PE ressursis. Sellel on ligikaudu sama konfiguratsioon, kuid C&C-serverid erinevad varasemast:

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

OceanLotuse rühm demonstreerib taas erinevate tehnikaid, et vältida avastamist. Nad on tagasi tulnud "täiendatud" nakatumisprotsessi skeemiga. Valides juhuslikud nimed ja täites käivitatavad failid juhuslike andmetega, vähendavad nad usaldusväärsete IoC-de (hash'ide ja failinimede põhjal) arvu. Veelgi enam, tänu kolmandate osapoolte dll-de laadimisele peab ründaja lihtsalt eemaldama legitiimse binaarfi AcroTranscoder.

Iseseisvalt lahti pakkivad arhiivid

Pärast RTF-faile läks rühm üle iseseisvalt lahti pakkivatele (SFX) arhiividele levinud dokumentide ikoonidega, et veelgi rohkem kasutajat segadusse ajada. Seda on kajastanud Threatbook (link hiina keeles). Pärast käivitamist kustutatakse iseavanevad RAR-failid ja käivitatakse .ocx laiendiga DLL-d, mille lõplik koormus on eelnevalt dokumenteeritud {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll. Alates 2019. aasta jaanuari keskelt on OceanLotus seda tehnikat uuesti kasutanud, kuid aja jooksul on mõned konfiguratsioonid muutunud. Selles osas räägime tehnikast ja muudatustest.

Käsi abinõuna

Dokument THICH-THONG-LAC-HANH-THAP-THIEN-VIET-NAM (1).EXE (SHA-1: AC10F5B1D5ECAB22B7B418D6E98FA18E32BBDEAB) leiti esmakordselt 2018. aastal. See SFX-fail on hoolikalt loodud - kirjelduses (Versiooni teave) öeldakse, et see on JPEG pilt. SFX skript näeb välja järgmine:

ESET: uued tagaveotaktikad küberrühma OceanLotus poolt
Joonis 9. SFX käsud

Pahavara tühjendab {9ec60ada-a200-4159-b310-8071892ed0c3}.ocx (SHA-1: EFAC23B0E6395B1178BCF7086F72344B24C04DCC), samuti pildi 2018 thich thong lac.jpg.

Käsi pilt näeb välja järgmine:

ESET: uued tagaveotaktikad küberrühma OceanLotus poolt
Joonis 10. Käsi pilt

Võib-olla olete märganud, et SFX skripti esimesed kaks rida kutsuvad kaks korda üles OXS faili, kuid see ei ole viga.

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

OXS faili juhtimisvoog on väga sarnane teiste OceanLotus'i komponentidega - palju käskude järjestusi JZ/JNZ ja PUSH/RET, vaheldumisi prügikoodiga.

ESET: uued tagaveotaktikad küberrühma OceanLotus poolt
Joonis 11. Obfuskeeritud kood

Pärast prügikoodi filtreerimist ekspordib DllRegisterServer, mida kutsub regsvr32.exe, see näeb välja järgmine:

ESET: uued tagaveotaktikad küberrühma OceanLotus poolt
Joonis 12. Peamine paigalduse kood

Sisuliselt esimesel kutsel DllRegisterServer ekspordib registri väärtuse HKCUSOFTWAREClassesCLSID{E08A0F4B-1F65-4D4D-9A09-BD4625B9C5A1}Model kriptitud offseti jaoks DLL-is (0x10001DE0).

Kui funktsioon kutsutakse teist korda, loetakse sama väärtus ja see täidab selle aadressi. Sealt loetakse ja täidetakse ressurss ja palju tegevusi mälus.

Shellcode on sama PE laadija, mida on kasutatud varasemates OceanLotus'i kampaaniates. Seda saab emuleerida meie skripti abil. Kokkuvõttes tühjendab tadb293b825dcc419ba7dc2c49fa2757ee.dll , laadib selle mällu ja täidabDllEntry DLL ekstraktib oma ressursi sisu, dekrüpteerib (AES-256-CBC) ja dekompresseerib (LZMA) selle. Ressurss on spetsiifilises formaadis, mida on lihtne dekompileerida..

Joonis 13. Paigaldaja konfiguratsiooni struktuur (KaitaiStruct Visualizer)

ESET: uued tagaveotaktikad küberrühma OceanLotus poolt
Konfiguratsioon on selgelt määratletud - sõltuvalt privileegide tasemest kirjutatakse binaarandmed

%appdata%IntellogsBackgroundUploadTask.cpl %windir%System32BackgroundUploadTask.cpl või SysWOW64 (või 64-bitistele süsteemidele). 64-bit süsteemide jaoks).

Edasi tagab püsivuse loomisülesanne nimega BackgroundUploadTask[junk].job, kus [junk] tähendab baitide kogumit 0x9D ja 0xA0.

Ulesande rakenduse nimi %windir%System32control.exe, ja parameetri väärtus on tee üles laaditud binaarfailini. Peidetud ülesanne käivitatakse igapäevaselt.

Konstruktiivselt on CPL-fail DLL, millel on sisemine nimi ac8e06de0a6c4483af9837d96504127e.dll, mis ekspordib funktsiooni CPlApplet. See fail dekodeerib oma ainule ressursi {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll, laadib seejärel selle DLL-i ja kutsub esile selle ainulaadse ekspordi DLL ekstraktib oma ressursi sisu, dekrüpteerib (AES-256-CBC) ja dekompresseerib (LZMA) selle. Ressurss on spetsiifilises formaadis, mida on lihtne dekompileerida..

Tagasiühenduse konfiguratsioonifail

Tagasiühenduse konfiguratsioon on krüpteeritud ja sisseehitatud selle ressurssidesse. Konfiguratsioonifaili struktuur on väga sarnane eelnevale.

ESET: uued tagaveotaktikad küberrühma OceanLotus poolt
Joonis 14. Tagasiühenduse konfiguratsiooni struktuur (KaitaiStruct Visualizer)

Kuigi struktuur on sarnane, on paljude väljade väärtuseid uuendatud võrreldes andmetega, mis on esitatud meie vanas raportis.

Esimene element binaarmasinast sisaldab DLL-i (HttpProv.dll MD5: 2559738D1BD4A999126F900C7357B759), tuvastatud Tencent. Kuid kuna ekspordi nimi eemaldati binaarfailist, ei sobi hashid.

Lisauuringud

Proovide kogumisel panime tähele mõningaid omadusi. Just kirDescribeeritud proov ilmus umbes juulis 2018, samas kui teised sarnased ilmusid hiljuti, jaanuari keskpaiku - veebruari alguses 2019. Nakkumise vektorina kasutati SFX-arhiivi, mis viskab välja legitiimse dokument-ahnuse ja kahjuliku OSH-faili.

Kuigi OceanLotus kasutab valeaega, oleme tähele pannud, et SFX-failide ja OCX-failide ajatempli ajad on alati samad (0x57B0C36A (08/14/2016 @ 7:15pm UTC) ja 0x498BE80F (02/06/2009 @ 7:34am UTC) vastavalt). Tõenäoliselt viitab see sellele, et autoritel on mingisugune 'konstruktor', mis kasutab samu malle ja muudab lihtsalt teatud omadusi.

Dokumentides, mida oleme uurinud alates 2018. aastast, on esitatud erinevaid nimesid, mis viitavad rünnakute sihtimiseks huvitavatele riikidele:

— The New Contact Information Of Cambodia Media(New).xls.exe
— 李建香 (个人简历).exe (vale pdf dokument CV-st)
— feedback, Rally in USA from July 28-29, 2018.exe

Alates tagasiühenduse avastamisest {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll ja selle analüüsi avaldamisest mitmete teadlaste poolt oleme märganud teatud muudatusi kahjulike programmide konfiguratsioonis.

Esiteks on autorid hakanud eemaldama nimesid abifailidest DLL (DNSprov.dll ja kaks versiooni HttpProv.dll). Siis operaatorid lõpetasid kolmanda DLLi pakkimise (teine versioon HttpProv.dll), valides ainult ühe integreerimise.

Teiseks, paljusid tagatakistuse konfiguratsioonivälju muudeti, tõenäoliselt avastamise vältimiseks, kuna paljud IoCd on muutunud kergesti kättesaadavaks. Oluliste muudetud väljade hulka kuuluvad:

  • muudetud AppX registriosa (vt IoCs)
  • mütsikoodeerimisrida („def“, „abc“, „ghi“)
  • pordi number

Lõpuks on kõigis uutest analüüsitud versioonides ilmunud uued C&C, mis on loetletud IoCs osas.

Järeldused

OceanLotus jätkab arengut. Kübergrupp on keskendunud tööriistade ja köidete täiustamisele ja laiendamisele. Autorid maskeerivad pahavara laadimist tähelepanu äratavate dokumentide kaudu, mille teema on asjakohane eeldatavate sihtmärkide jaoks. Nad arendavad uusi skeeme ning kasutavad ka avalikke tööriistu, näiteks Equation Editori ekspluateerimist. Veelgi enam, nad täiustavad tööriistu, et vähendada artefaktide arvu, mis jäävad ohvrite masinatele, seeläbi vähendades avastamise võimalusi viirusetõrje tarkvara poolt.

Kompromissindikaatorid

Kompromiteerimise näidikud, samuti MITRE ATT&CK atribuudid on saadaval Welivesecurity-l ja GitHubis.

Allikas: habr.com

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster