ESET: nýtt bakdyrafhendingarkerfi fyrir OceanLotus nethópinn

Í þessari færslu munum við segja þér hvernig nethópurinn OceanLotus (APT32 og APT-C-00) notaði nýlega eitt af opinberum hetjudáðum fyrir CVE-2017-11882, veikleika á minnisspillingu í Microsoft Office og hvernig spilliforrit hópsins nær þrávirkni á kerfum sem eru í hættu án þess að skilja eftir sig spor. Næst munum við lýsa því hvernig hópurinn hefur notað sjálfútdráttarsöfn til að keyra kóða frá ársbyrjun 2019.

OceanLotus sérhæfir sig í netnjósnum, en forgangsmarkmiðin eru lönd í Suðaustur-Asíu. Árásarmenn falsa skjöl sem vekja athygli hugsanlegra fórnarlamba til að sannfæra þá um að framkvæma bakdyrnar og vinna einnig að þróun verkfæra. Aðferðirnar sem notaðar eru til að búa til hunangspotta eru mismunandi eftir árásum, allt frá „tvöfaldri framlengingu“ skrám, sjálfútdrættum skjalasafni, skjölum með fjölvi, til þekktra hetjudáða.

ESET: nýtt bakdyrafhendingarkerfi fyrir OceanLotus nethópinn

Notkun hagnýtingar í Microsoft Equation Editor

Um mitt ár 2018 framkvæmdi OceanLotus herferð þar sem varnarleysi CVE-2017-11882 nýttist. Eitt af illgjarnum skjölum nethópsins var greint af sérfræðingum frá 360 Threat Intelligence Center (rannsóknir á kínversku), þar á meðal nákvæma lýsingu á hagnýtingu. Færslan hér að neðan inniheldur yfirlit yfir slíkt illgjarn skjal.

Í fyrsta áfanga

Skjalið FW Report on demonstration of former CNRP in Republic of Korea.doc (SHA-1: D1357B284C951470066AAA7A8228190B88A5C7C3) er svipað því sem nefnt er í rannsókninni hér að ofan. Það er áhugavert vegna þess að það er ætlað notendum sem hafa áhuga á kambódískum stjórnmálum (CNRP - Cambodia National Rescue Party, leyst upp í lok árs 2017). Þrátt fyrir .doc endinguna er skjalið á RTF formi (sjá mynd hér að neðan), inniheldur ruslkóða og er einnig brenglað.

ESET: nýtt bakdyrafhendingarkerfi fyrir OceanLotus nethópinn
Mynd 1. "Sorp" í RTF

Jafnvel þó að það séu ruglaðir þættir, opnar Word þessa RTF skrá með góðum árangri. Eins og þú sérð á mynd 2 er EQNOLEFILEHDR uppbygging við offset 0xC00, fylgt eftir með MTEF haus og síðan MTEF færslu (Mynd 3) fyrir leturgerðina.

ESET: nýtt bakdyrafhendingarkerfi fyrir OceanLotus nethópinn
Mynd 2. Innsláttargildi leturs

ESET: nýtt bakdyrafhendingarkerfi fyrir OceanLotus nethópinn
Mynd 3. FONT upptökusnið

Mögulegt yfirfall á sviði nafn, vegna þess að stærð þess er ekki merkt fyrir afritun. Of langt nafn kallar á varnarleysi. Eins og þú sérð af innihaldi RTF skráarinnar (á móti 0xC26 á mynd 2), er biðminni fyllt með skeljakóða fylgt eftir með dummy skipun (0x90) og heimilisfang 0x402114. Heimilisfangið er gluggaþáttur í EQNEDT32.exe, sem gefur til kynna leiðbeiningar RET. Þetta veldur því að EIP bendir á upphaf vallarins nafnsem inniheldur skeljakóðann.

ESET: nýtt bakdyrafhendingarkerfi fyrir OceanLotus nethópinn
Mynd 4. Upphaf nýtingarskeljakóðans

netfang 0x45BD3C geymir breytu sem er vísað frá þar til hún nær bendi á þá uppbyggingu sem nú er hlaðin MTEFData. Restin af skelkóðanum er hér.

Tilgangur skeljakóðans er að framkvæma annað stykki af skeljakóða sem er fellt inn í opna skjalið. Upprunalega skelkóðinn reynir fyrst að finna skráarlýsingu opna skjalsins með því að endurtaka yfir alla kerfislýsingar (NtQuerySystemInformation með rökum SystemExtendedHandleInformation) og athuga hvort þær passa saman PID lýsing og PID ferli WinWord og hvort skjalið hafi verið opnað með aðgangsgrímu - 0x12019F.

Til að staðfesta að rétt handfang hafi fundist (en ekki handfangið í öðru opnu skjali), er innihald skrárinnar birt með aðgerðinni CreateFileMapping, og skelkóðinn athugar hvort síðustu fjögur bæti skjalsins passa við "yyyy"(Eggveiðiaðferð). Þegar samsvörun hefur fundist er skjalið afritað í tímabundna möppu (GetTempPath) Hvernig ole.dll. Síðan eru síðustu 12 bæti skjalsins lesin.

ESET: nýtt bakdyrafhendingarkerfi fyrir OceanLotus nethópinn
Mynd 5. Lokamerki skjala

32-bita gildi á milli merkja AABBCCDD и yyyy er offset næsta skelkóða. Það er kallað að nota aðgerðina CreateThread. Dró út sama skeljakóða og var notaður af OceanLotus hópnum áðan. Python hermir forskrift, sem við gáfum út í mars 2018, virkar enn fyrir seinni áfanga sorphauga.

The second leiksvið

Að fjarlægja íhluti

Skráar- og möppuheiti eru valin á kraftmikinn hátt. Kóðinn velur af handahófi nafn executable eða DLL skráar í C:Windowssystem32. Það gerir síðan beiðni til auðlinda sinna og sækir reitinn FileDescription til að nota sem möppuheiti. Ef þetta virkar ekki velur kóðinn af handahófi möppuheiti úr möppunum %ProgramFiles% eða C:Windows (frá GetWindowsDirectoryW). Það forðast að nota nafn sem gæti stangast á við núverandi skrár og tryggir að það innihaldi ekki eftirfarandi orð: windows, Microsoft, desktop, system, system32 eða syswow64. Ef skráin er þegar til er „NLS_{6 stafir}“ bætt við nafnið.

úrræði 0x102 er greint og skrám er hent inn %ProgramFiles% eða %AppData%, í möppu sem valin er af handahófi. Breytt sköpunartíma til að hafa sömu gildi og kernel32.dll.

Til dæmis, hér er mappan og listi yfir skrár sem eru búnar til með því að velja keyrsluna C:Windowssystem32TCPSVCS.exe sem gagnaveita.

ESET: nýtt bakdyrafhendingarkerfi fyrir OceanLotus nethópinn
Mynd 6. Útdráttur ýmissa íhluta

Auðlindauppbygging 0x102 í dropara er frekar flókið. Í hnotskurn inniheldur það:
— Skráarnöfn
— Skráarstærð og innihald
— Þjöppunarsnið (COMPRESSION_FORMAT_LZNT1, notað af fallinu RtlDecompressBuffer)

Fyrsta skráin er endurstillt sem TCPSVCS.exe, sem er lögmætt AcroTranscoder.exe (samkvæmt FileDescription, SHA-1: 2896738693A8F36CC7AD83EF1FA46F82F32BE5A3).

Þú gætir hafa tekið eftir því að sumar DLL skrár eru stærri en 11 MB. Þetta er vegna þess að stór samfelld biðminni af handahófi gagna er sett í keyrsluskrána. Það er mögulegt að þetta sé leið til að forðast uppgötvun af sumum öryggisvörum.

Að tryggja þrautseigju

úrræði 0x101 í droparanum inniheldur tvær 32-bita heiltölur sem tilgreina hvernig þrautseigju ætti að veita. Gildi þess fyrsta tilgreinir hvernig spilliforritið verður viðvarandi án réttinda stjórnanda.

ESET: nýtt bakdyrafhendingarkerfi fyrir OceanLotus nethópinn
Tafla 1. Þrautseigjubúnaður án stjórnandaréttinda

Gildi seinni heiltölunnar tilgreinir hvernig spilliforritið ætti að ná þrautseigju þegar keyrt er með stjórnandaréttindi.

ESET: nýtt bakdyrafhendingarkerfi fyrir OceanLotus nethópinn
Tafla 2. Þrautseigjukerfi með stjórnandaréttindum

Þjónustuheitið er skráarnafnið án framlengingar; skjánafnið er nafn möppunnar, en ef það er þegar til, er strengnum “ bætt við hanaRevision 1” (talan hækkar þar til ónotað nafn finnst). Rekstraraðilar gættu þess að þrautseigja í gegnum þjónustuna væri sterk - ef bilun kemur upp ætti að endurræsa þjónustuna eftir 1 sekúndu. Þá verðmæti WOW64 Skráningarlykill nýju þjónustunnar er stilltur á 4, sem gefur til kynna að um 32-bita þjónustu sé að ræða.

Áætlað verkefni er búið til í gegnum nokkur COM tengi: ITaskScheduler, ITask, ITaskTrigger, IPersistFile и ITaskScheduler. Í meginatriðum skapar spilliforritið falið verkefni, stillir reikningsupplýsingarnar ásamt núverandi notanda- eða stjórnandaupplýsingum og setur síðan kveikjuna.

Þetta er daglegt verkefni með 24 klukkustunda lengd og 10 mínútna millibili á milli tveggja aftökum, sem þýðir að það mun keyra stöðugt.

Illgjarn biti

Í dæminu okkar, keyrsluskráin TCPSVCS.exe (AcroTranscoder.exe) er lögmætur hugbúnaður sem hleður DLL-skjölum sem eru endurstilltar ásamt honum. Í þessu tilviki er það áhugavert Flash Video Extension.dll.

Hlutverk þess DLLMain kallar bara aðra aðgerð. Sumar óljósar forsendur eru til staðar:

ESET: nýtt bakdyrafhendingarkerfi fyrir OceanLotus nethópinn
Mynd 7. Óljós forsaga

Eftir þessar villandi athuganir fær kóðinn hluta .text skrá TCPSVCS.exe, breytir vörn sinni til PAGE_EXECUTE_READWRITE og endurskrifar það með því að bæta við dummy leiðbeiningum:

ESET: nýtt bakdyrafhendingarkerfi fyrir OceanLotus nethópinn
Mynd 8. Röð leiðbeininga

Í lokin að aðgerða heimilisfanginu FLVCore::Uninitialize(void), flutt út Flash Video Extension.dll, bætist kennsla við CALL. Þetta þýðir að eftir að illgjarn DLL er hlaðinn, þegar afturkreistingurinn kallar WinMain в TCPSVCS.exe, mun leiðbeiningabendillinn benda á NOP, sem veldur FLVCore::Uninitialize(void), næsta stig.

Aðgerðin býr einfaldlega til mutex sem byrjar á {181C8480-A975-411C-AB0A-630DB8B0A221}fylgt eftir með núverandi notandanafni. Það les síðan varpað *.db3 skrá, sem inniheldur stöðuóháðan kóða, og notar CreateThread til að framkvæma innihaldið.

Innihald *.db3 skráarinnar er skelkóðinn sem OceanLotus hópurinn notar venjulega. Okkur tókst aftur að pakka niður hleðslu þess með því að nota hermiforritið sem við birtum á GitHub.

Handritið dregur út lokastigið. Þessi hluti er bakdyr, sem við höfum þegar greint í fyrri OceanLotus rannsókn. Þetta er hægt að ákvarða með GUID {A96B020F-0000-466F-A96D-A91BBF8EAC96} tvöfaldur skrá. Uppsetning spilliforrita er enn dulkóðuð í PE tilfönginni. Það hefur um það bil sömu uppsetningu, en C&C netþjónarnir eru frábrugðnir þeim fyrri:

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

OceanLotus teymið sýnir aftur blöndu af mismunandi aðferðum til að forðast uppgötvun. Þeir komu aftur með „fágað“ skýringarmynd af sýkingarferlinu. Með því að velja tilviljunarkennd nöfn og fylla executables af handahófi gögnum, draga þeir úr fjölda áreiðanlegra IoCs (byggt á kjötkássa og skráarnöfnum). Þar að auki, þökk sé notkun á DLL-hleðslu frá þriðja aðila, þurfa árásarmenn aðeins að fjarlægja lögmæta tvöfaldann AcroTranscoder.

Sjálfútdráttur skjalasafn

Eftir RTF skrár flutti hópurinn í sjálfútdráttar (SFX) skjalasafn með algengum skjalatáknum til að rugla notandann enn frekar. Threatbook skrifaði um þetta (hlekkur á kínversku). Við ræsingu er sjálfútdráttar RAR-skrám sleppt og DLL-skrár með .ocx-endingu eru keyrðar, en endanleg hleðsla þeirra hefur verið skjalfest áður {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll. Síðan um miðjan janúar 2019 hefur OceanLotus verið að endurnýta þessa tækni, en breytt nokkrum stillingum með tímanum. Í þessum kafla munum við tala um tæknina og breytingar.

Að búa til tálbeitu

Skjalið THICH-THONG-LAC-HANH-THAP-THIEN-VIET-NAM (1).EXE (SHA-1: AC10F5B1D5ECAB22B7B418D6E98FA18E32BBDEAB) fannst fyrst árið 2018. Þessi SFX skrá var búin til skynsamlega - í lýsingunni (Útgáfuupplýsingar) segir að þetta sé JPEG mynd. SFX handritið lítur svona út:

ESET: nýtt bakdyrafhendingarkerfi fyrir OceanLotus nethópinn
Mynd 9. SFX skipanir

Spilliforritið endurstillir sig {9ec60ada-a200-4159-b310-8071892ed0c3}.ocx (SHA-1: EFAC23B0E6395B1178BCF7086F72344B24C04DCC), auk myndar 2018 thich thong lac.jpg.

Tálbeitumyndin lítur svona út:

ESET: nýtt bakdyrafhendingarkerfi fyrir OceanLotus nethópinn
Mynd 10. Tálbeitumynd

Þú gætir hafa tekið eftir því að fyrstu tvær línurnar í SFX handritinu kalla OCX skrána tvisvar, en þetta er ekki villa.

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

Stýriflæði OCX skráar er mjög líkt öðrum OceanLotus íhlutum - margar skipanaraðir JZ/JNZ и PUSH/RET, til skiptis með sorpkóða.

ESET: nýtt bakdyrafhendingarkerfi fyrir OceanLotus nethópinn
Mynd 11. Skuggalaus kóði

Eftir að þú hefur síað út ruslkóða skaltu flytja út DllRegisterServer, kallaður regsvr32.exe, eins og hér segir:

ESET: nýtt bakdyrafhendingarkerfi fyrir OceanLotus nethópinn
Mynd 12. Grunnkóði fyrir uppsetningarforrit

Í grundvallaratriðum, í fyrsta símtalinu DllRegisterServer útflutnings setur skrásetningargildi HKCUSOFTWAREClassesCLSID{E08A0F4B-1F65-4D4D-9A09-BD4625B9C5A1}Model fyrir dulkóðaða offset í DLL (0x10001DE0).

Þegar fallið er kallað í annað sinn les það sama gildi og keyrir á því heimilisfangi. Héðan eru tilföngin og margar aðgerðir í vinnsluminni lesnar og framkvæmdar.

Skeljakóði er sami PE hleðslutæki og notaður var í fyrri OceanLotus herferðum. Það er hægt að líkja eftir því að nota handritið okkar. Að lokum endurstillir hann db293b825dcc419ba7dc2c49fa2757ee.dll, hleður því inn í minni og keyrir DllEntry.

DLL dregur út innihald auðlindarinnar, afkóðar (AES-256-CBC) og þjappar niður (LZMA) það. Tilfangið hefur ákveðið snið sem auðvelt er að taka í sundur.

ESET: nýtt bakdyrafhendingarkerfi fyrir OceanLotus nethópinn
Mynd 13. Uppsetning uppsetningarkerfis (KaitaiStruct Visualizer)

Stillingin er sérstaklega tilgreind - það fer eftir forréttindastigi, tvíundargögn verða skrifuð á %appdata%IntellogsBackgroundUploadTask.cpl eða %windir%System32BackgroundUploadTask.cpl (Eða SysWOW64 fyrir 64 bita kerfi).

Frekari þrautseigja er tryggð með því að búa til verkefni með nafninu BackgroundUploadTask[junk].jobhvar [junk] táknar sett af bætum 0x9D и 0xA0.

Nafn verkefnis umsóknar %windir%System32control.exe, og færibreytugildið er slóðin að niðurhaluðu tvíundarskránni. Falda verkefnið keyrir á hverjum degi.

Byggingarlega séð er CPL skrá DLL með innra nafni ac8e06de0a6c4483af9837d96504127e.dll, sem flytur út fall CPlApplet. Þessi skrá afkóðar eina auðlind sína {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll, þá hleður þetta DLL og kallar eina útflutning þess DllEntry.

Stillingarskrá fyrir bakdyr

Bakdyrastillingin er dulkóðuð og innbyggð í auðlindir þess. Uppbygging stillingarskrárinnar er mjög svipuð þeirri fyrri.

ESET: nýtt bakdyrafhendingarkerfi fyrir OceanLotus nethópinn
Mynd 14. Uppbygging bakdyra (KaitaiStruct Visualizer)

Þrátt fyrir að uppbyggingin sé svipuð hafa mörg svæðisgildanna verið uppfærð frá þeim sem sýnd eru í gömlu skýrsluna okkar.

Fyrsti þátturinn í tvöfalda fylkinu inniheldur DLL (HttpProv.dll MD5: 2559738D1BD4A999126F900C7357B759), kennd við Tencent. En þar sem útflutningsheitið var fjarlægt úr tvöfaldanum passa kjötkássa ekki saman.

Viðbótarrannsóknir

Við söfnun sýna tókum við eftir nokkrum einkennum. Sýnið sem var lýst birtist í kringum júlí 2018 og annað eins það birtist svo nýlega sem um miðjan janúar til byrjun febrúar 2019. SFX skjalasafnið var notað sem sýkingarferill, sleppti lögmætu tálbeituskjali og illgjarnri OSX skrá.

Jafnvel þó að OceanLotus noti falsa tímastimpla tókum við eftir því að tímastimplar SFX og OCX skráa eru alltaf þeir sömu (0x57B0C36A (08/14/2016 @ 7:15 UTC) og 0x498BE80F (02/06/2009 @ 7:34 am UTC) í sömu röð). Þetta bendir líklega til þess að höfundar hafi einhvers konar „hönnuð“ sem notar sömu sniðmát og breytir einfaldlega einhverjum eiginleikum.

Meðal skjala sem við höfum rannsakað frá ársbyrjun 2018 eru ýmis nöfn sem gefa til kynna hvaða lönd árásarmennirnir hafa áhuga á:

— Nýjar tengiliðaupplýsingar Cambodia Media(New).xls.exe
— 李建香 (个人简历).exe (fals pdf skjal af ferilskrá)
— endurgjöf, Rally í Bandaríkjunum frá 28.-29. júlí, 2018.exe

Frá því að bakdyrnar fundust {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll og birtingu greiningar þess af nokkrum rannsakendum, sáum við nokkrar breytingar á uppsetningargögnum spilliforrita.

Í fyrsta lagi byrjuðu höfundarnir að fjarlægja nöfn úr hjálpar-DLLs (DNSprov.dll og tvær útgáfur HttpProv.dll). Rekstraraðilar hættu þá að pakka þriðju DLL (önnur útgáfan HttpProv.dll), og velur að fella aðeins einn inn.

Í öðru lagi var mörgum uppstillingarreitum bakdyra breytt, líklega til að komast hjá uppgötvun þar sem margir IoCs urðu tiltækir. Mikilvægir reitir sem höfundar hafa breytt eru:

  • AppX skrásetningarlykli breytt (sjá IoCs)
  • mutex kóðunarstrengur ("def", "abc", "ghi")
  • hafnarnúmer

Að lokum hafa allar nýjar útgáfur sem greindar eru nýjar C&Cs skráðar í IoCs hlutanum.

Niðurstöður

OceanLotus heldur áfram að þróast. Nethópurinn einbeitir sér að því að betrumbæta og stækka tækin og tálbeiningarnar. Höfundar dulbúa skaðlegan farm með því að nota athyglisverð skjöl þar sem efni er viðeigandi fyrir ætlað fórnarlömb. Þeir þróa ný kerfi og nota einnig verkfæri sem eru aðgengileg almenningi, eins og Equation Editor exploit. Þar að auki eru þeir að bæta verkfæri til að draga úr fjölda gripa sem eftir eru á vélum fórnarlambanna og draga þannig úr líkum á uppgötvun með vírusvarnarhugbúnaði.

Vísbendingar um málamiðlun

Vísbendingar um málamiðlun sem og MITER ATT&CK eiginleikar eru fáanlegir um velferðaröryggi и á GitHub.

Heimild: www.habr.com

Bæta við athugasemd