Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3

Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3

Kanthi artikel iki, kita ngrampungake seri publikasi sing dikhususake kanggo analisis piranti lunak angkoro. ING sisih pisanan Kita nganakake analisis rinci babagan file sing kena infeksi sing ditampa dening perusahaan Eropa liwat surat lan nemokake spyware AgentTesla ing kana. Ing bagean kapindho diterangake asil analisis langkah-langkah dening-modul utama AgentTesla.

Dina iki, Ilya Pomerantsev, spesialis analisis malware ing CERT Group-IB, bakal ngomong babagan tahap pertama analisis malware - unpacking semi-otomatis conto AgentTesla nggunakake conto telung kasus mini saka praktik spesialis CERT Group-IB.

Biasane, tahap pisanan ing analisis malware yaiku mbusak proteksi ing wangun packer, cryptor, protector utawa loader. Ing sawetara kasus, masalah iki bisa ditanggulangi kanthi mbukak malware lan nindakake dump, nanging ana kahanan sing cara iki ora cocok. Contone, yen malware minangka enkripsi, yen nglindhungi wilayah memori supaya ora dibuwang, yen kode kasebut ngemot mekanisme deteksi mesin virtual, utawa yen malware kasebut langsung urip maneh sawise diwiwiti. Ing kasus kasebut, unpacking "semi-otomatis" digunakake, yaiku, peneliti nduweni kontrol lengkap babagan proses kasebut lan bisa ngintervensi kapan wae. Ayo nimbang prosedur iki nggunakake telung conto kulawarga AgentTesla minangka conto. Iki minangka malware sing relatif ora mbebayani yen sampeyan mateni akses jaringan.

Sampel No. 1

File sumber minangka dokumen MS Word sing ngeksploitasi kerentanan CVE-2017-11882.

Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Akibaté, muatan diundhuh lan diluncurake.

Analisis wit proses lan tandha prilaku nuduhake injeksi menyang proses kasebut RegAsm.exe.

Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Ana ciri khas saka AgentTesla.

Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Sampel sing diunduh yaiku sing bisa dieksekusi NET-file dilindhungi dening protektor .NET Reaktor.

Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Ayo mbukak ing sarana dnSpy x86 lan pindhah menyang titik entri.

Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Kanthi pindhah menyang fungsi DateTimeOffset, kita bakal nemokake kode initialization kanggo anyar NET-modul. Ayo sijine titik titik ing baris kita kasengsem ing lan mbukak file.

Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Ing salah sawijining buffer bali sampeyan bisa ndeleng tandha MZ (0x4D 0x5A). Ayo disimpen.

Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
File eksekusi sing dibuwang minangka perpustakaan dinamis sing loader, i.e. ngekstrak payload saka bagean sumber daya lan diluncurake.

Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Ing wektu sing padha, sumber daya sing dibutuhake dhewe ora ana ing mbucal. Padha ana ing sampel induk.

Utilitas dnSpy wis loro fungsi arang banget migunani sing bakal bantuan kita cukup cepet nggawe "Frankenstein" saka loro file related.

  1. Pisanan ngidini sampeyan "nempel" perpustakaan dinamis menyang sampel induk.

    Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3

  2. Kapindho kanggo nulis maneh kode fungsi ing titik entri kanggo nelpon cara sing dipengini saka perpustakaan dinamis dipasang.

    Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3

Kita nyimpen "Frankenstein", nyetel titik titik ing baris bali buffer karo sumber daya decrypted, lan gawé dump dening analogi karo tataran sadurungé.

Dump kapindho ditulis ing VB.NET file eksekusi sing dilindhungi dening pelindung sing kita kenal ConfuserEx.

Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Sawise mbusak pelindung kasebut, kita nggunakake aturan YARA sing ditulis sadurunge lan priksa manawa malware sing ora dibubarake pancen AgentTesla.

Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3

Sampel No. 2

File sumber minangka dokumen MS Excel. Makro sing dibangun nyebabake eksekusi kode ala.

Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Akibaté, skrip PowerShell diluncurake.

Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Skrip decrypts kode C # lan transfer kontrol menyang. Kode kasebut minangka bootloader, uga bisa dideleng saka laporan kothak wedhi.

Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Payload minangka eksekusi NET-file.

Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Mbukak file ing dnSpy x86, sampeyan bisa ndeleng sing iku obfuscated. Mbusak obfuscation nggunakake sarana de4dot lan bali menyang analisis.

Nalika mriksa kode, sampeyan bisa nemokake fungsi ing ngisor iki:

Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Garis sing dienkode katon apik banget EntryPoint и Ngundang. We sijine titik titik kanggo baris pisanan, mbukak lan nyimpen Nilai buffer byte_0.

Dump maneh aplikasi ing NET lan dilindhungi ConfuserEx.

Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Kita mbusak obfuscation nggunakake de4dot lan upload menyang dnSpy. Saka gambaran file kita ngerti sing kita ngadhepi karo CyaX-Sharp loader.

Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Loader iki nduweni fungsi anti-analisis ekstensif.

Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Fungsi iki kalebu ngliwati sistem proteksi Windows sing dibangun, mateni Windows Defender, uga mekanisme deteksi kothak wedhi lan mesin virtual. Sampeyan bisa mbukak payload saka jaringan utawa nyimpen ing bagean sumber daya. Peluncuran ditindakake liwat injeksi menyang proses dhewe, dadi duplikat saka proses dhewe, utawa menyang proses MSBuild.exe, vbc.exe и RegSvcs.exe gumantung saka parameter sing dipilih dening panyerang.

Nanging, kanggo kita padha kurang pinunjul saka Anti Dump-fungsi sing nambah ConfuserEx. Kode sumber bisa ditemokake ing GitHub.

Kanggo mateni proteksi, kita bakal nggunakake kesempatan kasebut dnSpy, sing ngidini sampeyan ngowahi IL-kode.

Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Simpen lan nginstal titik titik menyang baris nelpon fungsi dekripsi payload. Dumunung ing konstruktor kelas utama.

Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Kita miwiti lan mbuwang payload. Nggunakake aturan YARA sing wis ditulis sadurunge, kita priksa manawa iki AgentTesla.

Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3

Sampel No. 3

File sumber minangka eksekusi VB Native PE32-file.

Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Analisis entropi nuduhake anané potongan gedhe saka data sing dienkripsi.

Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Nalika nganalisa formulir aplikasi ing VB Decompiler sampeyan bisa uga sok dong mirsani latar mburi pixelated aneh.

Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Grafik entropi bmp-gambar identik karo grafik entropi file asli, lan ukurane 85% saka ukuran file.

Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Tampilan umum gambar kasebut nuduhake panggunaan steganografi.

Ayo menehi perhatian marang tampilan wit proses, uga ana tandha injeksi.

Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Iki nuduhake yen unpacking lagi ditindakake. Kanggo loader Visual Basic (aka VBKrypt utawa VBInjector) nggunakake khas shellcode kanggo initialize payload, uga kanggo nindakake injeksi dhewe.

Analisis ing VB Decompiler nuduhake anane acara load ing wangun Balon Udara Fegatassoc2.

Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Ayo menyang IDA pro menyang alamat sing ditemtokake lan sinau fungsi kasebut. Kode iki akeh banget obfuscated. Fragmen sing narik kawigaten kita ditampilake ing ngisor iki.

Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Ing kene, ruang alamat proses dipindai kanggo teken. Pendekatan iki arang banget diragukan.

Pisanan, alamat wiwitan mindhai 0x400100. Nilai iki statis lan ora diatur nalika basa dipindhah. Ing kahanan omah kaca sing becik bakal nuduhake pungkasan PE-header file sing bisa dieksekusi. Nanging, basis data ora statis, regane bisa diganti, lan nggoleki alamat nyata saka teken sing dibutuhake, sanajan ora bakal nyebabake kebanjiran variabel, bisa njupuk wektu sing suwe.

Kaping kalih, tegesipun tandha tangan iWGK. Aku iku ketok sing 4 bita cilik banget kanggo njamin uniqueness. Lan yen sampeyan njupuk menyang akun titik pisanan, kemungkinan nggawe kesalahan cukup dhuwur.

Nyatane, pecahan sing dibutuhake dipasang ing mburi sing ditemokake sadurunge bmp-gambar kanthi offset 0xA1D0D.

Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Kinerja Shellcode ditindakake ing rong tahap. Pisanan deciphers awak utama. Ing kasus iki, tombol ditemtokake dening brute force.

Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Mbuwang sing didekripsi Shellcode lan katon ing garis.

Pisanan, saiki kita ngerti fungsi kanggo nggawe proses anak: NggaweProsesInternalW.

Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Kapindho, kita ngerti mekanisme fiksasi ing sistem kasebut.

Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Ayo bali menyang proses asli. Ayo sijine titik titik ing NggaweProsesInternalW lan nerusake eksekusi. Sabanjure kita ndeleng sambungan NtGetContextThread/NtSetContextThread, sing ngganti alamat wiwitan eksekusi menyang alamat ShellCode.

Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Kita nyambung menyang proses digawe karo debugger lan ngaktifake acara Nundha perpustakaanu mbukak / mbongkar, nerusake proses lan ngenteni loading NET- perpustakaan.

Luwih nggunakake ProsesHacker mbucal wilayah ngemot unpacked NET-aplikasi.

Kita mungkasi kabeh proses lan mbusak salinan malware sing wis dipasang ing sistem kasebut.

Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
File sing dibuwang dilindhungi dening pelindung .NET Reaktor, sing bisa gampang dibusak nggunakake sarana de4dot.

Gagal milih: ayo mbabarake AgentTesla kanggo banyu resik. Bagean 3
Nggunakake aturan YARA sing ditulis sadurunge, kita priksa manawa iki AgentTesla.

Ayo sumurake

Dadi, kita nduduhake kanthi rinci proses pambongkaran sampel semi-otomatis nggunakake telung mini-kasus minangka conto, lan uga nganalisa malware adhedhasar kasus lengkap, nemokake manawa sampel sing diteliti yaiku AgentTesla, nggawe fungsi lan daftar lengkap indikator kompromi.

Analisis obyek angkoro sing ditindakake mbutuhake akeh wektu lan gaweyan, lan karya iki kudu ditindakake dening karyawan khusus ing perusahaan kasebut, nanging ora kabeh perusahaan siap nggunakake analis.

Salah sawijining layanan sing diwenehake dening Laboratorium Forensik Komputer Group-IB lan Analisis Kode Malicious yaiku nanggepi kedadeyan cyber. Lan supaya para pelanggan ora mbuwang wektu nyetujoni dokumen lan ngrembug babagan serangan cyber, Group-IB ngluncurake Kedadeyan Respon Retainer, layanan respon insiden pra-langganan sing uga kalebu langkah analisis malware. Informasi liyane babagan iki bisa ditemokake kene.

Yen sampeyan pengin sinau maneh carane conto AgentTesla dibongkar lan ndeleng kepiye spesialis CERT Group-IB, sampeyan bisa ndownload rekaman webinar babagan topik iki. kene.

Source: www.habr.com

Add a comment