Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti

Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti

Með þessari grein lýkur við röð rita sem varið er til greiningar á skaðlegum hugbúnaði. IN fyrsti hluti Við gerðum ítarlega greiningu á sýktri skrá sem evrópskt fyrirtæki fékk í pósti og fundum þar AgentTesla njósnaforrit. Í seinni hluta lýsti niðurstöðum skref-fyrir-skref greiningar á aðal AgentTesla einingunni.

Í dag mun Ilya Pomerantsev, sérfræðingur í greiningum á spilliforritum hjá CERT Group-IB, tala um fyrsta stig spilliforritagreiningar - hálfsjálfvirk niðurpakkning á AgentTesla sýnum með því að nota dæmi um þrjú smátilvik frá iðkun CERT Group-IB sérfræðinga.

Venjulega er fyrsta stigið í greiningu á spilliforritum að fjarlægja vernd í formi pökkunartækis, kryptor, verndarar eða hleðslutækis. Í flestum tilfellum er hægt að leysa þetta vandamál með því að keyra spilliforritið og framkvæma dump, en það eru aðstæður þar sem þessi aðferð hentar ekki. Til dæmis, ef spilliforritið er dulkóðari, ef það verndar minnissvæði þess frá því að vera hent, ef kóðinn inniheldur sýndarvélaskynjunarkerfi eða ef spilliforritið endurræsir sig strax eftir að það er ræst. Í slíkum tilfellum er notuð svokölluð „hálfsjálfvirk“ afpökkun, það er að rannsakandi hefur fulla stjórn á ferlinu og getur gripið inn í hvenær sem er. Við skulum íhuga þessa aðferð með því að nota þrjú sýnishorn af AgentTesla fjölskyldunni sem dæmi. Þetta er tiltölulega skaðlaust spilliforrit ef þú slekkur á netaðgangi þess.

Sýnishorn nr 1

Upprunaskráin er MS Word skjal sem nýtir sér varnarleysið CVE-2017-11882.

Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Fyrir vikið er hleðslan hlaðið niður og ræst.

Greining á ferlitrénu og hegðunarmerkjum sýnir inndælingu í ferlið RegAsm.exe.

Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Það eru hegðunarmerki sem eru einkennandi fyrir AgentTesla.

Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Niðurhalaða sýnishornið er keyranlega . NET-skrá vernduð af verndara .NET Reactor.

Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Við skulum opna það í tólinu dnSpy x86 og halda áfram að inngangsstaðnum.

Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Með því að fara í aðgerðina DateTimeOffset, munum við finna upphafskóðann fyrir nýja . NET-eining. Við skulum setja brotpunktur á línuna sem við höfum áhuga á og keyra skrána.

Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Í einum af biðmunum sem skilað er geturðu séð MZ undirskriftina (0x4D 0x5A). Við skulum bjarga því.

Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Senduð keyrsluskrá er kraftmikið bókasafn sem er hleðslutæki, þ.e. dregur út farminn úr auðlindahlutanum og ræsir hann.

Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Á sama tíma eru nauðsynlegar auðlindir sjálfar ekki til staðar í sorphaugnum. Þeir eru í foreldraúrtakinu.

Gagnsemi dnSpy hefur tvær mjög gagnlegar virkni sem mun hjálpa okkur að búa til „Frankenstein“ fljótt úr tveimur tengdum skrám.

  1. Sú fyrsta gerir þér kleift að „líma“ kraftmikið bókasafn inn í foreldrasýnishornið.

    Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti

  2. Annað er að endurskrifa aðgerðakóðann á inngangsstaðnum til að kalla á æskilega aðferð á innsettu kraftmiklu bókasafninu.

    Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti

Við vistum „Frankenstein“ settið okkar brotpunktur á línuna sem skilar biðminni með afkóðuðum auðlindum og framleiðir sorphaug á hliðstæðan hátt við fyrra stig.

Annað sorpið er skrifað inn VB.NET keyranleg skrá sem er vernduð af verndara sem við þekkir ConfuserEx.

Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Eftir að verndarinn hefur verið fjarlægður notum við YARA reglurnar sem skrifaðar voru áðan og tryggjum að ópakkað spilliforrit sé í raun AgentTesla.

Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti

Sýnishorn nr 2

Upprunaskráin er MS Excel skjal. Innbyggt fjölvi veldur keyrslu á skaðlegum kóða.

Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Fyrir vikið er PowerShell handritið ræst.

Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Handritið afkóðar C# kóðann og flytur stjórn á hann. Kóðinn sjálfur er ræsiforrit, eins og einnig má sjá af sandkassaskýrslunni.

Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Burðargetan er keyranleg . NET-skrá.

Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Að opna skrána í dnSpy x86, þú getur séð að það er óskýrt. Fjarlægir þoku með því að nota tólið de4 punktur og fara aftur í greiningu.

Þegar þú skoðar kóðann gætirðu uppgötvað eftirfarandi aðgerð:

Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Kóðuðu línurnar eru sláandi EntryPoint и borið. Við setjum brotpunktur í fyrstu línu, keyrðu og vistaðu biðminni bæti_0.

Sorpið er aftur umsókn á . NET og varið ConfuserEx.

Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Við fjarlægjum óskýringu með því að nota de4 punktur og hlaða upp á dnSpy. Af skráarlýsingunni skiljum við að við stöndum frammi fyrir CyaX-Sharp hleðslutæki.

Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Þessi hleðslutæki hefur víðtæka andgreiningarvirkni.

Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Þessi virkni felur í sér að fara framhjá innbyggðum Windows verndarkerfum, slökkva á Windows Defender, sem og sandkassa og sýndarvélaskynjunarkerfi. Það er hægt að hlaða farminn af netinu eða geyma hann í auðlindahlutanum. Ræsing er framkvæmd með inndælingu í eigin ferli, í afrit af eigin ferli eða inn í ferla MSBuild.exe, vbc.exe и RegSvcs.exe eftir færibreytunni sem árásarmaðurinn hefur valið.

Hins vegar eru þeir minna mikilvægir fyrir okkur en AntiDump-fall sem bætir við ConfuserEx. Frumkóða þess er að finna á GitHub.

Til að slökkva á vernd munum við nota tækifærið dnSpy, sem gerir þér kleift að breyta IL-kóða.

Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Vista og setja upp brotpunktur í línuna sem kallar á afkóðunaraðgerðina fyrir hleðsluhleðslu. Það er staðsett í byggingaraðila aðalflokks.

Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Við hleypum af stað og losum farminn. Með því að nota áður skrifaðar YARA reglur, tryggjum við að þetta sé AgentTesla.

Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti

Sýnishorn nr 3

Upprunaskráin er executable VB Native PE32-skrá.

Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Óreiðugreining sýnir tilvist stórs dulkóðaðra gagna.

Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Við greiningu á umsóknareyðublaði í VB decompiler þú gætir tekið eftir undarlegum pixlaðri bakgrunni.

Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Entropy graf bmp-mynd er eins og óreiðugrafið í upprunalegu skránni og stærðin er 85% af skráarstærðinni.

Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Almennt útlit myndarinnar gefur til kynna notkun stiganography.

Við skulum gefa gaum að útliti vinnslutrésins, sem og tilvist inndælingarmerkis.

Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Þetta gefur til kynna að upptaka sé í gangi. Fyrir Visual Basic hleðslutæki (aka VBKrypt eða VBI Injector) dæmigerð notkun skeljakóði að frumstilla hleðsluna, sem og að framkvæma sjálfa inndælinguna.

Greining í VB decompiler sýndi tilvist atburðar hlaða á forminu Fegatassoc Airballoon2.

Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Förum til IDA atvinnumaður á tilgreint heimilisfang og kynntu þér virknina. Kóðinn er mjög óljós. Brotið sem vekur áhuga okkar er kynnt hér að neðan.

Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Hér er vistfangarými ferlisins skannað fyrir undirskrift. Þessi nálgun er afar vafasöm.

Í fyrsta lagi upphafsvistfangið fyrir skönnun 0x400100. Þetta gildi er kyrrstætt og er ekki stillt þegar grunnurinn er færður til. Við kjöraðstæður gróðurhúsalofttegunda mun það gefa til kynna endalokin PE-hausinn á keyrsluskránni. Gagnagrunnurinn er hins vegar ekki kyrrstæður, gildi hans getur breyst og leit að raunverulegu heimilisfangi nauðsynlegrar undirskriftar, þó það valdi ekki breytilegu yfirfalli, getur tekið mjög langan tíma.

Í öðru lagi, merkingu undirskriftarinnar iWGK. Ég held að það sé augljóst að 4 bæti er of lítið til að tryggja sérstöðu. Og ef þú tekur fyrsta atriðið með í reikninginn eru líkurnar á að gera mistök nokkuð miklar.

Reyndar er nauðsynlegt brot fest við enda þess sem áður fannst bmp-myndir eftir offset 0xA1D0D.

Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Frammistaða Shellkóði framkvæmt í tveimur áföngum. Sá fyrsti greinir meginmálið. Í þessu tilviki er lykillinn ákvarðaður af grófu afli.

Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Henda afkóðaða Shellkóði og skoða línurnar.

Í fyrsta lagi þekkjum við núna aðgerðina til að búa til barnferli: CreateProcessInternalW.

Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Í öðru lagi urðum við meðvituð um hvernig festingin er í kerfinu.

Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Við skulum fara aftur í upprunalega ferlið. Við skulum setja brotpunktur á CreateProcessInternalW og halda framkvæmdinni áfram. Næst sjáum við tenginguna NtGetContextThread/NtSetContextThread, sem breytir upphafsvistfangi framkvæmdar í heimilisfang ShellCode.

Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Við tengjumst því ferli sem búið var til með villuleitarforriti og virkjum viðburðinn Fresta við hleðslu/afhleðslu bókasafns, haltu áfram ferlið og bíddu eftir hleðslu . NET-bókasöfn.

Frekari notkun ProcessHacker sorphaugur svæði sem innihalda ópakkað . NET-umsókn.

Við stöðvum alla ferla og eyðum afriti af spilliforritinu sem hefur verið innbyggt í kerfið.

Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Afhenta skráin er vernduð af verndari .NET Reactor, sem auðvelt er að fjarlægja með því að nota tól de4 punktur.

Kjörsókn mistókst: við skulum útsetja AgentTesla fyrir hreinu vatni. 3. hluti
Með því að nota YARA reglurnar sem skrifaðar voru áðan, tryggjum við að þetta sé AgentTesla.

Samantekt

Þannig að við sýndum í smáatriðum ferlið við hálfsjálfvirka upptöku sýna með því að nota þrjú smáhylki sem dæmi, og greindum einnig spilliforrit byggt á fullgildu tilviki, komumst að því að sýnishornið sem er til rannsóknar er AgentTesla, staðfestum virkni þess og a. heill listi yfir vísbendingar um málamiðlun.

Greining á illgjarna hlutnum sem við framkvæmdum krefst mikils tíma og fyrirhafnar og þetta starf ætti að vera framkvæmt af sérstökum starfsmanni í fyrirtækinu, en ekki eru öll fyrirtæki tilbúin til að ráða sérfræðing.

Ein af þeim þjónustu sem Group-IB Laboratory of Computer Forensics and Malicious Code Analysis veitir er viðbrögð við netatvikum. Og svo viðskiptavinir eyði ekki tíma í að samþykkja skjöl og ræða þau í miðri netárás, hóf Group-IB Viðbrögð við atvikum, viðbragðsþjónusta fyrir atvik fyrir áskrift sem felur einnig í sér greiningarskref fyrir spilliforrit. Frekari upplýsingar um þetta má finna hér.

Ef þú vilt enn og aftur kanna hvernig AgentTesla sýnum er pakkað upp og sjá hvernig CERT Group-IB sérfræðingur gerir það, geturðu hlaðið niður vefnámskeiðinu um þetta efni hér.

Heimild: www.habr.com

Bæta við athugasemd