Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3

Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3

Kun ĉi tiu artikolo ni kompletigas la serion de publikaĵoj dediĉitaj al la analizo de malica programaro. EN la unua parto Ni faris detalan analizon de infektita dosiero, kiun eŭropa firmao ricevis per poŝto kaj malkovris AgentTesla spionaron tie. En dua parto priskribis la rezultojn de paŝo post paŝo analizo de la ĉefa AgentTesla modulo.

Hodiaŭ Ilya Pomerantsev, specialisto pri malware-analizo ĉe CERT Group-IB, parolos pri la unua etapo de malware-analizo - duonaŭtomata malpakaĵo de AgentTesla specimenoj uzante la ekzemplon de tri mini-kazoj el la praktiko de specialistoj de CERT Group-IB.

Tipe, la unua etapo en malware analizo estas la forigo de protekto en la formo de pakisto, kriptor, protektanto aŭ ŝargilo. Plejofte, ĉi tiu problemo povas esti solvita rulante la malware kaj farante rubejon, sed estas situacioj kie ĉi tiu metodo ne taŭgas. Ekzemple, se la malbon-varo estas ĉifrilo, se ĝi protektas siajn memorregionojn kontraŭ esti forĵetita, se la kodo enhavas virtualajn maŝinajn detektajn mekanismojn, aŭ se la malbon-varo rekomencas tuj post ekfunkciigo. En tiaj kazoj oni uzas tiel nomatan "duonaŭtomatan" malpakadon, tio estas, la esploristo havas kompletan kontrolon de la procezo kaj povas interveni en ajna momento. Ni konsideru ĉi tiun proceduron uzante tri specimenojn de la familio AgentTesla kiel ekzemplon. Ĉi tio estas relative sendanĝera malware se vi malŝaltas ĝian retan aliron.

Specimeno n-ro 1

La fontdosiero estas MS Word-dokumento, kiu ekspluatas la vundeblecon CVE-2017-11882.

Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
Kiel rezulto, la utila ŝarĝo estas elŝutita kaj lanĉita.

Analizo de la procezarbo kaj kondutismaj signoj montras injekton en la procezon RegAsm.exe.

Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
Estas kondutismaj signoj karakterizaj por AgentTesla.

Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
La elŝutita specimeno estas la plenumebla NET-dosiero protektita de protektanto .NET Reaktoro.

Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
Ni malfermu ĝin en la utileco dnSpy x86 kaj transiru al la enirpunkto.

Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
Irante al la funkcio DateTimeOffset, ni trovos la komencan kodon por la nova NET-modulo. Ni metu rompopunkto sur la linio kiun ni interesiĝas kaj rulu la dosieron.

Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
En unu el la redonitaj bufroj vi povas vidi la subskribon MZ (0x4D 0x5A). Ni savu ĝin.

Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
Forĵetita rulebla dosiero estas dinamika biblioteko kiu estas ŝargilo, t.e. eltiras la utilan ŝarĝon el la rimeda sekcio kaj lanĉas ĝin.

Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
Samtempe, la necesaj rimedoj mem ne ĉeestas en la rubejo. Ili estas en la gepatra specimeno.

Utileco dnSpy havas du ege utilajn funkciojn, kiuj helpos nin sufiĉe rapide krei "Frankenstein" el du rilataj dosieroj.

  1. La unua permesas al vi "glui" dinamikan bibliotekon en la gepatran specimenon.

    Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3

  2. La dua estas reverki la funkciokodon ĉe la enirpunkto por voki la deziratan metodon de la enigita dinamika biblioteko.

    Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3

Ni konservas nian "Frankenstein", aron rompopunkto sur la linio resendante bufron kun deĉifritaj rimedoj, kaj produkti rubejon analoge kun la antaŭa etapo.

La dua rubejo estas enskribita VB.NET rulebla dosiero, kiu estas protektita de protektanto konata al ni ConfuserEx.

Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
Post forigo de la protektanto, ni uzas la YARA-regulojn skribitajn pli frue kaj certigas, ke la malpakita malware estas vere AgentTesla.

Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3

Specimeno n-ro 2

La fontdosiero estas MS Excel-dokumento. Enkonstruita makroo kaŭzas ekzekuton de malica kodo.

Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
Kiel rezulto, la PowerShell-skripto estas lanĉita.

Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
La skripto malĉifras la C#-kodon kaj transdonas kontrolon al ĝi. La kodo mem estas ekŝargilo, kiel ankaŭ videblas el la raporto pri sablokesto.

Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
La utila ŝarĝo estas efektivigebla NET-dosiero.

Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
Malfermante la dosieron en dnSpy x86, vi povas vidi ke ĝi estas malklarigita. Forigante malklarigadon uzante la ilon de4dot kaj reveni al analizo.

Ekzamenante la kodon, vi povas malkovri la jenan funkcion:

Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
La koditaj linioj estas okulfrapaj EnirPunkto и Alpreĝi. Ni metas rompopunkto al la unua linio, rulu kaj konservu la bufran valoron bajto_0.

La rubejo denove estas aplikaĵo NET kaj protektita ConfuserEx.

Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
Ni forigas malklarigadon uzante de4dot kaj alŝutu al dnSpy. El la dosiera priskribo ni komprenas, ke ni alfrontas CyaX-Sharp ŝargilo.

Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
Ĉi tiu ŝargilo havas ampleksan kontraŭ-analizan funkciojn.

Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
Ĉi tiu funkcio inkluzivas preterpasi enkonstruitajn Windows-protektajn sistemojn, malŝalti Windows Defender, same kiel sablokeston kaj virtualajn maŝinajn detektajn mekanismojn. Eblas ŝargi la utilan ŝarĝon de la reto aŭ stoki ĝin en la rimeda sekcio. Lanĉo estas farita per injekto en sian propran procezon, en duplikaton de sia propra procezo, aŭ en procezojn MSBuild.exe, vbc.exe и RegSvcs.exe depende de la parametro elektita de la atakanto.

Tamen por ni ili estas malpli signifaj ol AntiDump-funkcio kiu aldonas ConfuserEx. Ĝia fontkodo troveblas ĉe GitHub.

Por malŝalti protekton, ni uzos la ŝancon dnSpy, kiu permesas vin redakti IL-kodo.

Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
Konservu kaj instalu rompopunkto al la linio de vokado de la utila malĉifra funkcio. Ĝi situas en la konstrukciisto de la ĉefa klaso.

Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
Ni lanĉas kaj forĵetas la utilan ŝarĝon. Uzante la antaŭe skribitajn YARA-regulojn, ni certigas, ke ĉi tio estas AgentTesla.

Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3

Specimeno n-ro 3

La fontdosiero estas la plenumebla VB Denaska PE32-dosiero.

Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
Entropia analizo montras la ĉeeston de granda peco de ĉifritaj datumoj.

Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
Kiam vi analizas la aliĝilon en VB Malkompililo vi eble rimarkos strangan pikselan fonon.

Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
Entropia grafiko bmp-image estas identa al la entropia grafiko de la originala dosiero, kaj la grandeco estas 85% de la dosiergrandeco.

Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
La ĝenerala aspekto de la bildo indikas la uzon de steganografio.

Ni atentu la aspekton de la proceza arbo, kaj ankaŭ la ĉeeston de injekta markilo.

Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
Ĉi tio indikas, ke elpakado estas en progreso. Por Visual Basic ŝargiloj (alinome VBKrypt VBInjektilo) tipa uzo ŝelkodo pravalorigi la utilan ŝarĝon, same kiel fari la injekton mem.

Analizo en VB Malkompililo montris la ĉeeston de evento ŝarĝo ĉe la formo FegatassocAerbalono2.

Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
Ni iru al IDA pro al la specifita adreso kaj studi la funkcion. La kodo estas tre malklarigita. La fragmento, kiu interesas nin, estas prezentita sube.

Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
Ĉi tie la adresspaco de la procezo estas skanita por subskribo. Ĉi tiu aliro estas ege dubinda.

Unue, la skanado komenca adreso 0x400100. Ĉi tiu valoro estas senmova kaj ne estas alĝustigita kiam la bazo estas ŝovita. En idealaj forcejaj kondiĉoj ĝi indikos la finon PE-la kaplinio de la plenumebla dosiero. Tamen, la datumbazo ne estas senmova, ĝia valoro povas ŝanĝiĝi, kaj serĉi la realan adreson de la postulata subskribo, kvankam ĝi ne kaŭzos varian superfluon, povas preni tre longan tempon.

Due, la signifo de la subskribo iWGK. Mi pensas, ke estas evidente, ke 4 bajtoj estas tro malgrandaj por garantii unikecon. Kaj se vi konsideras la unuan punkton, la probablo de eraro estas sufiĉe alta.

Fakte, la bezonata fragmento estas alfiksita al la fino de la antaŭe trovita bmp-bildoj per ofseto 0xA1D0D.

Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
Agado Shellcode efektivigita en du etapoj. La unua deĉifras la ĉefan korpon. En ĉi tiu kazo, la ŝlosilo estas determinita de kruda forto.

Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
Forĵetu la deĉifritan Shellcode kaj rigardu la liniojn.

Unue, ni nun konas la funkcion por krei infanan procezon: KreiProcezonInternanW.

Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
Due, ni ekkonsciis pri la mekanismo de fiksado en la sistemo.

Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
Ni reiru al la originala procezo. Ni metu rompopunkto sur KreiProcezonInternanW kaj daŭrigu la ekzekuton. Poste ni vidas la rilaton NtGetContextThread/NtSetContextThread, kiu ŝanĝas la ekzekutkomencadreson al la adreso ShellCode.

Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
Ni konektas al la kreita procezo per erarserĉilo kaj aktivigas la eventon Malakceptu sur bibliotekou ŝarĝo/malŝarĝo, rekomencu la procezon kaj atendu la ŝarĝon NET-bibliotekoj.

Plu uzado ProcessHacker dump regionoj enhavantaj malpakitaj NET-apliko.

Ni ĉesigas ĉiujn procezojn kaj forigas la kopion de la malware enigita en la sistemo.

Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
La forĵetita dosiero estas protektita de protektanto .NET Reaktoro, kiu povas esti facile forigita per ilo de4dot.

Partopreno malsukcesis: ni elmontru AgentTesla al pura akvo. Parto 3
Uzante la YARA-regulojn skribitajn pli frue, ni certigas, ke ĉi tio estas AgentTesla.

Ni resumu

Do, ni detale pruvis la procezon de duonaŭtomata specimena malpakado uzante tri mini-kazojn kiel ekzemplon, kaj ankaŭ analizis malware surbaze de plenrajta kazo, eksciante, ke la specimeno studata estas AgentTesla, establante ĝian funkciecon kaj kompleta listo de indikiloj de kompromiso.

La analizo de la malica objekto, kiun ni faris, postulas multan tempon kaj penadon, kaj ĉi tiu laboro devas esti farita de speciala dungito en la kompanio, sed ne ĉiuj kompanioj pretas dungi analiziston.

Unu el la servoj provizitaj de la Grupo-IB-Laboratorio de Komputila Krimscienco kaj Malica Koda Analizo estas respondo al ciber-okazaĵoj. Kaj por ke klientoj ne perdu tempon aprobante dokumentojn kaj diskuti ilin meze de ciberatako, Group-IB lanĉis Okazaĵo-Respondo Retenilo, antaŭ-abbona okazaĵrespondservo kiu ankaŭ inkludas malware analizan paŝon. Pliaj informoj pri tio troveblas tie.

Se vi volas denove studi kiel AgentTesla specimenoj estas malpakitaj kaj vidi kiel CERT Group-IB-specialisto faras tion, vi povas elŝuti la webinar registradon pri ĉi tiu temo tie.

fonto: www.habr.com

Aldoni komenton