Jumlah keluar mengundi gagal: mari dedahkan AgentTesla kepada air bersih. Bahagian 1

Jumlah keluar mengundi gagal: mari dedahkan AgentTesla kepada air bersih. Bahagian 1
Baru-baru ini, pengeluar peralatan pemasangan elektrik Eropah menghubungi Group-IB - pekerjanya menerima surat yang mencurigakan dengan lampiran berniat jahat dalam mel. Ilya Pomerantsev, pakar analisis perisian hasad di CERT Group-IB, menjalankan analisis terperinci fail ini, menemui perisian pengintip AgentTesla di sana dan memberitahu perkara yang boleh dijangkakan daripada perisian hasad tersebut dan bagaimana ia berbahaya.

Dengan siaran ini kami membuka satu siri artikel tentang cara menganalisis fail yang berpotensi berbahaya itu, dan kami sedang menunggu yang paling ingin tahu pada 5 Disember untuk webinar interaktif percuma mengenai topik tersebut. "Analisis Perisian Hasad: Analisis Kes Sebenar". Semua butiran adalah di bawah potongan.

Mekanisme pengedaran

Kami tahu bahawa perisian hasad mencapai mesin mangsa melalui e-mel pancingan data. Penerima surat itu mungkin diberi BCC.

Jumlah keluar mengundi gagal: mari dedahkan AgentTesla kepada air bersih. Bahagian 1
Analisis tajuk menunjukkan bahawa pengirim surat itu ditipu. Malah, surat itu ditinggalkan bersama vps56[.]oneworldhosting[.]com.

Jumlah keluar mengundi gagal: mari dedahkan AgentTesla kepada air bersih. Bahagian 1
Lampiran e-mel mengandungi arkib WinRar qoute_jpeg56a.r15 dengan fail boleh laku yang berniat jahat QOUTE_JPEG56A.exe dalam.

Jumlah keluar mengundi gagal: mari dedahkan AgentTesla kepada air bersih. Bahagian 1

Ekosistem perisian hasad

Sekarang mari kita lihat rupa ekosistem perisian hasad yang sedang dikaji. Rajah di bawah menunjukkan strukturnya dan arah interaksi komponen.

Jumlah keluar mengundi gagal: mari dedahkan AgentTesla kepada air bersih. Bahagian 1
Sekarang mari kita lihat setiap komponen perisian hasad dengan lebih terperinci.

Pemuat

Fail asal QOUTE_JPEG56A.exe adalah disusun AutoIt v3 skrip.

Jumlah keluar mengundi gagal: mari dedahkan AgentTesla kepada air bersih. Bahagian 1
Untuk mengaburkan skrip asal, obfuscator dengan yang serupa PElock AutoIT-Obfuscator ciri-ciri.
Deobfuscation dijalankan dalam tiga peringkat:

  1. Mengeluarkan kekeliruan Untuk-Jika

    Langkah pertama ialah memulihkan aliran kawalan skrip. Meratakan Aliran Kawalan ialah salah satu cara paling biasa untuk melindungi kod binari aplikasi daripada analisis. Transformasi yang mengelirukan secara mendadak meningkatkan kerumitan pengekstrakan dan pengecaman algoritma dan struktur data.

    Jumlah keluar mengundi gagal: mari dedahkan AgentTesla kepada air bersih. Bahagian 1

  2. Pemulihan baris

    Dua fungsi digunakan untuk menyulitkan rentetan:

    • gdorizabegkvfca - Melakukan penyahkodan seperti Base64

      Jumlah keluar mengundi gagal: mari dedahkan AgentTesla kepada air bersih. Bahagian 1

    • xgacyukcyzxz - bait-bait mudah XOR rentetan pertama dengan panjang kedua

      Jumlah keluar mengundi gagal: mari dedahkan AgentTesla kepada air bersih. Bahagian 1

    Jumlah keluar mengundi gagal: mari dedahkan AgentTesla kepada air bersih. Bahagian 1

  3. Mengeluarkan kekeliruan BinaryToString ΠΈ Melaksanakan

    Jumlah keluar mengundi gagal: mari dedahkan AgentTesla kepada air bersih. Bahagian 1

Beban utama disimpan dalam bentuk terbahagi dalam direktori Font bahagian sumber fail.

Jumlah keluar mengundi gagal: mari dedahkan AgentTesla kepada air bersih. Bahagian 1
Urutan pelekatan adalah seperti berikut: TIEQHCXWFG, IME, SPDGUHIMPV, KQJMWQQAQTKTFXTUOSW, AOCHKRWWSKWO, JSHMSJPS, NHHWXJBMTTSPXVN, BFUTIFWWXVE, HWJHO, AVZOUMVFRDWFLWU.

Fungsi WinAPI digunakan untuk menyahsulit data yang diekstrak CryptDecrypt, dan kunci sesi yang dijana berdasarkan nilai digunakan sebagai kunci fZgFiZlJDxvuWatFRgRXZqmNCIyQgMYc.

Fail boleh laku yang disulitkan dihantar ke input fungsi RunPE, yang menjalankan ProcessInject Π² RegAsm.exe menggunakan terbina dalam ShellCode (juga dikenali sebagai RunPE ShellCode). Pengarang adalah milik pengguna forum Sepanyol tidak dapat dikesan[.]net dengan nama panggilan Wardow.

Jumlah keluar mengundi gagal: mari dedahkan AgentTesla kepada air bersih. Bahagian 1
Jumlah keluar mengundi gagal: mari dedahkan AgentTesla kepada air bersih. Bahagian 1
Ia juga perlu diperhatikan bahawa dalam salah satu utas forum ini, obfuscator untuk AutoIt dengan sifat serupa yang dikenal pasti semasa analisis sampel.

Dirinya ShellCode cukup mudah dan menarik perhatian hanya dipinjam dari kumpulan penggodam AnunakCarbanak. Fungsi pencincangan panggilan API.

Jumlah keluar mengundi gagal: mari dedahkan AgentTesla kepada air bersih. Bahagian 1
Jumlah keluar mengundi gagal: mari dedahkan AgentTesla kepada air bersih. Bahagian 1

Kami juga mengetahui kes penggunaan Frenchy Shellcode versi berbeza.
Selain fungsi yang diterangkan, kami juga mengenal pasti fungsi tidak aktif:

  • Menyekat penamatan proses manual dalam pengurus tugas

    Jumlah keluar mengundi gagal: mari dedahkan AgentTesla kepada air bersih. Bahagian 1

  • Memulakan semula proses kanak-kanak apabila ia ditamatkan

    Jumlah keluar mengundi gagal: mari dedahkan AgentTesla kepada air bersih. Bahagian 1

  • Pintas UAC

    Jumlah keluar mengundi gagal: mari dedahkan AgentTesla kepada air bersih. Bahagian 1

  • Menyimpan muatan ke fail

    Jumlah keluar mengundi gagal: mari dedahkan AgentTesla kepada air bersih. Bahagian 1

  • Demonstrasi tingkap modal

    Jumlah keluar mengundi gagal: mari dedahkan AgentTesla kepada air bersih. Bahagian 1

  • Menunggu kedudukan kursor tetikus berubah

    Jumlah keluar mengundi gagal: mari dedahkan AgentTesla kepada air bersih. Bahagian 1

  • AntiVM dan AntiSandbox

    Jumlah keluar mengundi gagal: mari dedahkan AgentTesla kepada air bersih. Bahagian 1

  • Kemusnahan diri

    Jumlah keluar mengundi gagal: mari dedahkan AgentTesla kepada air bersih. Bahagian 1

  • Mengepam muatan dari rangkaian

    Jumlah keluar mengundi gagal: mari dedahkan AgentTesla kepada air bersih. Bahagian 1

Kami tahu bahawa fungsi sedemikian adalah tipikal untuk pelindung CypherIT, yang, nampaknya, adalah pemuat but yang dimaksudkan.

Jumlah keluar mengundi gagal: mari dedahkan AgentTesla kepada air bersih. Bahagian 1

Modul utama perisian

Seterusnya, kami akan menerangkan secara ringkas modul utama perisian hasad, dan mempertimbangkannya dengan lebih terperinci dalam artikel kedua. Dalam kes ini, ia adalah aplikasi pada . NET.

Jumlah keluar mengundi gagal: mari dedahkan AgentTesla kepada air bersih. Bahagian 1
Semasa analisis, kami mendapati bahawa obfuscator telah digunakan ConfuserEX.

Jumlah keluar mengundi gagal: mari dedahkan AgentTesla kepada air bersih. Bahagian 1

IELlibrary.dll

Perpustakaan disimpan sebagai sumber modul utama dan merupakan pemalam yang terkenal untuk EjenTesla, yang menyediakan fungsi untuk mengekstrak pelbagai maklumat daripada pelayar Internet Explorer dan Edge.

Ejen Tesla ialah perisian pengintipan modular yang diedarkan menggunakan model perisian hasad-sebagai-perkhidmatan di bawah samaran produk keylogger yang sah. Ejen Tesla mampu mengekstrak dan menghantar bukti kelayakan pengguna daripada penyemak imbas, klien e-mel dan klien FTP ke pelayan kepada penyerang, merakam data papan keratan dan menangkap skrin peranti. Pada masa analisis, tapak web rasmi pembangun tidak tersedia.

Titik masuk adalah fungsi GetSavedPasswords kelas InternetExplorer.

Jumlah keluar mengundi gagal: mari dedahkan AgentTesla kepada air bersih. Bahagian 1
Secara umum, pelaksanaan kod adalah linear dan tidak mengandungi sebarang perlindungan terhadap analisis. Hanya fungsi yang tidak direalisasikan patut diberi perhatian GetSavedCookies. Nampaknya, fungsi pemalam itu sepatutnya diperluaskan, tetapi ini tidak pernah dilakukan.

Jumlah keluar mengundi gagal: mari dedahkan AgentTesla kepada air bersih. Bahagian 1

Memasang pemuat but pada sistem

Mari kita kaji bagaimana pemuat but dipasang pada sistem. Spesimen yang dikaji tidak berlabuh, tetapi dalam kejadian yang sama ia berlaku mengikut skema berikut:

  1. Dalam folder C:UsersPublic skrip dibuat Visual Basic

    Contoh skrip:

    Jumlah keluar mengundi gagal: mari dedahkan AgentTesla kepada air bersih. Bahagian 1

  2. Kandungan fail pemuat dilapisi dengan aksara nol dan disimpan ke folder %Temp%
  3. Kunci autorun dicipta dalam registri untuk fail skrip HKCUSoftwareMicrosoftWindowsCurrentVersionRun

Jadi, berdasarkan keputusan bahagian pertama analisis, kami dapat menetapkan nama keluarga semua komponen perisian hasad yang sedang dikaji, menganalisis corak jangkitan, dan juga mendapatkan objek untuk menulis tandatangan. Kami akan meneruskan analisis kami terhadap objek ini dalam artikel seterusnya, di mana kami akan melihat modul utama dengan lebih terperinci EjenTesla. Jangan lepaskan!

Ngomong-ngomong, pada 5 Disember kami menjemput semua pembaca ke webinar interaktif percuma mengenai topik "Analisis perisian hasad: analisis kes sebenar", di mana pengarang artikel ini, pakar CERT-GIB, akan menunjukkan dalam talian peringkat pertama analisis perisian hasad - pembongkaran sampel separa automatik menggunakan contoh tiga kes mini sebenar daripada amalan, dan anda boleh mengambil bahagian dalam analisis. Webinar ini sesuai untuk pakar yang sudah berpengalaman dalam menganalisis fail berniat jahat. Pendaftaran adalah hanya dari e-mel korporat: daftar. Menunggu awak!

Yara

rule AgentTesla_clean{
meta:
    author = "Group-IB"
    file = "78566E3FC49C291CB117C3D955FA34B9A9F3EEFEFAE3DE3D0212432EB18D2EAD"
    scoring = 5
    family = "AgentTesla"
strings:
    $string_format_AT = {74 00 79 00 70 00 65 00 3D 00 7B 00 30 00 7D 00 0D 00 0A 00 68 00 77 00 69 00 64 00 3D 00 7B 00 31 00 7D 00 0D 00 0A 00 74 00 69 00 6D 00 65 00 3D 00 7B 00 32 00 7D 00 0D 00 0A 00 70 00 63 00 6E 00 61 00 6D 00 65 00 3D 00 7B 00 33 00 7D 00 0D 00 0A 00 6C 00 6F 00 67 00 64 00 61 00 74 00 61 00 3D 00 7B 00 34 00 7D 00 0D 00 0A 00 73 00 63 00 72 00 65 00 65 00 6E 00 3D 00 7B 00 35 00 7D 00 0D 00 0A 00 69 00 70 00 61 00 64 00 64 00 3D 00 7B 00 36 00 7D 00 0D 00 0A 00 77 00 65 00 62 00 63 00 61 00 6D 00 5F 00 6C 00 69 00 6E 00 6B 00 3D 00 7B 00 37 00 7D 00 0D 00 0A 00 73 00 63 00 72 00 65 00 65 00 6E 00 5F 00 6C 00 69 00 6E 00 6B 00 3D 00 7B 00 38 00 7D 00 0D 00 0A 00 5B 00 70 00 61 00 73 00 73 00 77 00 6F 00 72 00 64 00 73 00 5D 00}
    $web_panel_format_string = {63 00 6C 00 69 00 65 00 6E 00 74 00 5B 00 5D 00 3D 00 7B 00 30 00 7D 00 0D 00 0A 00 6C 00 69 00 6E 00 6B 00 5B 00 5D 00 3D 00 7B 00 31 00 7D 00 0D 00 0A 00 75 00 73 00 65 00 72 00 6E 00 61 00 6D 00 65 00 5B 00 5D 00 3D 00 7B 00 32 00 7D 00 0D 00 0A 00 70 00 61 00 73 00 73 00 77 00 6F 00 72 00 64 00 5B 00 5D 00 3D 00 7B 00 33 00 7D 00 00 15 55 00 52 00 4C 00 3A 00 20 00 20 00 20 00 20 00 20 00 20 00 00 15 55 00 73 00 65 00 72 00 6E 00 61 00 6D 00 65 00 3A 00 20 00 00 15 50 00 61 00 73 00 73 00 77 00 6F 00 72 00 64 00 3A 00}
condition:
     all of them
}

rule  AgentTesla_obfuscated {
meta:
    author = "Group-IB"
    file = "41DC0D5459F25E2FDCF8797948A7B315D3CB075398D808D1772CACCC726AF6E9"
    scoring = 5
    family = "AgentTesla"
strings:
    $first_names = {61 66 6B 00 61 66 6D 00 61 66 6F 00 61 66 76 00 61 66 79 00 61 66 78 00 61 66 77 00 61 67 6A 00 61 67 6B 00 61 67 6C 00 61 67 70 00 61 67 72 00 61 67 73 00 61 67 75 00}
    $second_names = "IELibrary.resources"
condition:
     all of them
}

rule AgentTesla_module_for_IE{
meta:
    author = "Group-IB"
    file = "D55800A825792F55999ABDAD199DFA54F3184417215A298910F2C12CD9CC31EE"
    scoring = 5
    family = "AgentTesla_module_for_IE"
strings:
    $s0 = "ByteArrayToStructure" 
    $s1 = "CryptAcquireContext" 
    $s2 = "CryptCreateHash" 
    $s3 = "CryptDestroyHash" 
    $s4 = "CryptGetHashParam" 
    $s5 = "CryptHashData"
    $s6 = "CryptReleaseContext" 
    $s7 = "DecryptIePassword" 
    $s8 = "DoesURLMatchWithHash" 
    $s9 = "GetSavedCookies" 
    $s10 = "GetSavedPasswords" 
    $s11 = "GetURLHashString"  
condition:
     all of them
}

rule RunPE_shellcode {
meta:
    author = "Group-IB"
    file = "37A1961361073BEA6C6EACE6A8601F646C5B6ECD9D625E049AD02075BA996918"
    scoring = 5
    family = "RunPE_shellcode"
strings:
    $malcode = {
      C7 [2-5] EE 38 83 0C // mov     dword ptr [ebp-0A0h], 0C8338EEh
      C7 [2-5] 57 64 E1 01 // mov     dword ptr [ebp-9Ch], 1E16457h
      C7 [2-5] 18 E4 CA 08 // mov     dword ptr [ebp-98h], 8CAE418h
      C7 [2-5] E3 CA D8 03 // mov     dword ptr [ebp-94h], 3D8CAE3h
      C7 [2-5] 99 B0 48 06 // mov     dword ptr [ebp-90h], 648B099h
      C7 [2-5] 93 BA 94 03 // mov     dword ptr [ebp-8Ch], 394BA93h
      C7 [2-5] E4 C7 B9 04 // mov     dword ptr [ebp-88h], 4B9C7E4h
      C7 [2-5] E4 87 B8 04 // mov     dword ptr [ebp-84h], 4B887E4h
      C7 [2-5] A9 2D D7 01 // mov     dword ptr [ebp-80h], 1D72DA9h
      C7 [2-5] 05 D1 3D 0B // mov     dword ptr [ebp-7Ch], 0B3DD105h
      C7 [2-5] 44 27 23 0F // mov     dword ptr [ebp-78h], 0F232744h
      C7 [2-5] E8 6F 18 0D // mov     dword ptr [ebp-74h], 0D186FE8h
      }
condition:
    $malcode 
}

rule AgentTesla_AutoIT_module{
meta:
    author = "Group-IB"
    file = "49F94293F2EBD8CEFF180EDDD58FA50B30DC0F08C05B5E3BD36FD52668D196AF"
    scoring = 5
    family = "AgentTesla"
strings:                                    
    $packedexeau = {55 ED F5 9F 92 03 04 44 7E 16 6D 1F 8C D7 38 E6 29 E4 C8 CF DA 2C C4 E1 F3 65 48 25 B8 93 9D 66 A4 AD 3C 39 50 00 B9 60 66 19 8D FC 20 0A A0 56 52 8B 9F 15 D7 62 30 0D 5C C3 24 FE F8 FC 39 08 DF 87 2A B2 1C E9 F7 06 A8 53 B2 69 C3 3C D4 5E D4 74 91 6E 9D 9A A0 96 FD DB 1F 5E 09 D7 0F 25 FB 46 4E 74 15 BB AB DB 17 EE E7 64 33 D6 79 02 E4 85 79 14 6B 59 F9 43 3C 81 68 A8 B5 32 BC E6}
condition:
     all of them
}

Labuh

Nama qoute_jpeg56a.r15
MD5 53BE8F9B978062D4411F71010F49209E
SHA1 A8C2765B3D655BA23886D663D22BDD8EF6E8E894
SHA256 2641DAFB452562A0A92631C2849B8B9CE880F0F8F

890E643316E9276156EDC8A

Jenis Arkibkan WinRAR
Saiz 823014
Nama QOUTE_JPEG56A.exe
MD5 329F6769CF21B660D5C3F5048CE30F17
SHA1 8010CC2AF398F9F951555F7D481CE13DF60BBECF
SHA256 49F94293F2EBD8CEFF180EDDD58FA50B30DC0F08

C05B5E3BD36FD52668D196AF

Jenis PE (Skrip AutoIt Tersusun)
Saiz 1327616
Nama Asal Tidak diketahui
Cap Tarikh 15.07.2019
Pautan Microsoft Linker(12.0)[EXE32]
MD5 C2743AEDDADACC012EF4A632598C00C0
SHA1 79B445DE923C92BF378B19D12A309C0E9C5851BF
SHA256 37A1961361073BEA6C6EACE6A8601F646C5B6ECD

9D625E049AD02075BA996918

Jenis ShellCode
Saiz 1474

Sumber: www.habr.com

Tambah komen