Met hierdie artikel voltooi ons die reeks publikasies wat gewy is aan die ontleding van kwaadwillige sagteware. IN
Vandag sal Ilya Pomerantsev, 'n spesialis in wanware-analise by CERT Group-IB, praat oor die eerste fase van wanware-analise - semi-outomatiese uitpak van AgentTesla-monsters deur die voorbeeld van drie mini-gevalle uit die praktyk van CERT Group-IB-spesialiste te gebruik.
Tipies is die eerste fase in wanware-analise die verwydering van beskerming in die vorm van 'n pakker, kriptor, beskermer of laaier. In die meeste gevalle kan hierdie probleem opgelos word deur die wanware uit te voer en 'n storting uit te voer, maar daar is situasies waar hierdie metode nie geskik is nie. Byvoorbeeld, as die wanware 'n enkripteerder is, as dit sy geheuestreke beskerm teen gestort word, as die kode virtuele masjienopsporingsmeganismes bevat, of as die wanware onmiddellik herlaai nadat dit begin het. In sulke gevalle word sogenaamde “semi-outomatiese” uitpak gebruik, dit wil sê die navorser het volle beheer oor die proses en kan enige tyd ingryp. Kom ons kyk na hierdie prosedure deur drie voorbeelde van die AgentTesla-familie as voorbeeld te gebruik. Dit is 'n relatief onskadelike wanware as jy sy netwerktoegang deaktiveer.
Monster nr. 1
Die bronlêer is 'n MS Word-dokument wat die kwesbaarheid CVE-2017-11882 uitbuit.
Gevolglik word die loonvrag afgelaai en geloods.
Ontleding van die prosesboom en gedragsmerkers toon inspuiting in die proses RegAsm.exe.
Daar is gedragsmerkers kenmerkend van AgentTesla.
Die afgelaaide voorbeeld is die uitvoerbare een NET.-lêer beskerm deur 'n beskermer .NET Reactor.
Kom ons maak dit oop in die nut dnSpy x86 en gaan aan na die toegangspunt.
Deur na die funksie te gaan Datum TydOffset, sal ons die inisialiseringskode vir die nuwe vind NET.-module. Kom ons sit breekpunt op die lyn waarin ons belangstel en voer die lêer uit.
In een van die teruggekeerde buffers kan jy die MZ handtekening (0x4D 0x5A). Kom ons stoor dit.
'n Gedumpte uitvoerbare lêer is 'n dinamiese biblioteek wat 'n laaier is, d.w.s. onttrek die loonvrag uit die hulpbronafdeling en begin dit.
Terselfdertyd is die nodige hulpbronne self nie in die storting aanwesig nie. Hulle is in die ouermonster.
Nuts dnSpioen het twee uiters nuttige funksies wat ons sal help om redelik vinnig 'n "Frankenstein" uit twee verwante lêers te skep.
- Die eerste laat jou toe om 'n dinamiese biblioteek in die ouermonster te "plak".
- Die tweede is om die funksiekode by die toegangspunt te herskryf om die verlangde metode van die ingevoegde dinamiese biblioteek te roep.
Ons bêre ons “Frankenstein”, stel breekpunt op die lyn wat 'n buffer met gedekripteerde hulpbronne terugstuur, en 'n storting produseer na analogie van die vorige stadium.
Die tweede stortingsterrein is ingeskryf VB.NET 'n uitvoerbare lêer wat beskerm word deur 'n beskermer wat aan ons bekend is VerwarrEx.
Nadat ons die beskermer verwyder het, gebruik ons die YARA-reëls wat vroeër geskryf is en maak seker dat die uitgepakte wanware werklik AgentTesla is.
Monster nr. 2
Die bronlêer is 'n MS Excel-dokument. 'n Ingeboude makro veroorsaak die uitvoering van kwaadwillige kode.
As gevolg hiervan word die PowerShell-skrip geloods.
Die skrip dekripteer die C#-kode en dra beheer daaroor oor. Die kode self is 'n selflaaiprogram, soos ook uit die sandbox-verslag gesien kan word.
Die loonvrag is 'n uitvoerbare NET.-lêer.
Maak die lêer oop in dnSpy x86, kan jy sien dat dit vertroebel is. Verwyder verduistering met behulp van die hulpprogram de4 punt en keer terug na analise.
Wanneer u die kode ondersoek, kan u die volgende funksie ontdek:
Die geënkodeerde lyne is treffend Toegangspunt и roep. Ons sit breekpunt na die eerste reël, hardloop en stoor die bufferwaarde greep_0.
Die storting is weer 'n aansoek op NET. en beskerm VerwarrEx.
Ons verwyder verduistering met behulp van de4 punt en laai op na dnSpioen. Uit die lêerbeskrywing verstaan ons dat ons gekonfronteer word CyaX-Sharp laaier.
Hierdie laaier het uitgebreide anti-analise funksionaliteit.
Hierdie funksionaliteit sluit in die omseil van ingeboude Windows-beskermingstelsels, die deaktivering van Windows Defender, sowel as sandbox- en virtuele masjien-opsporingsmeganismes. Dit is moontlik om die loonvrag vanaf die netwerk te laai of dit in die hulpbronafdeling te stoor. Bekendstelling word uitgevoer deur inspuiting in sy eie proses, in 'n duplikaat van sy eie proses, of in prosesse MSBuild.exe, vbc.exe и RegSvcs.exe afhangende van die parameter wat deur die aanvaller gekies is.
Vir ons is hulle egter minder betekenisvol as Antidump-funksie wat byvoeg VerwarrEx. Die bronkode daarvan kan gevind word by
Om beskerming te deaktiveer, sal ons die geleentheid gebruik dnSpioen, wat jou toelaat om te wysig IL-kode.
Stoor en installeer breekpunt na die lyn om die loonvrag-dekripsiefunksie te roep. Dit is geleë in die konstruktor van die hoofklas.
Ons lanseer en stort die loonvrag. Deur die voorheen geskrewe YARA-reëls te gebruik, maak ons seker dat dit AgentTesla is.
Monster nr. 3
Die bronlêer is die uitvoerbare VB Inheemse PE32-lêer.
Entropie-analise toon die teenwoordigheid van 'n groot stuk geënkripteerde data.
By die ontleding van die aansoekvorm in VB Decompiler jy kan dalk 'n vreemde gepixeleerde agtergrond opmerk.
Entropie grafiek bmp-beeld is identies aan die entropiegrafiek van die oorspronklike lêer, en die grootte is 85% van die lêergrootte.
Die algemene voorkoms van die beeld dui op die gebruik van steganografie.
Kom ons let op die voorkoms van die prosesboom, sowel as die teenwoordigheid van 'n inspuitmerker.
Dit dui aan dat uitpak aan die gang is. Vir Visual Basic-laaiers (aka VBKrypt of VBI Injector) tipiese gebruik dopkode om die loonvrag te inisialiseer, asook om die inspuiting self uit te voer.
Ontleding in VB Decompiler die teenwoordigheid van 'n gebeurtenis getoon het vrag by die vorm Fegatassoc Lugballon2.
Kom ons gaan na IDA pro na die gespesifiseerde adres en bestudeer die funksie. Die kode is baie verduister. Die fragment wat ons interesseer, word hieronder aangebied.
Hier word die proses se adresspasie geskandeer vir 'n handtekening. Hierdie benadering is uiters twyfelagtig.
Eerstens, die beginadres van die skandering 0x400100. Hierdie waarde is staties en word nie aangepas wanneer die basis geskuif word nie. In ideale kweekhuistoestande sal dit die einde aandui PE-die kop van die uitvoerbare lêer. Die databasis is egter nie staties nie, die waarde daarvan kan verander, en om na die regte adres van die vereiste handtekening te soek, alhoewel dit nie 'n veranderlike oorloop sal veroorsaak nie, kan baie lank neem.
Tweedens, die betekenis van die handtekening iWGK. Ek dink dit is duidelik dat 4 grepe te klein is om uniekheid te waarborg. En as jy die eerste punt in ag neem, is die waarskynlikheid om 'n fout te maak redelik hoog.
Trouens, die vereiste fragment is aan die einde van die voorheen gevind bmp-prente volgens offset 0xA1D0D.
Optrede Shell-kode in twee fases uitgevoer. Die eerste ontsyfer die hoofliggaam. In hierdie geval word die sleutel deur brute krag bepaal.
Gooi die ontsyferde een Shell-kode en kyk na die lyne.
Eerstens ken ons nou die funksie om 'n kinderproses te skep: CreateProcessInternalW.
Tweedens het ons bewus geword van die meganisme van fiksasie in die sisteem.
Kom ons gaan terug na die oorspronklike proses. Kom ons sit breekpunt op CreateProcessInternalW en gaan voort met uitvoering. Volgende sien ons die verband NtGetContextThread/NtSetContextThread, wat die uitvoering begin adres verander na die adres Shell-kode.
Ons koppel aan die geskepde proses met 'n ontfouter en aktiveer die gebeurtenis Skors op biblioteek laai/aflaai, hervat die proses en wag vir laai NET.-biblioteke.
Verdere gebruik ProcessHacker stortingsgebiede wat uitgepak bevat NET.-toepassing.
Ons stop alle prosesse en vee die kopie van die wanware uit wat in die stelsel ingebed is.
Die gestort lêer word deur 'n beskermer beskerm .NET Reactor, wat maklik verwyder kan word met behulp van 'n nut de4 punt.
Met behulp van die YARA-reëls wat vroeër geskryf is, maak ons seker dat dit AgentTesla is.
om op te som
Dus, ons het die proses van semi-outomatiese monsteruitpak in detail gedemonstreer met behulp van drie mini-houers as 'n voorbeeld, en ook wanware ontleed op grond van 'n volwaardige saak, om uit te vind dat die monster wat bestudeer word AgentTesla is, wat die funksionaliteit daarvan vasstel en 'n volledige lys van aanwysers van kompromie.
Die ontleding van die kwaadwillige voorwerp wat ons uitgevoer het, verg baie tyd en moeite, en hierdie werk moet deur 'n spesiale werknemer in die maatskappy uitgevoer word, maar nie alle maatskappye is gereed om 'n ontleder in diens te neem nie.
Een van die dienste wat deur die Group-IB Laboratory of Computer Forensics and Malicious Code Analysis verskaf word, is reaksie op kubervoorvalle. En sodat kliënte nie tyd mors om dokumente goed te keur en te bespreek te midde van 'n kuberaanval nie, het Group-IB van stapel gestuur Voorvalreaksiehouer, 'n voorintekening-voorvalreaksiediens wat ook 'n wanware-ontledingstap insluit. Meer inligting hieroor kan gevind word
As jy weer wil bestudeer hoe AgentTesla-monsters uitgepak word en sien hoe 'n CERT Group-IB-spesialis dit doen, kan jy die webinar-opname oor hierdie onderwerp aflaai
Bron: will.com