ESET: kĂŒbergrupi OceanLotus uued tagaukse kohaletoimetamise skeemid

Postituses rÀÀgime, kuidas kĂŒberrĂŒhm OceanLotus (APT32 ja APT-C-00) kasutas hiljuti ĂŒhte avalikult kĂ€tte saadavat, CVE-2017-11882, Microsoft Office'i mĂ€lu kahjustamise haavatavust, ja kuidas rĂŒhma pahavara tagab pĂŒsimisvĂ”ime kompromiteeritud sĂŒsteemides, jĂ€ttes vĂ€he jĂ€lgi. Edasi rÀÀgime, kuidas rĂŒhm on 2019. aasta algusest alates kasutanud iseeneslikult lahti pakitavaid arhiive koodi kĂ€ivitamiseks.

OceanLotus spetsialiseerub kĂŒberluurele, olles prioriteetsete sihtmĂ€rkidena edela-Aasia riigid. RĂŒndajad vĂ”ltsivad dokumente, mis köidavad potentsiaalsete ohvrite tĂ€helepanu, et veenda neid tagaukse avama, ning töötavad ka tööriistade arendamise kallal. Söötade loomise meetodid varieeruvad erinevates rĂŒnnakutes – alates "topeltlaiustega" failidest, iseeneslikult lahti pakitavatest arhiividest, makrodega dokumentidest kuni tuntud ekspluateerimiseni.

ESET: kĂŒbergrupi OceanLotus uued tagaukse kohaletoimetamise skeemid

Ekspluateerimise kasutamine Microsoft Equation Editoris

2018. aasta keskel viis OceanLotus lĂ€bi kampaania, mis kasutas haavatavust CVE-2017-11882. Üks rĂŒhma pahavarakandja dokumentidest analĂŒĂŒsiti 360 Threat Intelligence Centeri spetsialistide poolt (uurimus hiina keeles), sealides detailne kirjeldus eksploitist. Allolevas postituses - ĂŒlevaade sarnasest pahavarakĂ”vast.

Esimene etapp

Dokument FW Report on demonstration of former CNRP in Republic of Korea.doc (SHA-1: D1357B284C951470066AAA7A8228190B88A5C7C3) on sarnane eespool mainitule uuringus. See on huvitav, kuna see on suunatud kasutajatele, kes on huvitatud KambodĆŸa poliitikast (CNRP - KambodĆŸa Rahvusliku PÀÀstmise Partei, mis lĂ”petati 2017. aasta lĂ”pus). Kuigi faili laiend on .doc, on dokument RTF vormingus (vt allolevat pilti), sisaldab prĂŒkkood ja on moonutatud.

ESET: kĂŒbergrupi OceanLotus uued tagaukse kohaletoimetamise skeemid
Pilt 1. 'PrĂŒgi' RTF-s

Vaatamata moonutatud elementide olemasolule avab Word edukalt selle RTF-faili. Nagu nÀha pildilt 2, on siin struktuur EQNOLEFILEHDR nihkega 0xC00, millele jÀrgneb MTEF pealkiri ja seejÀrel MTEF kande (pilt 3) fondi jaoks.

ESET: kĂŒbergrupi OceanLotus uued tagaukse kohaletoimetamise skeemid
Pilt 2. Kande FONT vÀÀrtused

ESET: kĂŒbergrupi OceanLotus uued tagaukse kohaletoimetamise skeemid
Pilt 3. Kande FONT formaat

VĂ”imalik ĂŒletĂ€itumine vĂ€ljale name, kuna selle suurust ei kontrollita enne kopeerimist. Liiga pikk nimi aktiveerib haavatavuse. Nagu on nĂ€ha RTF-faili sisust (nihkega 0xC26 pildil 2), tĂ€idetakse puhver shell-koodiga, millele jĂ€rgneb vale kĂ€sk (0x90) ja tagastus aadress 0x402114. Aadress on dialoogielemendis EQNEDT32.exe, mis viitab juhisele RET. See viib selleni, et EIP osutab vĂ€lja algusele name, mis sisaldab shell-koodi.

ESET: kĂŒbergrupi OceanLotus uued tagaukse kohaletoimetamise skeemid
Joonis 4. Shell-koodi algus eksploitis

Aadress 0x45BD3C hoiab muutujat, mis dereferentseeritakse, kuni jĂ”uab praegu laetud struktuuri pöördumisse MTEFData. Siin asub shell-koodi ĂŒlejÀÀnud osa.

Shell-koodi eesmĂ€rk on teise shell-koodi fragmendi tĂ€itmine, mis on sisseehitatud avatud dokumenti. Algne shell-kood ĂŒritab esmalt leida avatud dokumendi failihalduri, sirvides kĂ”iki sĂŒsteemi haldurite (NtQuerySystemInformation argumentiga SystemExtendedHandleInformation) ja kontrollides, kas PID haldur ja PID protsessist WinWord ja kas dokument on avatud juurdepÀÀsukoodiga - 0x12019F.

Korrektse halduri leidmise kinnitamiseks (mitte mÔne muu avatud dokumendi halduri), faili sisu kuvatakse funktsiooni abil CreateFileMapping, ja shell-kood kontrollib, kas dokumendi viimased neli baiti on "yyyy" (Egg Hunting meetod). Kui vaste on leitud, kopeeritakse dokument ajutisse kausta (GetTempPath) kui ole.dll. See rÀÀgib dokumendi viimased 12 baitide lugemisest.

ESET: kĂŒbergrupi OceanLotus uued tagaukse kohaletoimetamise skeemid
Joonis 5. Dokumendi lÔppmÀrgid

32-bitine vÀÀrtus mĂ€rkide vahel AABBCCDD ja yyyy – see on jĂ€rgmise shell-koodi offset. Seda kutsutakse vĂ€lja funktsiooni CreateThread. Samuti on raske leidnud sama shell-koodi, mida OceanLotus varem kasutas. Python-emulatsiooniskript, mille me vĂ€lja andsime 2018. aasta mĂ€rtsis, töötab endiselt teise etapi dumpimiseks.

Teine etapp

Komponentide ekstraktsioon

Faili- ja kaustanimed valitakse dĂŒnaamiliselt. Kood valib juhuslikult tĂ€idetava faili vĂ”i DLL-faili nime C:Windowssystem32. SeejĂ€rel kutsub ta vĂ€lja oma ressursid ja ekstraktib vĂ€lja FileDescription kasutamiseks kaustana. Kui see ei toimi, valib kood juhuslikult kausta nime kaustadest %ProgramFiles% vĂ”i C:Windows (GetWindowsDirectoryW kaudu). Ta vĂ€ldib nime kasutamist, mis vĂ”ib konfliktida olemasolevate failidega, ning jĂ€lgib, et see ei sisaldaks jĂ€rgmisi sĂ”nu: windows, Microsoft, desktop, sĂŒsteem, system32 vĂ”i syswow64. Kui kaust juba eksisteerib, lisatakse nimele „NLS_{6 tĂ€hemĂ€rki}”.

Ressurss 0x102 analĂŒĂŒsitakse ja failid kirjutatakse %ProgramFiles% vĂ”i %AppData%, valitud kausta. Loomise aeg on muudetud, et see vastaks samadele vÀÀrtustele nagu kernel32.dll.

NÀiteks, siin on kaust ja failide loetelu, mis on loodud kÀivitatava faili kaudu C:Windowssystem32TCPSVCS.exe andmeallikana.

ESET: kĂŒbergrupi OceanLotus uued tagaukse kohaletoimetamise skeemid
Joonis 6. Erinevate komponentide vÀljavÔtmine

Ressursi struktuur 0x102 dropeperis on piisavalt keeruline. Ütlemiseks, see sisaldab:
— Failide nimed
— Failide suurus ja sisu
— Kompressiooniformaat (COMPRESSION_FORMAT_LZNT1, mida kasutatakse funktsioonis RtlDecompressBuffer)

Esimene fail on eemaldatud kui TCPSVCS.exe, mis on legitiimne AcroTranscoder.exe (vastavalt FileDescription, SHA-1: 2896738693A8F36CC7AD83EF1FA46F82F32BE5A3).

VĂ”ib-olla olete mĂ€rganud, et mĂ”ned DLL-failid ĂŒletavad 11 MB. See tuleneb asjaolust, et suur pidev juhuslike andmete puhver asub kĂ€ivitatavas failis. Pole vĂ€listatud, et see on viis, kuidas vĂ€ltida tuvastamist mĂ”nede turvatu products.

PĂŒsivuse tagamine

Ressurss 0x101 dropperi sisaldab kahte 32-bitist tĂ€isarvu, mis mÀÀravad, kuidas tagada pĂŒsivus. Esimese vÀÀrtus nĂ€itab, kuidas pahavara saab pĂŒsivust sĂ€ilitada ilma administraatori Ă”igusteta.

ESET: kĂŒbergrupi OceanLotus uued tagaukse kohaletoimetamise skeemid
Tabel 1. PĂŒsivuse mehhanism ilma administraatori Ă”igusteta

Teise tĂ€isarvu vÀÀrtus nĂ€itab, kuidas pahavara peaks pĂŒsivust tagama, töötades administraatori Ă”igustega.

ESET: kĂŒbergrupi OceanLotus uued tagaukse kohaletoimetamise skeemid
Tabel 2. PĂŒsivuse mehhanism administraatori Ă”igustega

Teenuse nimi on faili nimi ilma laienduseta; kuvatav nimi on kausta nimi, kuid kui see juba eksisteerib, lisatakse sellele tekst "Revision 1" (number suurendab, kuni leitakse kasutamata nimi). Operaatorid on taganud, et pĂŒsivus teenuse kaudu on usaldusvÀÀrne – juhul, kui teenus ebaĂ”nnestub, tuleb see taaskĂ€ivitada 1 sekundi pĂ€rast. Siis mÀÀratakse uue teenuse registri vĂ”tme vÀÀrtuseks 4, mis nĂ€itab, et tegemist on 32-bitise teenusega. WOW64 Planeeritud ĂŒlesanne luuakse lĂ€bi mitmete COM-liideste:

ITaskScheduler ITask, ITaskTrigger, IPersistFile, IPersistFile ja ITask. Praktiliselt loob pahavara varjatud ĂŒlesande, seadistab konto teabe koos kĂ€esoleva kasutaja vĂ”i administraatori teabega ning seejĂ€rel mÀÀrab aktiveerimise.

See on igapĂ€evane ĂŒlesanne, mille kestus on 24 tundi ja kahe tĂ€itmise vahel 10-minutilised intervallid, mis tĂ€hendab, et see tĂ€idetakse pidevalt.

Pahavara tĂŒĂŒp

Meie nÀites on kÀivitatav fail TCPSVCS.exe (AcroTranscoder.exe) seaduspÀrane tarkvara, mis laadib DLL-e, mis lÀhtestatakse koos sellega. Sel juhul on huvipakkuv Flash Video Extension.dll.

Selle funktsioon DLLMain lihtsalt kutsub esile teise funktsiooni. On olemas mÔned ebamugavad eeldused:

ESET: kĂŒbergrupi OceanLotus uued tagaukse kohaletoimetamise skeemid
Joonis 7. Ebamugavad eeldused

PĂ€rast neid eksitavaid kontrolle saab kood osa .text faile TCPSVCS.exe, muudab selle kaitse PAGE_EXECUTE_READWRITE ja kirjutab selle ĂŒle, lisades valeinstruktsioone:

ESET: kĂŒbergrupi OceanLotus uued tagaukse kohaletoimetamise skeemid
Joonis 8. Instruktsioonide jada

LĂ”pus on funktsiooni aadressile FLVCore::Uninitialize(void), eksporditud Flash Video Extension.dll, lisatud kĂ€sk CALL. See tĂ€hendab, et pĂ€rast pahavara DLL-i laadimist, kui kĂ€ituskeskkond kutsub esile WinMain ĂŒhes TCPSVCS.exe, osutab kĂ€su nĂ€itaja NOP-ile, pĂ”hjustades seega FLVCore::Uninitialize(void), jĂ€rgmine etapp.

Funktsioon loob lihtsalt lukku, mis algab {181C8480-A975-411C-AB0A-630DB8B0A221}, millele jÀrgneb praegune kasutajanimi. Siis loeb ta lÀhtestate faili laiendiga *.db3, mis sisaldab positsioonist sÔltumatut koodi, ja kasutab CreateThread sisu tÀitmiseks.

*.db3 faili sisu on shell-kood, mida kasutab tavaliselt OceanLotus rĂŒhm. Oleme taas edukalt vĂ€lja pakkunud selle kasulikku koormust, kasutades emulaatori skripti, mille oleme avaldanud GitHub'is.

Skript ekstraktib lĂ”ppfaasi. See komponent on backdoor, mida oleme juba analĂŒĂŒsinud eelnevas OceanLotus uuringus.Seda saab mÀÀrata GUID jĂ€rgi {A96B020F-0000-466F-A96D-A91BBF8EAC96} binaarfaili. Pahavara konfiguratsioon on endiselt PE ressursis krĂŒpteeritud. Sellel on ligikaudu sama konfiguratsioon, kuid C&C-serverid on erinevad kui varem:

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

OceanLotus'i grupp jĂ€tkab erinevate tehnikate kombineerimist, et vĂ€ltida avastamist. Nad on tagasi 'parendatud' nakkusprotsessi skeemiga. Juhuslike nimede valimise ja tĂ€itmisega tĂ€itmisefailides juhuslike andmetega vĂ€hendavad nad usaldusvÀÀrsete IoC-de (hashide ja failinimede pĂ”hjal) arvu. Veelgi enam, kolmandate osapoolte DLL-de laadimise kasutamine tĂ€hendab, et rĂŒndajad peavad lihtsalt kustutama legaalse binaarfaili. AcroTranscoder.

Isesalvestavad arhiivid

PÀrast RTF-faile kolis grupp isesalvestavatele (SFX) arhiividele tavaliste dokumentide ikoonidega, et veelgi rohkem kasutajat segadusse ajada. Selle kohta on kirjutanud Threatbook (link hiina keeles). KÀivitamisel kustutatakse isesalvestavad RAR-failid ja kÀivitatakse DLL-id, millel on .ocx laiend, mille lÔppkasutaja laadimine oli varem dokumenteeritud. {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll. Alates 2019. aasta jaanuarist on OceanLotus seda tehnikat uuesti kasutanud, kuid aja jooksul muudavad nad mÔned konfiguratsioonid. Selles jaotises rÀÀgime tehnikast ja muudatustest.

Köitev sisu loomine

Dokument THICH-THONG-LAC-HANH-THAP-THIEN-VIET-NAM (1).EXE (SHA-1: AC10F5B1D5ECAB22B7B418D6E98FA18E32BBDEAB) leiti esmakordselt 2018. aastal. See SFX-fail on loodud teadlikult – kirjelduses on öeldud, etVersiooni info) on mainitud, et see on JPEG-pilt. SFX-skript nĂ€eb vĂ€lja jĂ€rgmine:

ESET: kĂŒbergrupi OceanLotus uued tagaukse kohaletoimetamise skeemid
Joonis 9. SFX-kÀsklused

Kahjulik programm kustutab {9ec60ada-a200-4159-b310-8071892ed0c3}.ocx (SHA-1: EFAC23B0E6395B1178BCF7086F72344B24C04DCC), samuti pildi 2018 thich thong lac.jpg.

PÀris-pilt nÀeb vÀlja jÀrgmiselt:

ESET: kĂŒbergrupi OceanLotus uued tagaukse kohaletoimetamise skeemid
Joonis 10. PĂ€ris-pilt

VÔib-olla olete mÀrganud, et SFX-skripti esimesed kaks rida kutsuvad OCX-faili vÀlja kaks korda, kuid see ei ole viga.

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

OCX-faili juhtimisvoog on vĂ€ga sarnane teiste OceanLotuse komponentidega – palju kĂ€su jĂ€rjestusi JZ/JNZ ja PUSH/RET, mis vahelduvad prahi koodiga.

ESET: kĂŒbergrupi OceanLotus uued tagaukse kohaletoimetamise skeemid
Joonis 11. Obfutseeritud kood

PÀrast prahikoodi filtreerimist eksport DllRegisterServer, mida kutsub regsvr32.exe, nÀeb vÀlja jÀrgmiselt:

ESET: kĂŒbergrupi OceanLotus uued tagaukse kohaletoimetamise skeemid
Joonis 12. Peamine installeri kood

PÔhimÔtteliselt kutsub esimene vÀljavÔte DllRegisterServer vÀljavÔte seadistab registri vÀÀrtuse HKCUSOFTWAREClassesCLSID{E08A0F4B-1F65-4D4D-9A09-BD4625B9C5A1}Model kriptitud offseti jaoks DLL-s (0x10001DE0).

Kui funktsiooni kutsub vÀlja teist korda, loeb see sama vÀÀrtuse ja tÀidetakse selle aadressi juures. Sealt loetakse ja tÀidetakse ressurss ja hulgaliselt toiminguid mÀlu sees.

Shell-kood on sama PE-laadija, mida kasutati OceanLotuse varasemates kampaaniates. Seda saab emuleerida meie skripti abil meie skripti. Selle tulemusena laaditakse db293b825dcc419ba7dc2c49fa2757ee.dll, hakatakse seda mÀlu laadima ja tÀitma DllEntry.

DLL ekstraheerib oma ressursi sisu, deƥifreerib (AES-256-CBC) ja pakib selle vÀlja (LZMA). Ressurss omab spetsiifilist formaati, mille dekompileerimine on lihtne.

ESET: kĂŒbergrupi OceanLotus uued tagaukse kohaletoimetamise skeemid
Joonis 13. Installija konfiguratsiooni struktuur (KaitaiStruct Visualizer)

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

Edasi hoitavus tagatakse ĂŒlesande loomisega nimega BackgroundUploadTask[junk].job, kus [junk] on baitide kogum 0x9D ja 0xA0.

Ülesande rakenduse nimi %windir%System32control.exe, ning parameetri vÀÀrtus on teed laaditud binaarfaili. Varjatud ĂŒlesanne kĂ€ivitub iga pĂ€ev.

Konstruktiivselt on CPL-fail DLL, millel on sisemine nimi ac8e06de0a6c4483af9837d96504127e.dll, mis ekspordib funktsiooni CPlApplet. See fail deƥifreerib oma ainulaadse ressursi {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll, see laadib selle DLL ja kutsub vÀlja selle ainus eksport DllEntry.

Tagasiukse konfiguratsioonifail

Tagasiukse konfiguratsioon on krĂŒpteeritud ja sisseehitatud tema ressurstest. Konfiguratsioonifaili struktuur on vĂ€ga sarnane varasemaga.

ESET: kĂŒbergrupi OceanLotus uued tagaukse kohaletoimetamise skeemid
Joonis 14. Tagasiukse konfiguratsiooni struktuur (KaitaiStruct Visualizer)

Vaatamata sarnasele struktuurile on paljude vÀljade vÀÀrtused vÔrreldes andmetega, mis on esitatud meie vanas aruandes.

Esimene binaarmassivi element sisaldab DLL-i (HttpProv.dll MD5: 2559738D1BD4A999126F900C7357B759), tuvastatud Tencent. Kuid kuna eksportimisnimi on binaarfailist eemaldatud, ei ĂŒhildu hash'id.

Lisauurimised

Proovide kogumise kĂ€igus tĂ€heldasime teatud omadusi. Just kirjeldatud proov ilmus umbes 2018. aasta juulis ning teised sarnased sellele – hiljuti, 2019. aasta jaanuari keskpaiku - veebruari alguses. Nakkumise vektorina kasutati SFX-arhiivi, mis vabastab legitiimse meeldimise dokumendi ja pahavara OCX.

Vaatamata sellele, et OceanLotus kasutab vale ajatempleid, mĂ€rkisime, et SFX ja OCX-failide ajatempleid on alati samad (0x57B0C36A (08/14/2016 @ 7:15pm UTC) ja 0x498BE80F (02/06/2009 @ 7:34am UTC) vastavalt. See nĂ€itab tĂ”enĂ€oliselt, et autoritel on mingi „konstructor”, mis kasutab samu malle ja muudetakse lihtsalt mĂ”ningaid omadusi.

Meie alates 2018. aastast uuritud dokumentide seas on mitmeid nimesid, mis viitavad rĂŒnnaku all olevatele 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 tagumise ukse avastamisest {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll ja selle analĂŒĂŒsi avaldamisest mitmete teadlaste poolt oleme jĂ€lginud teatud muudatusi pahavara konfigureerimises.

Esiteks hakkasid autorid eemaldama nimesid abifailidest DLL-dest (DNSprov.dll ja kaks versiooni HttpProv.dll). Siis lĂ”petasid operaatorid kolmanda DLL pakkimise (teine versioon HttpProv.dll), valides ainult ĂŒhe integreerimise.

Teiseks, paljusid tagumise ukse konfigureerimise vÀlju muudeti, tÔenÀoliselt avastamise vÀltimiseks, kuna paljud IoCs on kergesti kÀtte saada. Oluliste muudetud vÀljade seas on jÀrgmised:

  • muudetud AppX registriosa (vt IoCs)
  • muteksi kodeerimisrida („def”, „abc”, „ghi”)
  • port number

LĂ”puks on kĂ”igis uutest analĂŒĂŒsitud versioonidest ilmunud uued C&C, mis on loetletud IoC-de jaotises.

JĂ€reldused

OceanLotus jĂ€tkab arengut. KĂŒbergrupp keskendub oma tööriistade ja pĂŒĂŒniste tĂ€iustamisele ja laiendamisele. Autorid varjavad kahjulikke kasulikke koormusi, kasutades tĂ€helepanu juhtivaid dokumente, mille teema on asjakohane eeldatavate ohvrite jaoks. Nad arendavad uusi skeeme ja kasutavad avalikult kĂ€ttesaadavaid tööriistu, nĂ€iteks Equation Editor'i eksploidimist. Veelgi enam, nad tĂ€iustavad tööriistu, et vĂ€hendada ohvrite masinatel jÀÀavaid artefakte, vĂ€hendades seelĂ€bi viiruste avastamise tĂ”enĂ€osust.

Kompromentatsiooni nÀitajad

Kompromiteerimise nÀidikud ja MITRE ATT&CK atribuudid on saadaval Welivesecurity'is ja GitHub'is.

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster