Kanthi artikel iki, kita ngrampungake seri publikasi sing dikhususake kanggo analisis piranti lunak angkoro. ING
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.
Akibaté, muatan diundhuh lan diluncurake.
Analisis wit proses lan tandha prilaku nuduhake injeksi menyang proses kasebut RegAsm.exe.
Ana ciri khas saka AgentTesla.
Sampel sing diunduh yaiku sing bisa dieksekusi NET-file dilindhungi dening protektor .NET Reaktor.
Ayo mbukak ing sarana dnSpy x86 lan pindhah menyang titik entri.
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.
Ing salah sawijining buffer bali sampeyan bisa ndeleng tandha MZ (0x4D 0x5A). Ayo disimpen.
File eksekusi sing dibuwang minangka perpustakaan dinamis sing loader, i.e. ngekstrak payload saka bagean sumber daya lan diluncurake.
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.
- Pisanan ngidini sampeyan "nempel" perpustakaan dinamis menyang sampel induk.
- Kapindho kanggo nulis maneh kode fungsi ing titik entri kanggo nelpon cara sing dipengini saka perpustakaan dinamis dipasang.
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.
Sawise mbusak pelindung kasebut, kita nggunakake aturan YARA sing ditulis sadurunge lan priksa manawa malware sing ora dibubarake pancen AgentTesla.
Sampel No. 2
File sumber minangka dokumen MS Excel. Makro sing dibangun nyebabake eksekusi kode ala.
Akibaté, skrip PowerShell diluncurake.
Skrip decrypts kode C # lan transfer kontrol menyang. Kode kasebut minangka bootloader, uga bisa dideleng saka laporan kothak wedhi.
Payload minangka eksekusi NET-file.
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:
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.
Kita mbusak obfuscation nggunakake de4dot lan upload menyang dnSpy. Saka gambaran file kita ngerti sing kita ngadhepi karo CyaX-Sharp loader.
Loader iki nduweni fungsi anti-analisis ekstensif.
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
Kanggo mateni proteksi, kita bakal nggunakake kesempatan kasebut dnSpy, sing ngidini sampeyan ngowahi IL-kode.
Simpen lan nginstal titik titik menyang baris nelpon fungsi dekripsi payload. Dumunung ing konstruktor kelas utama.
Kita miwiti lan mbuwang payload. Nggunakake aturan YARA sing wis ditulis sadurunge, kita priksa manawa iki AgentTesla.
Sampel No. 3
File sumber minangka eksekusi VB Native PE32-file.
Analisis entropi nuduhake anané potongan gedhe saka data sing dienkripsi.
Nalika nganalisa formulir aplikasi ing VB Decompiler sampeyan bisa uga sok dong mirsani latar mburi pixelated aneh.
Grafik entropi bmp-gambar identik karo grafik entropi file asli, lan ukurane 85% saka ukuran file.
Tampilan umum gambar kasebut nuduhake panggunaan steganografi.
Ayo menehi perhatian marang tampilan wit proses, uga ana tandha injeksi.
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.
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.
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.
Kinerja Shellcode ditindakake ing rong tahap. Pisanan deciphers awak utama. Ing kasus iki, tombol ditemtokake dening brute force.
Mbuwang sing didekripsi Shellcode lan katon ing garis.
Pisanan, saiki kita ngerti fungsi kanggo nggawe proses anak: NggaweProsesInternalW.
Kapindho, kita ngerti mekanisme fiksasi ing sistem kasebut.
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.
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.
File sing dibuwang dilindhungi dening pelindung .NET Reaktor, sing bisa gampang dibusak nggunakake sarana de4dot.
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
Yen sampeyan pengin sinau maneh carane conto AgentTesla dibongkar lan ndeleng kepiye spesialis CERT Group-IB, sampeyan bisa ndownload rekaman webinar babagan topik iki.
Source: www.habr.com