Pewaris Zeus: mengapa Trojan IcedID berbahaya bagi nasabah bank

Pakar Group-IB menganalisis Trojan yang menyerang pelanggan bank AS dan menyediakan bagi publik hasil analisis mendalam dari format data konfigurasi dinamis dengan skrip Python dan informasi di server CnC.

gambar

Pada November 2017, tim peneliti dari IBM X-Force menerbitkan laporan tentang trojan baru - IcedID , yang ditujukan terutama untuk pelanggan bank AS. Bot memiliki banyak fitur malware Zeus yang terkenal, termasuk: mengunduh dan menjalankan modul, mengumpulkan dan mengirimkan data otentikasi ke server, informasi tentang perangkat yang terinfeksi, dan melakukan serangan man-in-the-browser (MITB). Terlepas dari kenyataan bahwa dalam fungsinya Trojan baru ternyata mirip dengan bankir populer lainnya - Trickbot, GOZI, Dridex, yang secara aktif menyerang pelanggan bank, IcedID menggunakan format biner non-standar untuk menyimpan data konfigurasi. Fitur lain yang membedakan malware ini adalah kemampuan untuk menyebarkan server proxy secara langsung pada mesin yang terinfeksi untuk melakukan serangan MITB.

Teks: Ivan Pisarev, Spesialis Analisis Malware Grup-IB

Segera, IcedID tidak begitu luas dibandingkan dengan trojan lain, tetapi sekarang ia memiliki fungsionalitas yang cukup untuk mencapai tujuannya, di mana pencurian kredensial korban adalah yang utama. Ini dapat dicapai dengan banyak cara, mulai dari pencurian file dan entri registri dangkal dari komputer yang terinfeksi, dan diakhiri dengan mencegat dan mengubah lalu lintas peramban yang dienkripsi (serangan manusia-dalam-peramban).

Dalam kasus IcedID, data dicuri dari akun: Windows Live Mail, Windows Mail, RimArts, Poco Systems Inc, IncrediMail, The Bat! dan Outlook. Serangan MITB dilakukan dengan menggunakan server proxy, yang mengambil trojan pada perangkat yang terinfeksi, sehingga melewati semua lalu lintas jaringan melalui dirinya sendiri dan memodifikasinya. IcedID juga memiliki modul pemrosesan perintah server yang memungkinkan Anda untuk mengunduh dan menjalankan file dari jarak jauh (misalnya, dalam kasus yang sedang dipelajari, sampel memuat modul VNC, kode program yang memiliki bagian kode yang serupa dengan IcedID).

Menggunakan server proxy untuk MITB adalah perilaku tidak lazim untuk jenis trojan ini. Lebih sering, malware disematkan dalam konteks browser dan dialihkan fungsi panggilan dari perpustakaan standar ke fungsi handler-nya (contoh: WinHttpConnect () , InternetConnect () , InternetReadFile () , WinHttpReadData () , dll.). Sebelumnya, trik proxy sudah digunakan di GootKit .

IcedID didistribusikan menggunakan malware lain, Emotet (saat ini sering digunakan sebagai bootloader, meskipun ia memiliki fungsi lanjutan) dan sudah pada awalnya termasuk daftar luas metode modern untuk mencuri data pengguna.

Sekarang trojan memiliki mekanisme anti-parsing yang agak lemah (enkripsi string, korup header) dan tidak memiliki metode pendeteksi-VM. Dari sudut pandang peneliti, malware masih dalam pengembangan dan mekanisme perlindungan ini akan ditambahkan kemudian.

Sistem intelijen siber Ancaman Kelompok-IB tidak mendeteksi penjualan IcedID di forum tematik, yang berarti munculnya kelompok baru di arena trojan perbankan atau penjualan trojan melalui saluran pribadi. Tujuan bot, dilihat dari data konfigurasi dinamis (selanjutnya disebut konfigurasi), sebagian besar berlokasi di AS.

Daftar Sasaran
Kejar
Charles schwab
Bank of America
USAA
American express
Wells fargo
Modal satu
Perbankan komersial
Bank TD
Bank sentral
Bank AS
Bank persatuan california
Amazon
Perbankan Online PNC
Synovus
BB&T Bank
Citibank
eBanking
Huntington
ashanalyzer
Perdagangan elektronik
JPMorgan Chase
Cibc
Daerah OnePass
Pos bank ek
Comerica
Temukan bank
Keybank
Manajer kas beku
Hsbc
Rbc
Halifax
Verizon Wireless
Bank Lloyds
Bank M&T
Virwox
ADP

Artikel ini mencakup analisis terperinci trojan, analisis mendalam tentang format konfigurasi dinamis dengan skrip Python, dan informasi tentang CnC.

Bagian teknis


Gambaran umum tentang pekerjaan trojan


Awalnya, bagian. Data trojan dienkripsi. Pertama-tama, setelah memulainya, ia mendekripsi bagian sesuai dengan algoritma:

gambar

Variabel initial_seed dan size_seed terletak di awal bagian data (8 byte pertama bagian), setelah itu data terenkripsi ukuran ukuran byte ditemukan. Fungsi make_seed () adalah fungsi pseudo random number generator ( PRNG) unik untuk IcedID, yang akan kami kembalikan menjadi lebih dari sekali. Anda dapat menemukan versi fungsi Python di sini .

Awalnya, bot berisi string terenkripsi. Untuk memudahkan analisis, skrip didekodekan untuk IDA Pro untuk mendekripsi string (Anda harus memasukkan alamat fungsi dekripsi dalam sampel Anda).

Langkah selanjutnya adalah menambahkan penangan pengecualian menggunakan fungsi SetUnhandledExceptionFilter () . Jika ada pengecualian terjadi selama operasi aplikasi, itu hanya restart.

Setelah menambahkan penangan pengecualian, trojan mengumpulkan informasi tentang sistem yang terinfeksi:

  1. Versi OS
  2. Nomor Bangun OS
  3. Versi Paket Layanan
  4. Kapasitas sistem
  5. Jenis OS

Aplikasi ini membuat deskriptor keamanan: D: (A;; GA ;;; WD) (A;; GA ;;; AN) S: (ML;; NW ;;; S-1-16-0) , dan kemudian mengalokasikan memori untuk mencatat informasi selama pengoperasian trojan. Contoh string yang dicatat (string diperoleh menggunakan skrip di IDA):

  1. E | C | IN | INS | ISF | CP% u
  2. I | C | IN | INT | CI | % u
  3. W | C | IN | INT | CI | CRLL

IcedID dapat mengambil beberapa parameter. Diantaranya adalah:

  • --svc = - menyimpan string dari parameter ke registri dengan kunci dengan nama IcedID_reg ("* p *") , di mana IcedID_reg (str) adalah fungsi menghasilkan nama kunci dari string str (algoritma untuk membuat nama kunci registri akan dijelaskan nanti), setelah itu trojan mengakses acara dengan nama Global \ <% String karakter acak%> . Jika terjadi kesalahan, bot membuat salinan prosesnya dengan parameter / w = . Jika ini tidak dapat dilakukan, itu menciptakan nilai dalam registri:

HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Run \ <% String dengan panjang 9 dari karakter acak dalam alfabet [az]%>

dengan demikian memastikan kegigihan dalam sistem. Kunci ini dimaksudkan untuk peluncuran awal trojan.

  • / u - secara default, malware mencoba menjalankan dirinya sebagai administrator domain (menggunakan program runas ). Jika flag ini ada, trojan tidak melakukan operasi ini dan hanya membuat salinannya di direktori C: \ Users \ <% username%> \ AppData \ Local \ <% String dengan panjang 9 dari karakter acak alfabet [az]%> dengan nama <% Sebuah string dengan panjang 9 dari karakter acak dari alfabet [az]%> .exe , dan menulis path ke file dalam registri, dengan demikian memastikan persistensi dalam sistem.

HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Run \ <% String dengan panjang 9 dari karakter acak dalam alfabet [az]%>

Tampaknya kunci ini digunakan saat memperbarui bankir. Sebelum memulai kembali Trojan "tertidur" selama 5 detik.

  • / c - sebelum menjalankan fungsi jahat, Trojan "tertidur" selama 5 detik
  • / w = - menyimpan string dari parameter ke registri dengan kunci dengan nama IcedID_reg ("* p *")

Setelah memproses parameter, aplikasi mengakses registri dan mengeluarkan data konfigurasi dinamis yang berisi alamat CnC, serta suntikan Web. Format untuk menyimpan data dalam registri dijelaskan di bagian berikut.

Setelah mengakses registri, program membuat utas yang, setiap 5 atau 10 menit sekali (tergantung pada bendera internal), menghubungi CnC untuk menerima perintah. Di sini perlu dicatat mekanisme non-standar "tertidur" dari bot antara panggilan ke CnC: para pengembang tidak menggunakan fungsi Sleep () standar, sebaliknya mereka membuat acara dalam keadaan non-sinyal dan tanpa memanggilnya dalam keadaan sinyal, panggil fungsi WaitForSingleObject () . Fungsi pembuatan aliran panggilan CnC:

gambar

Analog fungsi Sleep () di IcedID:

gambar

Jangka waktu panjang akses ke server, serta "fungsi tidur" non-standar kemungkinan besar dirancang untuk menangkal analisis.

SSL digunakan untuk menyembunyikan lalu lintas antara server dan aplikasi.

Setelah memulai utas, bot “memunculkan” server Proxy pada mesin lokal untuk memproses lalu lintas pada mesin yang terinfeksi.

Protokol komunikasi server dan perangkat yang terinfeksi akan dibahas pada bagian berikut. Namun, perlu dicatat bahwa malware atas perintah server dapat memperbarui konfigurasi, memulai dan menghentikan server VNC, menjalankan perintah cmd.exe, mengunduh file.

Interaksi antara IcedID dan CnC Server


Daftar alamat CnC disimpan dalam tubuh bankir dalam bentuk terenkripsi, serta dalam registri dalam bentuk konfigurasi dinamis. Interaksi antara server dan trojan dilakukan menggunakan protokol HTTPS. Mengirim data ke server dengan permintaan POST, menggunakan GET untuk menerima data.

String kueri server adalah sebagai berikut:

<% CnC%> /forum/viewtopic.php?a=<%Integer%>&b=<%Besar integer%> & d = <% Integer%> & e = <% Integer%> & <% Data lain%>>

Nilai Bidang:

  • a - jenis permintaan, bidang ini dapat mengambil nilai:
    NilaiAksi
    0,1Kirim informasi tentang mesin yang terinfeksi
    2,3Kirim data lain ke server
    4Dapatkan versi terbaru dari konfigurasi dinamis dan masukkan ke dalam registri menggunakan kunci dengan nama IcedID_reg ("* cfg1")
    5Dapatkan versi terbaru dari konfigurasi dinamis dan masukkan ke dalam registri menggunakan kunci dengan nama IcedID_reg ("* cfg0")
    6Dapatkan versi terbaru dari konfigurasi dinamis dan masukkan ke dalam registri menggunakan kunci dengan nama IcedID_reg ("* rtd") (alamat CnC)
    7Dapatkan versi terbaru dari modul VNC
    8Dapatkan versi bot terbaru
  • b - ID bot
  • d-flag
  • e - konstan, terletak langsung di kode bot

Selanjutnya, nilai-nilai bidang tergantung pada bidang "a". Jika 0 atau 1, maka kueri terlihat seperti ini:

POST /forum/viewtopic.php?a=<%0 atau 1%> & b = <% BotID%> & d = <% Integer%> & e = <% Constant%> & f = <% Cfg1 Checksum%> & g = <% Cfg0 Checksum%> & h = <% Rtd Checksum%> & r = <% VNC Checksum%> & i = <% Waktu permintaan%> HTTP / 1.1
Koneksi: tutup
Content-Type: application / x-www-form-urlencoded
Panjang Konten:

Badan permintaan berisi informasi tentang mesin yang terinfeksi. Informasi disediakan dalam bentuk:

k = <% String%> & l = <% String%>% j = <% Integer%> & n = <% Integer%> & m = <% String%>

Dimana:

  • k - nama komputer dalam UNICODE
  • l - anggota domain di UNICODE
  • m - Informasi Sistem:
    1. Versi OS
    2. Nomor Bangun OS
    3. Versi Paket Layanan
    4. Kapasitas sistem
    5. Jenis OS

Jika bidangnya 2 atau 3, maka kueri terlihat seperti ini:

POST /forum/viewtopic.php?a=<%3 atau 2%> & b = <% BotID%> & d = <% Integer%> & e = <% Constant%> HTTP / 1.1
Koneksi: tutup
Content-Type: application / octet-stream
Panjang Konten:

Jika tidak, permintaannya adalah sebagai berikut:

DAPATKAN /forum/viewtopic.php?a=<%4-8%>&b=<%BotID%>&d=<%Integer%>&e=<%Constant%>&o=<%Objectum%>
HTTP / 1.1
Koneksi: tutup

Content-Type: application / x-www-form-urlencoded
Panjang Konten:

Contoh pertanyaan disajikan dalam gambar di bawah ini. Paket header saat mengakses server:

gambar

Badan pesan:

gambar

Trojan dapat menerima perintah dari server. Perintah direpresentasikan sebagai nilai integer. Semua perintah datang ke bot dalam bentuk string, yang parameternya dipisahkan oleh simbol “;”. Program ini dapat memproses 23 perintah:

TimNilai
0Tidak melakukan apa-apa (mungkin fungsi di masa mendatang akan ditambahkan)
1Perbarui nilainya dengan kunci registri bernama IcedID_reg ("* cfg0")
2Perbarui nilainya dengan kunci registri bernama IcedID_reg ("* cfg1")
3Perbarui nilai kunci registri dengan nama IcedID_reg ("* rtd")
4Unduh file, simpan ke direktori AppData dan jalankan
5Jalankan program, nama dan argumen mulai datang sebagai parameter
6Dapatkan informasi tentang proses yang sedang berjalan, termasuk: PID dan nama proses
7Matikan komputer dengan informasi, sebagai parameter fungsi:
SHTDN_REASON_FLAG_PLANNED
SHTDN_REASON_MINOR_INSTALLATION
SHTDN_REASON_MAJOR_APPLICATION
8Tulis nilai ke registri (nama dihasilkan berdasarkan algoritma yang dijelaskan di bawah ini)
9Baca nilai dalam registri (nama tersebut dihasilkan berdasarkan algoritma yang dijelaskan di bawah ini)
10Hapus kunci dari registri (nama tersebut dihasilkan berdasarkan algoritma yang dijelaskan di bawah ini)
11Jalankan modul lanjutan untuk memproses perintah dari server
12Hentikan modul tambahan untuk memproses perintah dari server
13Perbarui modul VNC (terletak di direktori% TEMP%)
14Dapatkan daftar file di desktop perangkat yang terinfeksi
15Unduh file, simpan dengan nama <% String karakter acak%>. Tmp dan jalankan dengan kunci \ u . Tampaknya perintah ini diperlukan untuk memperbarui versi bot pada perangkat yang terinfeksi.
16Hapus file yang namanya berisi string (datang sebagai parameter)
17Luncurkan modul distribusi jaringan. Distribusi terjadi dengan menyalin dan meluncurkan bot ke direktori Windows di perangkat lain menggunakan protokol LDAP.
18Dapatkan data log bot
19Atur acara akses server ke status alarm
20Dapatkan informasi akun untuk aplikasi berikut: Windows Live Mail, Windows Mail, RimArts, Poco Systems Inc, IncrediMail, The Bat! dan Outlook
21Ubah interval antara panggilan server
22Dapatkan jalur dari variabel lingkungan, unduh file dan simpan di sepanjang jalur ini
21Unggah file ke direktori AppData, jalankan dengan parameter / t = <% Menangani acara yang dibuat khusus%> / f = <% Menangani 2 dari acara yang dihasilkan khusus%> . Setelah menerjemahkan peristiwa ke keadaan alarm, file yang diunduh dihapus dari direktori AppData

Jika perintah berhasil dieksekusi, trojan mengirimkan string "Benar" ke server, jika tidak "Salah".

Dalam hal menerima perintah untuk meluncurkan modul perintah lanjutan, aplikasi mengirimkan dua byte ke server, setelah itu menunggu respons. Byte pertama yang diterima dari server sesuai dengan perintah yang diperluas dari tabel:

TimNilai
5Mulai utas menjalankan perintah cmd.exe pada mesin yang terinfeksi.
6Mulai server VNC. Dalam kasus yang diteliti, server VNC disajikan sebagai pustaka DLL, yang memiliki algoritma enkripsi string yang serupa.
7Jalankan perintah dari tabel di atas. Untuk menerima perintah normal, trojan mengirim dua karakter ke server, memberi tahu server bahwa ia siap dengan menerima bot perintah.

Server VNC dapat dimulai dengan dua cara yang mungkin (tergantung pada bendera internal):

  1. Menggunakan fungsi CreateProcessA () dengan parameter kernel32 rundll32.exe, Sleep -s <% param%>
  2. Menggunakan fungsi CreateProcessA () dengan parameter svchost.exe -s <% param%>

di mana <% param%> adalah 16 byte dalam representasi string, diisi sebagai berikut:

gambar

Segera setelah memulai, modul VNC memeriksa keberadaan sakelar -s , setelah itu ia membaca parameter yang diteruskan dan memeriksa kondisinya:
paramValue[0] == paramValue[1] ^ (paramValue[3] | (paramValue[2] << 16)) 

dan menggunakan fungsi DuplicateHandle () membuat salinan pegangan soket untuk interaksi lebih lanjut dengan server.

Parameter StartupInfo dari fungsi CreateProcessA () berisi nama Desktop'a yang dibuat khusus: Default <% flag%> . Juga, sebelum pemanggilan fungsi, alamat modul VNC ditempatkan pada parameter ProcessInformation :

gambar


Seperti dapat dilihat dari daftar, IcedID memiliki berbagai kemampuan untuk kontrol penuh dari mesin yang terinfeksi. Bahkan jika operator menghadapi masalah kurangnya fungsi, ia hanya akan mengunduh program lain dengan bantuan trojan dan melakukan tugas yang diberikan kepadanya. Misalnya, pada akhir Desember 2017, kami mencatat distribusi TrickBot oleh bankir ini.

Informasi Konfigurasi


Pembuatan nama untuk entri registri


Semua data konfigurasi yang diterima program dari server disimpan dalam registri perangkat yang terinfeksi (kecuali untuk modul VNC, yang disimpan dalam direktori% TEMP% dalam format tmp% 0.8X01.dat ).

Nama kunci registri yang menyimpan data konfigurasi yang menarik bagi kami dihitung menggunakan fungsi berikut:

gambar

Seperti yang Anda lihat dari gambar, nama kuncinya adalah nilai hash MD5 dari dua variabel - str dan computerSeed . Jenis data apa yang disimpan dalam variabel registri tergantung pada nilai variabel pertama. Misalnya, dengan nilai variabel * cfg0 atau * cfg1, kunci registri menyimpan suntikan Web, dengan nilai * rtd kunci menyimpan daftar CnC.

computerSeed adalah variabel unik pengguna. Itu dihitung berdasarkan SID pengguna. Script menyediakan versi python dari perhitungan variabel ini.

Path lengkap ke entri konfigurasi dalam registri:

HKEY_CLASSES_ROOT \ CLSID \ <nilai% MD5 dalam format: {% 0.8X-% 0.4X-% 0.4X-% 0.4X-% 0.4X-% 0.4X% 0.8X}%>>

Algoritma yang dijelaskan di atas adalah tepat algoritma untuk menghasilkan nama IcedID_reg () , yang berulang kali disebutkan di atas.

Kami menemukan nilai-nilai string berikut yang terlibat dalam menghasilkan nama-nama registri informasi penting bagi bankir:

  • * cfg0 - berisi daftar umum suntikan web
  • * cfg1 - berisi daftar alamat dan string untuk sepenuhnya mencuri data halaman
  • * rtd - daftar alamat CnC
  • * bc * - memberitahukan status modul untuk memproses perintah yang diperluas dari server. Jika entri ini ada di dalam registri - modul sedang berjalan
  • * p * - menyimpan parameter startup dengan tombol --svc = dan / w =

Struktur penyimpanan file konfigurasi dinamis


Konfigurasi dinamis disimpan dalam registri dalam bentuk terenkripsi. Server VNC, yang terletak di direktori% TEMP%, dienkripsi dengan cara yang sama.

Dua algoritma digunakan untuk enkripsi data: algoritma Trojan eksklusif dan RC4. Skema algoritma dekripsi:

gambar

Mari kita beralih dari teori ke praktik. Data terenkripsi awalnya setelah membaca dari registri:

gambar

Setelah menerima data, malware mendekripsi menggunakan algoritma sendiri:

gambar

Dan lagi-lagi kita memenuhi fungsi make_seed () !

Setelah dekripsi yang kita miliki (perhatikan alamat - itu didekripsi di bagian memori yang sama):

gambar

Setelah dekripsi kedua dalam memori, kita melihat yang berikut:

gambar

Setelah data di-unzip dan diuraikan. Perlu dicatat bahwa sebelum membebaskan data, data kembali dienkripsi menggunakan RC4 - perlindungan terhadap analisis dinamis aplikasi.

Struktur data lebih lanjut tergantung pada jenis data konfigurasi. Misalnya, data konfigurasi dengan awalan rtd disimpan dalam format:

 typedef struct CNCStruct { char signedMD5sum[128]; int checksum; BStrings cnc[N]; } CNCStruct; typedef struct BStrings { int length; char str[length]; } BStrings; 

Daftar alamat CnC dalam satu studi:

gambar

Sebelum mengakses alamat CnC dari daftar yang diterima, bot memeriksa tanda tangan digital. Kunci publik untuk memverifikasi tanda tangan disimpan di tubuh bot dalam bentuk terenkripsi. Setelah prosedur verifikasi tanda tangan, aplikasi "menimpa" kunci publik, pertama dengan data acak, dan kemudian dengan nol:

gambar

Konfigurasi dengan awalan cfg disimpan dalam format:

 typedef struct CfgStruct { int checksum; int elements_count; char config[]; } CfgStruct; 

Dalam kasus yang diteliti, kami melihat data berikut:

gambar

Data disimpan dalam format biner yang unik, yang akan dibahas nanti.

Anda dapat melihat algoritme untuk membuat kunci registri dan mendekripsi data konfigurasi dalam skrip .

Algoritma Parsing Data Konfigurasi


Setelah mendekripsi data, program mem-parsing mereka dan menyimpannya dalam bentuk daftar tertaut, yang kemudian berpartisipasi dalam analisis lalu lintas pada perangkat yang terinfeksi (MITB). Pertama-tama, data dibagi menjadi blok-blok yang memiliki struktur:

 typedef struct BaseBlock { int size; char type; char global_flag; char data[size - 6]; } BaseBlock; 

Struktur bidang data tergantung pada jenis bendera. Bendera dalam struktur ini menunjukkan apa yang terjadi ketika string ditemukan di URL / isi permintaan. Bidang dapat mengambil nilai-nilai berikut:

BenderaNilai
0x10Penggantian sebagian isi halaman, sebagai parameter - tag yang harus diganti, serta nilai yang digunakan untuk mengganti isi halaman
0x11.0x13Penggantian sebagian dari badan halaman, sebagai parameter - bagian dari halaman yang perlu diganti, serta nilai dari mana tubuh akan diganti
0x12Penggantian seluruh halaman
0x20Pencurian badan halaman. Sebagai parameter - tag, di antaranya ada bagian halaman yang menarik
0x21Pencurian halaman penuh
0x22Pencurian penuh dari tubuh halaman, tubuh disimpan dalam registri
0x2ECari di badan halaman untuk mencari baris dengan tag 0x40 dan 0x41, jika ada deteksi - pencurian tubuh halaman
0x30Minta pemblokiran
0x31Ambil tangkapan layar halaman tersebut
0x32,0x33Redirect ke halaman lain (jalur ke halaman adalah salah satu parameter). Selain itu, parameternya adalah string <% Registry Salt%> # <% URL%> , bot mengakses <% URL%> , memuat data dari sana, dan kemudian menyimpannya ke registri menggunakan kunci IcedID_reg (<% Registry Salt%>)
0x34Redirect ke halaman lain (jalur ke halaman adalah salah satu parameter)
0x40,0x41String tubuh di halaman tubuh
0x51Abaikan halaman
0x60Menyimpan nilai variabel ke registri (mengganti isi halaman dengan "Benar" atau "Salah" tergantung pada hasil perintah, nama dihasilkan berdasarkan algoritma yang dijelaskan di atas)
0x61Tunjukkan variabel dari registri (nama dibuat berdasarkan algoritma yang dijelaskan di atas)
0x62Hapus variabel dari registri (mengganti isi halaman dengan "Benar" atau "Salah" tergantung pada hasil perintah, nama dihasilkan berdasarkan algoritma yang dijelaskan di atas)
0x63Jalankan modul lanjutan untuk memproses perintah dari server (mengganti isi halaman dengan "Benar" atau "Salah" tergantung pada hasil perintah)
0x64Menyimpan badan halaman ke memori bot (menggantikan tubuh halaman dengan "Benar" atau "Salah" tergantung pada hasil perintah)
Struktur bidang data jika tipe 0x40 atau 0x41:

 typedef struct ConfigBlock { BStrings patterns[N]; int(0); } ConfigBlock; 

Jika tidak, struktur bidang:

 typedef struct BaseBlock { int typeSizeStr; string urlStr; int flagSize; char flag[flagSize]; int firstOptStrSize; char firstOptStr[firstOptStrSize]; int secondOptStrSize; char secondOptStr[secondOptStrSize]; int thirdOptStrSize; char thirdOptStr[thirdOptStrSize]; } BaseBlock; 

Mari kita lihat lebih dekat pada salah satu blok sampel:

gambar

Pertama-tama, perhatikan bidang "Jenis blok konfigurasi" di blok "Informasi umum blok konfigurasi". Ini adalah 0x11, yang berarti bahwa ketika pengguna memuat halaman yang URL-nya termasuk dalam aturan persamaan reguler ^ [^ =] * \ / wcmfd \ / wcmpw \ / CustomerLogin $ , baris <body (argumen kedua) diganti dengan baris < body style = "display: none;" (argumen ketiga).

Dalam memori aplikasi, daftar tertaut dibuat untuk setiap jenis. Algoritma parsing untuk daftar tertaut disajikan pada gambar di bawah ini sebagai layar IDA Pro. Anda dapat melihat skrip Python untuk pars data konfigurasi di sini .

gambar

Informasi CnC


Setelah beberapa bulan memantau pengembangan IcedID, kami menemukan banyak domain yang dimasukkan trojan dalam daftar konfigurasi dinamis di bagian CnC. Kami akan mewakili domain dalam bentuk korespondensi (email dari mana pendaftaran terjadi → domain):
MailDomain
davidphugley@jourrapide.compercalabia.com
borrespons.com
divorough.com
eyrannon.com
britically.com
joshuastaube@dayrep.commanismay.com
deterhood.com
marrivate.com
greatoric.com
phonetarif.com
CynthiaTHeller@grr.labinncu.net
PatriceAAdams@grr.laarcadyflyff.com
LindaJRowan@dayrep.comyutlitsi.com
SeanHumphreys@pokemail.neturnachay.com
RuthFThigpen@pokemail.netoksigur.net
FlorenceTButler@pokemail.netrfisoty.com
FreidaDDelgado@pokemail.neturnisim.net
TinaLHobson@grr.lacupicratings.com
ElisaRTucker@pokemail.netfreegameshacks.net
DaleKMontes@pokemail.netgordondeen.net
patrickggutierez@dayrep.compoorloo.com
dismissey.com
euphratt.com
detrole.com
JustineRBoatner@pokemail.netlumpyve.com
MatthewAPerkins@grr.lagooblesooq.com
fzlajsf.net
JosephLSmith@grr.lanewpctoday.com
triodgt.com
DominicNDecker@pokemail.netonsunga.net
MarcellaBCraighead@pokemail.netrybatas.com
KellyJMaldonado@grr.lanetocraze.net
irtazin.net

Sekarang mari kita melihat lebih dekat pada pengguna yang domainnya telah terdaftar:

Informasi tentang pendaftar
Email davidphugley@jourrapide.com :

  • Panitera: PDR Ltd. d / b / a PublicDomainRegistry.com
  • Nama: David P. Hugley (pendaftar, admin, teknologi)
  • Jalan: 2453 Round Table Drive (pendaftar, admin, teknologi)
  • Kota: Hamilton (pendaftar, admin, teknologi)
  • Negara: Ohio (pendaftar, admin, teknologi)
  • Pos: 45011 (pendaftar, admin, teknologi)
  • Negara: AS (pendaftar, admin, teknologi)
  • Telepon: 15138878784 (pendaftar, admin, teknologi)

Email joshuastaube@dayrep.com :

  • Panitera: PDR Ltd. d / b / a PublicDomainRegistry.com
  • Nama: Joshua S. Taube (pendaftar, admin, teknologi)
  • Organisasi:
  • Jalan: 2173 Kyle Street (pendaftar, admin, teknologi)
  • Kota: Hay Springs (pendaftar, admin, teknologi)
  • Negara: Nevada (pendaftar, admin, teknologi)
  • Pos: 69347 (pendaftar, admin, teknologi)
  • Negara: AS (pendaftar, admin, teknologi)
  • Telepon: 13086385612 (pendaftar, admin, teknologi)

Email CynthiaTHeller@grr.la :

  • Panitera: Eranet International Limited
  • Nama: Cynthia Heller (pendaftar, admin, penagihan, teknologi)
  • Organisasi:
  • Jalan: 396 Tennessee Avenue (pendaftar, admin, penagihan, teknologi)
  • Kota: Southfield (pendaftar, admin, penagihan, teknologi)
  • Negara: MX (pendaftar, admin, penagihan, teknologi)
  • Pos: 48034 (pendaftar, admin, penagihan, teknologi)
  • Negara: AS (pendaftar, admin, penagihan, teknologi)
  • Telepon: 12482469621 (pendaftar, admin, penagihan, teknologi)

Email PatriceAAdams@grr.la :

  • Panitera: Eranet International Limited
  • Nama: Patrice Adams (pendaftar, admin, penagihan, teknologi)
  • Organisasi
  • Jalan: 3997 Marietta Street (pendaftar, admin, penagihan, teknologi)
  • Kota: Cazadero (pendaftar, admin, penagihan, teknologi)
  • Negara: JL (pendaftar, admin, penagihan, teknologi)
  • Pos: 95421 (pendaftar, admin, penagihan, teknologi)
  • Negara: AS (pendaftar, admin, penagihan, teknologi)
  • Telepon: 17076322681 (pendaftar, admin, penagihan, teknologi)

Email LindaJRowan@dayrep.com :

  • Panitera: Eranet International Limited
  • Nama: Linda Rowan (pendaftar, admin, penagihan, teknologi)
  • Organisasi:
  • Jalan: 1908 Luke Lane (pendaftar, admin, penagihan, teknologi)
  • Kota: Kota Rusa (pendaftar, admin, penagihan, teknologi)
  • Negara: EK (pendaftar, admin, penagihan, teknologi)
  • Pos: 73644 (pendaftar, admin, penagihan, teknologi)
  • Negara: AS (pendaftar, admin, penagihan, teknologi)
  • Telepon: 15802259140 (pendaftar, admin, penagihan, teknologi)

Email SeanHumphreys@pokemail.net :

  • Panitera: Eranet International Limited
  • Nama: Sean Humphreys (pendaftar, admin, penagihan, teknologi)
  • Organisasi:
  • Jalan: 4661 Kincheloe Road (pendaftar, admin, penagihan, teknologi)
  • Kota: Portland (pendaftar, admin, penagihan, teknologi)
  • Negara: EL (pendaftar, admin, penagihan, teknologi)
  • Pos: 97205 (pendaftar, admin, penagihan, teknologi)
  • Negara: AS (pendaftar, admin, penagihan, teknologi)
  • Telepon: 16384273711 (pendaftar, admin, penagihan, teknologi)

Email RuthFThigpen@pokemail.net :

  • Panitera: Eranet International Limited
  • Nama: Ruth Thigpen (pendaftar, admin, penagihan, teknologi)
  • Organisasi
  • Jalan: 765 Michael Street (pendaftar, admin, penagihan, teknologi)
  • Kota: Houston (pendaftar, admin, penagihan, teknologi)
  • Negara: DK (pendaftar, admin, penagihan, teknologi)
  • Pos: 77021 (pendaftar, admin, penagihan, teknologi)
  • Negara: AS (pendaftar, admin, penagihan, teknologi)
  • Telepon: 17137485876 (pendaftar, admin, penagihan, teknologi)

Email FlorenceTButler@pokemail.net :

  • Panitera: Eranet International Limited
  • Nama: Florence Butler (pendaftar, admin, penagihan, teknologi)
  • Organisasi:
  • Jalan: 4554 Par Drive (pendaftar, admin, penagihan, teknologi)
  • Kota: Lompoc (pendaftar, admin, penagihan, teknologi)
  • Negara: JL (pendaftar, admin, penagihan, teknologi)
  • Pos: 93436 (pendaftar, admin, penagihan, teknologi)
  • Negara: AS (pendaftar, admin, penagihan, teknologi)
  • Telepon: 198058660048 (pendaftar, admin, penagihan, teknologi)

Email FreidaDDelgado@pokemail.net :

  • Panitera: Eranet International Limited
  • Nama: Freida Delgado (pendaftar, admin, penagihan, teknologi)
  • Organisasi:
  • Jalan: 4439 Burning Memory Lane (pendaftar, admin, penagihan, teknologi)
  • Kota: Philadelphia (pendaftar, admin, penagihan, teknologi)
  • Negara: BX (pendaftar, admin, penagihan, teknologi)
  • Pos: 19115 (pendaftar, admin, penagihan, teknologi)
  • Negara: AS (pendaftar, admin, penagihan, teknologi)
  • Telepon: 12153306416 (pendaftar, admin, penagihan, teknologi)

Email TinaLHobson@grr.la :

  • Panitera: Eranet International Limited
  • Nama: Tina Hobson (pendaftar, admin, penagihan, teknologi)
  • Organisasi:
  • Jalan: 3960 Woodridge Lane (pendaftar, admin, penagihan, teknologi)
  • Kota: Memphis (pendaftar, admin, penagihan, teknologi)
  • Negara: TN (pendaftar, admin, penagihan, teknologi)
  • Pos: 38110 (pendaftar, admin, penagihan, teknologi)
  • Negara: AS (pendaftar, admin, penagihan, teknologi)
  • Telepon: 19012994734 (pendaftar, admin, penagihan, teknologi)

Email ElisaRTucker@pokemail.net :

  • Panitera: Eranet International Limited
  • Nama: Elisa Tucker (pendaftar, admin, penagihan, teknologi)
  • Organisasi
  • Jalan: 3316 Corbin Branch Road (pendaftar, admin, penagihan, teknologi)
  • Kota: Kota Johnson (pendaftar, admin, penagihan, teknologi)
  • Negara: TN (pendaftar, admin, penagihan, teknologi)
  • Pos: 37601 (pendaftar, admin, penagihan, teknologi)
  • Negara: AS (pendaftar, admin, penagihan, teknologi)
  • Telepon: 14234332211 (pendaftar, admin, penagihan, teknologi)

Email DaleKMontes@pokemail.net :

  • Panitera: Eranet International Limited
  • Nama: Dale Montes (pendaftar, admin, penagihan, teknologi)
  • Organisasi:
  • Jalan: 2719 Norman Street (pendaftar, admin, penagihan, teknologi)
  • Kota: Los Angeles (pendaftar, admin, penagihan, teknologi)
  • Negara: JL (pendaftar, admin, penagihan, teknologi)
  • Pos: 90008 (pendaftar, admin, penagihan, teknologi)
  • Negara: AS (pendaftar, admin, penagihan, teknologi)
  • Telepon: 13232919311 (pendaftar, admin, penagihan, teknologi)

Email patrickggutierez@dayrep.com :

  • Panitera: PDR Ltd. d / b / a PublicDomainRegistry.com
  • Nama: Patrick G. Gutierez (pendaftar, admin, teknologi)
  • Organisasi:
  • Jalan: 1146 Mount Olive Road (pendaftar, admin, teknologi)
  • Kota: Atlanta (pendaftar, admin, teknologi)
  • Negara: Georgia (pendaftar, admin, teknologi)
  • Pos: 30328 (pendaftar, admin, teknologi)
  • Negara: AS (pendaftar, admin, teknologi)
  • Telepon: 16789874672 (pendaftar, admin, teknologi)

Email JustineRBoatner@pokemail.net :

  • Panitera: Eranet International Limited
  • Nama: Justine Boatner (pendaftar, admin, penagihan, teknologi)
  • Organisasi:
  • Jalan: 2875 Kemper Lane (pendaftar, admin, penagihan, teknologi)
  • Kota: Kearns (pendaftar, admin, penagihan, teknologi)
  • Negara: YT (pendaftar, admin, penagihan, teknologi)
  • Pos: 84118 (pendaftar, admin, penagihan, teknologi)
  • Negara: AS (pendaftar, admin, penagihan, teknologi)
  • Telepon: 18019026902 (pendaftar, admin, penagihan, teknologi)

Email MatthewAPerkins@grr.la :

  • Panitera: Eranet International Limited
  • Nama: Matthew Perkins (pendaftar, admin, penagihan, teknologi)
  • Organisasi:
  • Jalan: 2507 Locust Street (pendaftar, admin, penagihan, teknologi)
  • Kota: Ellaville (pendaftar, admin, penagihan, teknologi)
  • Negara: QZ (pendaftar, admin, penagihan, teknologi)
  • Pos: 31806 (pendaftar, admin, penagihan, teknologi)
  • Negara: AS (pendaftar, admin, penagihan, teknologi)
  • Telepon: 12299379022 (pendaftar, admin, penagihan, teknologi)

Email JosephLSmith@grr.la :

  • Panitera: Eranet International Limited
  • Nama: Joseph Smith (pendaftar, admin, penagihan, teknologi)
  • Organisasi:
  • Jalan: 2808 Ruckman Road (pendaftar, admin, penagihan, teknologi)
  • Kota: Kota Oklahoma (pendaftar, admin, penagihan, teknologi)
  • Negara: EK (pendaftar, admin, penagihan, teknologi)
  • Pos: 73102 (pendaftar, admin, penagihan, teknologi)
  • Negara: AS (pendaftar, admin, penagihan, teknologi)
  • Telepon: 14058506091 (pendaftar, admin, penagihan, teknologi)

Email DominicNDecker@pokemail.net :

  • Panitera: Eranet International Limited
  • Nama: Dominic Decker (pendaftar, admin, penagihan, teknologi)
  • Organisasi:
  • Jalan: 1169 Golden Ridge Road (pendaftar, admin, penagihan, teknologi)
  • Kota: Gloversville (pendaftar, admin, penagihan, teknologi)
  • Negara: NY (pendaftar, admin, penagihan, teknologi)
  • Pos: 12078 (pendaftar, admin, penagihan, teknologi)
  • Negara: AS (pendaftar, admin, penagihan, teknologi)
  • Telepon: 15187485876 (pendaftar, admin, penagihan, teknologi)

Email MarcellaBCraighead@pokemail.net :

  • Panitera: Eranet International Limited
  • Nama: Marcella Craighead (pendaftar, admin, penagihan, teknologi)
  • Organisasi:
  • Jalan: 1659 Lilac Lane (pendaftar, admin, penagihan, teknologi)
  • Kota: Savannah (pendaftar, admin, penagihan, teknologi)
  • Negara: QZ (pendaftar, admin, penagihan, teknologi)
  • Pos: 31401 (pendaftar, admin, penagihan, teknologi)
  • Negara: AS (pendaftar, admin, penagihan, teknologi)
  • Telepon: 19125956971 (pendaftar, admin, penagihan, teknologi)

Email KellyJMaldonado@grr.la :

  • Panitera: Eranet International Limited
  • Nama: Kelly Maldonado (pendaftar, admin, penagihan, teknologi)
  • Organisasi: NA
  • Jalan: 4391 Ben Street (pendaftar, admin, penagihan, teknologi)
  • Kota: Albany (pendaftar, admin, penagihan, teknologi)
  • Negara: NY (pendaftar, admin, penagihan, teknologi)
  • Pos: 12207 (pendaftar, admin, penagihan, teknologi)
  • Negara: AS (pendaftar, admin, penagihan, teknologi)
  • Telepon: 15182623616 (pendaftar, admin, penagihan, teknologi)


Akhirnya, pertimbangkan kronologi mengubah alamat IP domain. Semua alamat IP telah ditambahkan ke tabel sejak November 2017:

Tabel Alamat IP
DomainIPNegaraPertama kali terlihat di alam liar
gooblesooq.com185.127.26.227RU07/11/2017
irtazin.net185.127.26.227RU07/11/2017
netocraze.net185.5.251.33RU07/11/2017
triodgt.com185.5.251.33RU07/11/2017
newpctoday.com185.5.251.33RU07/11/2017
fzlajsf.net185.127.26.227RU11/25/2017
netocraze.net185.48.56.139Nl11/27/2017
triodgt.com185.48.56.139Nl11/27/2017
newpctoday.com185.48.56.139Nl11/29/2017
netocraze.net185.22.65.17KZ12/1/2017
triodgt.com185.22.65.17KZ12/1/2017
newpctoday.com185.22.65.17KZ12/1/2017
gordondeen.net185.127.26.227RU11/11/2017
netocraze.net46.148.26.106UA11/11/2017
arcadyflyff.com46.148.26.106UA12/12/2017
cupicratings.com46.148.26.106UA12/12/2017
freegameshacks.net185.127.26.227RU12/12/2017
newpctoday.com46.148.26.106UA12/12/2018
onsunga.net107.150.99.20CN12/12/2017
oksigur.net107.150.99.20CN12/12/2017
rfisoty.com107.150.99.20CN12/12/2017
rybatas.com107.150.99.20CN12/12/2017
urnachay.com107.150.99.20CN12/12/2017
rfisoty.com46.148.26.106UA24/1/2018
rybatas.com185.127.26.227RU24/1/2018
urnachay.com185.127.26.227RU24/1/2018
yutlitsi.com185.127.26.227RU24/1/2018
urnisim.net185.127.26.227RU24/1/2018
oksigur.net185.127.26.227RU26/1/2018
urnachay.com109.234.35.121RU31/1/2018
oksigur.net109.234.35.121RU31/1/2018
yutlitsi.com109.234.35.121RU1/2/2018
urnisim.net109.234.35.121RU1/2/2018
divorough.com46.148.26.106UA02/21/2018
percalabia.com109.234.35.121RU02/22/2018
borrespons.com46.148.26.106UA02/26/2018
britically.com46.148.26.106UA02/26/2018
eyrannon.com109.234.35.121RU02/26/2018
deterhood.com109.234.35.121RU1/3/2018
greatoric.com109.234.35.121RU1/3/2018
manismay.com46.148.26.106UA1/3/2018
marrivate.com109.234.35.121RU1/3/2018
moindal.com46.148.26.106UA1/3/2018
phonetarif.com46.148.26.106UA1/3/2018
moindal.com185.169.229.119CH3/5/2018
dismissey.com46.148.26.106UA3/4/2018
euphratt.com109.234.35.121RU4/4/2018
percalabia.com46.148.26.11UA3/4/2018
deterhood.com46.148.26.11UA04/24/2018
eyrannon.com46.148.26.11UA04/24/2018
greatoric.com46.148.26.11UA04/24/2018
marrivate.com46.148.26.11UA04/24/2018
euphratt.com46.148.26.11UA4/25/2018
borrespons.com185.48.56.134Nl5/7/2018
britically.com185.48.56.134Nl5/7/2018
dismissey.com185.48.56.134Nl5/7/2018
divorough.com185.48.56.134Nl5/7/2018
rfisoty.com185.48.56.134Nl5/7/2018
detrole.com109.236.87.25Nl5/8/2018
manismay.com185.48.56.134Nl5/8/2018
phonetarif.com185.48.56.134Nl13/05/2018
binncu.net46.148.26.106UA17/05/2018
urnisim.net46.148.26.11UA17/05/2018
urnachay.com46.148.26.11UA05/18/2018
yutlitsi.com46.148.26.11UA05/18/2018
oksigur.net46.148.26.11UA05/21/2018
greatoric.com5.187.0.158DE5/22/2018
marrivate.com5.187.0.158DE5/22/2018
percalabia.com5.187.0.158DE5/22/2018
urnachay.com5.187.0.158DE5/22/2018
yutlitsi.com5.187.0.158DE5/22/2018
lumpyve.com185.48.56.134Nl05/24/2018
urnisim.net5.187.0.158DE05/27/2018
borrespons.com85.143.202.82RU7/6/2018
manismay.com85.143.202.82RU7/6/2018
phonetarif.com85.143.202.82RU7/6/2018
rfisoty.com85.143.202.82RU7/6/2018
borrespons.com212.83.61.213DE6/20/2018
manismay.com212.83.61.213DE6/20/2018
rfisoty.com212.83.61.213DE6/20/2018
lumpyve.com212.83.61.213DE6/20/2018
phonetarif.com212.83.61.213DE6/20/2018


Setelah mempelajari data yang disajikan, kita dapat meringkas bahwa semua domain terdaftar untuk surat yang dihasilkan menggunakan layanan surat sementara Lokasi pendaftar fiktif berada di Amerika Serikat, sementara domainnya sendiri berlokasi di Rusia, Ukraina, Belanda, Cina, Kazakhstan, dan Jerman (baru-baru ini ada kecenderungan untuk "memindahkan" domain ke Ukraina dan Jerman). Semua domain berada di zona domain "com" dan "net". Alfabet yang terdiri dari domain hanya mencakup huruf-huruf dari alfabet bahasa Inggris. Di sisi CnC, server Web OpenResty dinaikkan.

Kesimpulan


Meskipun "kuno" Trojan seperti Zeus, relevansinya tidak jatuh. Akibatnya, IcedID muncul di arena trojan yang ditujukan untuk pelanggan bank. Meskipun bankir sudah memiliki daftar peluang yang luas di awal, ia masih meningkatkan: metode membongkar menjadi lebih rumit, dan daftar tujuan berkembang. Kemungkinan besar, di masa depan, program jahat akan memperoleh mekanisme anti-analisis, dan server CnC secara selektif akan memberikan suntikan Web ke perangkat yang terinfeksi. Sementara itu, Trojans tidak memenuhi semua persyaratan "pengguna" mereka, sebagaimana dibuktikan dengan penggunaan TrickBot pada bulan Desember bersama dengan IcedID.

Group-IB tahu segalanya tentang kejahatan dunia maya, tetapi menceritakan hal-hal yang paling menarik.

Saluran Telegram penuh aksi (https://t.me/Group_IB) tentang keamanan informasi, peretas dan serangan dunia maya, peretas dan perompak internet. Investigasi kejahatan dunia maya yang sensasional dengan langkah-langkah, kasus-kasus praktis menggunakan teknologi Grup-IB dan, tentu saja, rekomendasi tentang bagaimana menghindari menjadi korban di Internet.

Grup Saluran YouTube -IB
Group-IB Photowire di Instagram www.instagram.com/group_ib
Twitter berita pendek twitter.com/GroupIB

Group-IB adalah salah satu pengembang solusi terkemuka untuk mendeteksi dan mencegah serangan cyber, mendeteksi penipuan, dan melindungi kekayaan intelektual dalam jaringan yang berkantor pusat di Singapura.

Source: https://habr.com/ru/post/id418189/


All Articles