Í þ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
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.
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 (
Í 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ð.
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.
Mynd 2. Innsláttargildi leturs
Mynd 3.
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.
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.
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.
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.
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.
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.
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:
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:
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
Handritið dregur út lokastigið. Þessi hluti er bakdyr, sem við höfum þegar greint í {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 ({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:
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:
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.
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:
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 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.
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].job
hvar [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.
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 í
Fyrsti þátturinn í tvöfalda fylkinu inniheldur DLL (HttpProv.dll
MD5: 2559738D1BD4A999126F900C7357B759
),
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
Heimild: www.habr.com