S tem člankom zaključujemo serijo publikacij, posvečenih analizi zlonamerne programske opreme. IN
Danes bo Ilya Pomerantsev, specialist za analizo zlonamerne programske opreme pri CERT Group-IB, govoril o prvi stopnji analize zlonamerne programske opreme - polavtomatskem razpakiranju vzorcev AgentTesla na primeru treh mini primerov iz prakse strokovnjakov CERT Group-IB.
Običajno je prva stopnja pri analizi zlonamerne programske opreme odstranitev zaščite v obliki pakerja, kriptorja, zaščitnika ali nalagalnika. V večini primerov je to težavo mogoče rešiti z zagonom zlonamerne programske opreme in izvedbo izpisa, vendar obstajajo situacije, ko ta metoda ni primerna. Na primer, če je zlonamerna programska oprema šifrirnik, če ščiti svoje pomnilniške regije pred izpisom, če koda vsebuje mehanizme za zaznavanje navideznega stroja ali če se zlonamerna programska oprema znova zažene takoj po zagonu. V takšnih primerih se uporablja tako imenovano »polavtomatsko« razpakiranje, to pomeni, da ima raziskovalec popoln nadzor nad procesom in lahko kadarkoli posreduje. Oglejmo si ta postopek na primeru treh vzorcev družine AgentTesla. To je razmeroma neškodljiva zlonamerna programska oprema, če ji onemogočite dostop do omrežja.
Vzorec št. 1
Izvorna datoteka je dokument MS Word, ki izkorišča ranljivost CVE-2017-11882.
Posledično se koristni tovor prenese in zažene.
Analiza procesnega drevesa in vedenjskih markerjev kaže vbrizgavanje v proces RegAsm.exe.
Obstajajo vedenjski markerji, značilni za AgentTesla.
Preneseni vzorec je izvedljiv NET.-datoteka zaščitena z zaščito .NET Reactor.
Odprimo ga v pripomočku dnSpy x86 in se pomaknite do vstopne točke.
Z odhodom na funkcijo DateTimeOffset, bomo našli inicializacijsko kodo za novo NET.-modul. Postavimo Ustavljanje na vrstico, ki nas zanima, in zaženemo datoteko.
V enem od vrnjenih medpomnilnikov lahko vidite podpis MZ (0x4D 0x5A). Prihranimo ga.
Odložena izvršljiva datoteka je dinamična knjižnica, ki je nalagalnik, tj. ekstrahira uporabni tovor iz razdelka virov in ga zažene.
Hkrati potrebni viri sami po sebi niso prisotni na odlagališču. So v matičnem vzorcu.
Uporabnost dnSpy ima dve izjemno uporabni funkcionalnosti, ki nam bosta pomagali precej hitro ustvariti "Frankensteina" iz dveh povezanih datotek.
- Prvi vam omogoča, da "prilepite" dinamično knjižnico v nadrejeni vzorec.
- Drugi je prepisati funkcijsko kodo na vstopni točki za klic želene metode vstavljene dinamične knjižnice.
Shranimo naš komplet "Frankenstein". Ustavljanje na vrstici, ki vrne medpomnilnik z dešifriranimi viri, in ustvari izpis po analogiji s prejšnjo stopnjo.
Drugi dump je zapisan v VB.NET izvršljiva datoteka, ki je zaščitena z nam poznanim zaščitnikom ConfuserEx.
Po odstranitvi zaščite uporabimo prej napisana pravila YARA in se prepričamo, da je nepakirana zlonamerna programska oprema res AgentTesla.
Vzorec št. 2
Izvorna datoteka je dokument MS Excel. Vgrajeni makro povzroči izvajanje zlonamerne kode.
Posledično se zažene skript PowerShell.
Skript dešifrira kodo C# in ji prenese nadzor. Sama koda je zagonski nalagalnik, kot je razvidno tudi iz poročila peskovnika.
Koristni tovor je izvršljiva datoteka NET.-mapa.
Odpiranje datoteke v dnSpy x86, lahko vidite, da je zakrit. Odstranjevanje zamegljenosti s pomočjo pripomočka de4dot in se vrnite k analizi.
Ko pregledujete kodo, lahko odkrijete naslednjo funkcijo:
Kodirane vrstice so osupljive Vstopna točka и sklicujejo. Postavili smo Ustavljanje v prvo vrstico, zaženite in shranite vrednost medpomnilnika bajt_0.
Odlagališče je spet vklopljena aplikacija NET. in zaščiten ConfuserEx.
Zamegljenost odstranimo z uporabo de4dot in naložite v dnSpy. Iz opisa datoteke razumemo, da se soočamo s CyaX-Sharp nalagalnik.
Ta nalagalnik ima obsežno funkcijo proti analizi.
Ta funkcionalnost vključuje izogibanje vgrajenim zaščitnim sistemom Windows, onemogočanje programa Windows Defender ter mehanizme za zaznavanje peskovnika in navideznega stroja. Tovor lahko naložite iz omrežja ali ga shranite v razdelek virov. Zagon se izvede z vbrizgavanjem v lasten proces, v dvojnik lastnega procesa ali v procese MSBuild.exe, vbc.exe и RegSvcs.exe odvisno od parametra, ki ga je izbral napadalec.
Vendar so za nas manj pomembni kot AntiDump-funkcija, ki dodaja ConfuserEx. Njegovo izvorno kodo lahko najdete na
Za onemogočanje zaščite bomo izkoristili priložnost dnSpy, ki omogoča urejanje IL-Koda.
Shranite in namestite Ustavljanje v vrstico klica funkcije dešifriranja koristnega tovora. Nahaja se v konstruktorju glavnega razreda.
Izstrelimo in odložimo tovor. Z uporabo predhodno napisanih pravil YARA se prepričamo, da je to AgentTesla.
Vzorec št. 3
Izvorna datoteka je izvršljiva VB izvorni PE32-mapa.
Entropijska analiza pokaže prisotnost velikega dela šifriranih podatkov.
Pri analizi prijavnice v Dekompilator VB morda boste opazili nenavadno slikovno ozadje.
Entropijski graf bmp-slika je enaka entropijskemu grafu izvirne datoteke, velikost pa je 85 % velikosti datoteke.
Splošni videz slike kaže na uporabo steganografije.
Bodimo pozorni na videz procesnega drevesa, pa tudi na prisotnost markerja za vbrizgavanje.
To pomeni, da poteka razpakiranje. Za nalagalnike Visual Basic (aka VBKrypt ali VBInjektor) tipična uporaba shellcode za inicializacijo tovora, kot tudi za izvedbo samega vbrizgavanja.
Analiza v Dekompilator VB pokazal prisotnost dogodka Obremenitev pri obrazcu FegatassocAirballoon2.
Pojdimo na IDA pro na navedeni naslov in preučite funkcijo. Koda je močno zamegljena. Fragment, ki nas zanima, predstavljamo spodaj.
Tukaj je naslovni prostor procesa skeniran za podpis. Ta pristop je zelo dvomljiv.
Prvič, začetni naslov skeniranja 0x400100. Ta vrednost je statična in se ne prilagodi, ko se osnova premakne. V idealnih razmerah v rastlinjaku bo kazalo na konec PE-glava izvršljive datoteke. Vendar baza podatkov ni statična, njena vrednost se lahko spremeni in iskanje pravega naslova zahtevanega podpisa lahko traja zelo dolgo, čeprav ne bo povzročilo prelivanja spremenljivke.
Drugič, pomen podpisa iWGK. Mislim, da je očitno, da so 4 bajci premajhni, da bi zagotovili edinstvenost. In če upoštevate prvo točko, je verjetnost napake precej velika.
Pravzaprav je zahtevani fragment pritrjen na konec prej najdenega bmp- slike z ofsetom 0xA1D0D.
Izpolnitev Shellcode izvedeno v dveh fazah. Prvi dešifrira glavnino. V tem primeru je ključ določen s surovo silo.
Odložite dešifrirano Shellcode in poglej črte.
Prvič, zdaj poznamo funkcijo za ustvarjanje podrejenega procesa: CreateProcessInternalW.
Drugič, spoznali smo mehanizem fiksacije v sistemu.
Vrnimo se k prvotnemu postopku. Postavimo Ustavljanje o CreateProcessInternalW in nadaljujte z izvedbo. Nato vidimo povezavo NtGetContextThread/NtSetContextThread, ki spremeni začetni naslov izvajanja v naslov ShellCode.
Z razhroščevalnikom se povežemo z ustvarjenim procesom in aktiviramo dogodek Prekini ob nalaganju/razkladanju knjižnice, nadaljujte s postopkom in počakajte na nalaganje NET.- knjižnice.
Nadaljnja uporaba ProcessHacker regije odlagališča, ki vsebujejo nepakirano NET.- aplikacija.
Ustavimo vse procese in izbrišemo kopijo zlonamerne programske opreme, ki se je vdelala v sistem.
Odložena datoteka je zaščitena z zaščito .NET Reactor, ki ga je mogoče enostavno odstraniti s pomočjo pripomočka de4dot.
Z uporabo prej napisanih pravil YARA se prepričamo, da je to AgentTesla.
Če povzamemo
Tako smo podrobno prikazali postopek polavtomatskega razpakiranja vzorca na primeru treh mini ohišij in analizirali tudi zlonamerno programsko opremo na podlagi popolnega ohišja, pri čemer smo ugotovili, da je proučevani vzorec AgentTesla, ter ugotovili njegovo funkcionalnost in popoln seznam indikatorjev kompromisa.
Analiza zlonamernega predmeta, ki smo jo opravili, zahteva veliko časa in truda, to delo pa bi moral opraviti poseben uslužbenec v podjetju, niso pa vsa podjetja pripravljena zaposliti analitika.
Ena od storitev, ki jih nudi Group-IB Laboratorij za računalniško forenziko in analizo zlonamernih kod, je odziv na kibernetske incidente. Da stranke ne bi izgubljale časa z odobritvijo dokumentov in razpravo o njih sredi kibernetskega napada, je skupina Group-IB predstavila Držalo za odziv na incident, storitev odzivanja na incidente pred naročnino, ki vključuje tudi korak analize zlonamerne programske opreme. Več informacij o tem lahko najdete
Če želite še enkrat preučiti, kako se razpakirajo vzorci AgentTesla, in videti, kako to počne specialist CERT Group-IB, si lahko prenesete posnetek spletnega seminarja na to temo
Vir: www.habr.com