Ovim člankom završavamo seriju publikacija posvećenih analizi zlonamjernog softvera. U
Danas će Ilya Pomerantsev, stručnjak za analizu zlonamjernog softvera u CERT Group-IB, govoriti o prvoj fazi analize zlonamjernog softvera - poluautomatskom raspakiranju uzoraka AgentTesla na primjeru tri mini slučaja iz prakse stručnjaka CERT Group-IB.
Obično je prva faza analize zlonamjernog softvera uklanjanje zaštite u obliku pakera, kriptora, zaštitnika ili učitavača. U većini slučajeva ovaj se problem može riješiti pokretanjem zlonamjernog softvera i izvođenjem dumpa, ali postoje situacije u kojima ova metoda nije prikladna. Na primjer, ako je zlonamjerni softver kriptor, ako štiti svoje memorijske regije od izbacivanja, ako kod sadrži mehanizme za otkrivanje virtualnog stroja ili ako se zlonamjerni softver ponovno pokreće odmah nakon pokretanja. U takvim slučajevima koristi se tzv. “poluautomatsko” raspakiranje, odnosno istraživač ima potpunu kontrolu nad procesom i može intervenirati u bilo kojem trenutku. Razmotrimo ovaj postupak koristeći tri uzorka obitelji AgentTesla kao primjer. Ovo je relativno bezopasan malware ako mu onemogućite pristup mreži.
Uzorak br. 1
Izvorna datoteka je MS Word dokument koji iskorištava ranjivost CVE-2017-11882.
Kao rezultat toga, korisni se teret preuzima i pokreće.
Analiza stabla procesa i markera ponašanja pokazuje ubrizgavanje u proces RegAsm.exe.
Postoje markeri ponašanja karakteristični za AgentTeslu.
Preuzeti uzorak je izvršni NET.-datoteka zaštićena protektorom .NET reaktor.
Otvorimo ga u pomoćnom programu dnSpy x86 i prijeđite na ulaznu točku.
Odlaskom na funkciju DateTimeOffset, pronaći ćemo inicijalizacijski kod za novi NET.-modul. Stavimo prijelomna točka na liniji koja nas zanima i pokrenemo datoteku.
U jednom od vraćenih međuspremnika možete vidjeti MZ potpis (0x4D 0x5A). Sačuvajmo to.
Izbačena izvršna datoteka je dinamička biblioteka koja je učitavač, tj. izvlači korisni teret iz odjeljka resursa i pokreće ga.
U isto vrijeme, sami potrebni resursi nisu prisutni na odlagalištu. Oni su u matičnom uzorku.
Korisnost dnSpy ima dvije iznimno korisne funkcije koje će nam pomoći da vrlo brzo stvorimo "Frankensteina" iz dvije povezane datoteke.
- Prvi vam omogućuje da "zalijepite" dinamičku biblioteku u nadređeni uzorak.
- Drugi je ponovno pisanje koda funkcije na ulaznoj točki za pozivanje željene metode umetnute dinamičke biblioteke.
Spremamo naš “Frankenstein”, set prijelomna točka na liniji koja vraća međuspremnik s dešifriranim resursima i proizvodi dump po analogiji s prethodnom fazom.
Drugi dump je upisan VB.NET izvršna datoteka koja je zaštićena nama poznatim zaštitnikom ConfuserEx.
Nakon uklanjanja zaštitnika, koristimo YARA pravila ranije napisana i uvjeravamo se da je otpakirani zlonamjerni softver stvarno AgentTesla.
Uzorak br. 2
Izvorna datoteka je MS Excel dokument. Ugrađena makronaredba uzrokuje izvođenje zlonamjernog koda.
Kao rezultat toga, pokreće se skripta PowerShell.
Skripta dekriptira C# kod i prenosi kontrolu na njega. Sam kod je bootloader, kao što se također može vidjeti iz sandbox izvješća.
Korisni teret je izvršna datoteka NET.-datoteka.
Otvaranje datoteke u dnSpy x86, možete vidjeti da je prikriveno. Uklanjanje zamagljivanja pomoću uslužnog programa de4dot i vratiti se analizi.
Prilikom pregledavanja koda možete otkriti sljedeću funkciju:
Kodirani redovi su upečatljivi Ulazna točka и prizvati. Stavljamo prijelomna točka u prvi red, pokrenite i spremite vrijednost međuspremnika bajt_0.
Dump je opet aplikacija na NET. i zaštićena ConfuserEx.
Zamagljivanje uklanjamo pomoću de4dot i učitati na dnSpy. Iz opisa datoteke razumijemo s čime se suočavamo CyaX-Sharp učitavač.
Ovaj učitavač ima široku funkcionalnost protiv analize.
Ova funkcionalnost uključuje zaobilaženje ugrađenih Windows zaštitnih sustava, onemogućavanje Windows Defendera, kao i mehanizama otkrivanja sandboxa i virtualnog stroja. Moguće je učitati korisni teret s mreže ili ga pohraniti u odjeljak resursa. Lansiranje se izvodi ubrizgavanjem u vlastiti proces, u duplikat vlastitog procesa ili u procese MSBuild.exe, vbc.exe и RegSvcs.exe ovisno o parametru koji napadač odabere.
Međutim, za nas su manje značajni od AntiDump-funkcija koja dodaje ConfuserEx. Njegov izvorni kod može se pronaći na
Za onemogućavanje zaštite, iskoristit ćemo priliku dnSpy, koji vam omogućuje uređivanje IL-kodirati.
Spremite i instalirajte prijelomna točka na liniju pozivanja funkcije dešifriranja korisnog tereta. Nalazi se u konstruktoru glavne klase.
Lansiramo i izbacujemo teret. Koristeći prethodno napisana YARA pravila, uvjeravamo se da je ovo AgentTesla.
Uzorak br. 3
Izvorna datoteka je izvršna VB Izvorni PE32-datoteka.
Entropijska analiza pokazuje prisutnost velikog dijela šifriranih podataka.
Prilikom analize prijavnice u VB Decompiler možete primijetiti čudnu pikseliziranu pozadinu.
Entropijski graf bMP-slika je identična entropijskom grafu izvorne datoteke, a veličina je 85% veličine datoteke.
Opći izgled slike ukazuje na korištenje steganografije.
Obratimo pozornost na izgled stabla procesa, kao i na prisutnost markera za ubrizgavanje.
To znači da je raspakiranje u tijeku. Za učitavače Visual Basica (aka VBKrypt ili VBInjektor) tipična uporaba shellcode inicijalizirati korisni teret, kao i izvršiti samo ubrizgavanje.
Analiza u VB Decompiler pokazao prisutnost događaja Opterećenje na obrascu FegatassocAirballoon2.
Idemo IDA pro na navedenu adresu i proučiti funkciju. Kod je jako zamagljen. Fragment koji nas zanima donosimo u nastavku.
Ovdje se adresni prostor procesa skenira u potrazi za potpisom. Ovaj pristup je krajnje dvojben.
Prvo, početna adresa skeniranja 0x400100. Ova vrijednost je statična i ne prilagođava se kada se baza pomakne. U idealnim stakleničkim uvjetima to će označiti kraj PE-zaglavlje izvršne datoteke. No, baza nije statična, njezina se vrijednost može mijenjati, a traženje stvarne adrese traženog potpisa, iako neće uzrokovati preljev varijable, može potrajati jako dugo.
Drugo, značenje potpisa iWGK. Mislim da je očito da su 4 bajta premala da bi jamčila jedinstvenost. A ako uzmete u obzir prvu točku, vjerojatnost pogreške je prilično visoka.
Zapravo, traženi fragment je pričvršćen na kraj prethodno pronađenog bMP-slike ofsetom 0xA1D0D.
izvršenje Shellcode provodi u dvije etape. Prvi dešifrira glavni dio. U ovom slučaju, ključ se određuje grubom silom.
Izbacite dešifrirani Shellcode i pogledajte linije.
Prvo, sada znamo funkciju za stvaranje procesa djeteta: StvoriProcesInternalW.
Drugo, postali smo svjesni mehanizma fiksacije u sustavu.
Vratimo se na izvorni proces. Stavimo prijelomna točka na StvoriProcesInternalW i nastaviti izvršenje. Zatim vidimo vezu NtGetContextThread/NtSetContextThread, koji mijenja početnu adresu izvršenja u adresu ShellCode.
Povezujemo se s kreiranim procesom s debuggerom i aktiviramo događaj Obustavi pri učitavanju/istovaru knjižnice, nastavite s procesom i pričekajte učitavanje NET.- knjižnice.
Daljnje korištenje ProcessHacker dump regije koje sadrže nepakirano NET.- primjena.
Zaustavljamo sve procese i brišemo kopiju zlonamjernog softvera koja se ugradila u sustav.
Izbačena datoteka je zaštićena zaštitnikom .NET reaktor, koji se lako može ukloniti pomoću uslužnog programa de4dot.
Koristeći YARA pravila napisana ranije, uvjeravamo se da je ovo AgentTesla.
Da sumiramo
Dakle, detaljno smo demonstrirali proces poluautomatskog raspakiranja uzorka koristeći tri mini-kućišta kao primjer, a također smo analizirali zlonamjerni softver na temelju potpunog slučaja, otkrivši da je uzorak koji se proučava AgentTesla, utvrđujući njegovu funkcionalnost i potpuni popis pokazatelja kompromisa.
Analiza malicioznog objekta koju smo proveli zahtijeva puno vremena i truda, a taj bi posao trebao obavljati poseban zaposlenik u tvrtki, no nisu sve tvrtke spremne zaposliti analitičara.
Jedna od usluga koju pruža Group-IB Laboratorij za računalnu forenziku i analizu zlonamjernog koda je odgovor na cyber incidente. Kako klijenti ne bi gubili vrijeme odobravajući dokumente i raspravljajući o njima usred kibernetičkog napada, Group-IB je pokrenuo Incident Response Retainer, usluga odgovora na incidente prije pretplate koja također uključuje korak analize zlonamjernog softvera. Više informacija o ovome možete pronaći
Ako želite još jednom proučiti kako se otpakiraju uzorci AgentTesla i vidjeti kako to radi specijalist CERT Group-IB, možete preuzeti snimku webinara na ovu temu
Izvor: www.habr.com