Cybergroup Sednit telah beroperasi setidaknya sejak 2004 dan secara teratur muncul di berita. Sednit (lebih dikenal sebagai Fancy Bear) diyakini berada di belakang celah Komite Nasional Demokrat AS sebelum pemilu 2016, Badan Anti-Doping Dunia (WADA), jaringan televisi TV5Monde, dan serangan lainnya. Gudang senjata kelompok ini mencakup seperangkat alat jahat, beberapa di antaranya telah kami dokumentasikan
dalam laporan sebelumnya .
Kami baru-baru ini merilis laporan tentang
LoJax , rootkit UEFI yang juga terkait dengan Sednit dan digunakan dalam serangan di Balkan, di Eropa Tengah dan Timur.
Pada Agustus 2018, operator Sednit mengerahkan dua komponen Zebrocy baru, dan mulai sekarang kita telah melihat lonjakan dalam penggunaan alat ini. Zebrocy adalah koleksi bootloader, droppers, dan backdoors. Pengunduh dan dropper adalah untuk kecerdasan, sementara backdoors menyediakan kegigihan dan spyware. Komponen-komponen baru ini memiliki cara yang tidak biasa untuk menggali data yang dikumpulkan melalui protokol layanan surat SMTP dan POP3.
Para korban alat baru menyerupai para korban yang disebutkan dalam posting kami sebelumnya tentang
Zebrocy , serta di
Kaspersky Lab . Sasaran serangan adalah di Asia Tengah, Eropa Tengah dan Timur, ini terutama kedutaan besar, kementerian luar negeri dan diplomat.
Ulasan
Gambar 1. Skema komponen Zebrocy lama dan baruSelama dua tahun, cybergroup Sednit menggunakan email phising sebagai vektor infeksi untuk Zebrocy (opsi 1 dan 2 dalam tabel di atas). Setelah kompromi, para penyerang menggunakan berbagai bootloader dari tahap pertama untuk mengumpulkan informasi tentang korban dan, jika berminat, setelah beberapa jam atau beberapa hari digunakan salah satu pintu belakang dari tingkat kedua.
Skema kampanye Zebrocy klasik adalah untuk mendapatkan korban sebagai arsip dalam lampiran surat itu. Arsip berisi dua file, salah satunya adalah dokumen yang tidak berbahaya, dan yang kedua adalah file yang dapat dieksekusi. Penyerang mencoba menipu korban dengan memanggil file kedua nama khas dokumen atau gambar dan menggunakan "ekstensi ganda".
Dalam kampanye baru (opsi 3 dalam tabel), skema yang lebih rumit digunakan - kami akan menganalisisnya di bawah ini.
Penetes delphi
Biner pertama adalah dropper Delphi, yang sangat tidak biasa untuk kampanye Zebrocy. Dalam kebanyakan kasus, ini lebih merupakan bootloader yang diinstal pada sistem korban pada tahap pertama serangan.
Dengan bantuan beberapa metode, pipet mempersulit rekayasa terbalik. Dalam sampel yang diperiksa, ia menggunakan kata kunci
hati untuk menunjukkan awal dan akhir elemen kunci, seperti yang ditunjukkan di bawah ini.
$ yara -s tag_yara.yar SCANPASS_QXWEGRFGCVT_323803488900X_jpeg.exe find_tag SCANPASS_QXWEGRFGCVT_323803488900X_jpeg.exe 0x4c260:$tag: l\x00i\x00v\x00e\x00r\x00 0x6f000:$tag: liver 0x6f020:$tag: liver 0x13ab0c:$tag: liver
Aturan YARA di atas mencari string
liver . Baris
hati pertama digunakan dalam kode, tetapi tidak memisahkan apa pun, sementara yang lain berbagi deskriptor kunci, gambar (hexdump ditunjukkan di bawah) dan komponen terenkripsi dalam penetes.
$ hexdump -Cn 48 -s 0x6f000 SCANPASS_QXWEGRFGCVT_323803488900X_jpeg.exe 0006f000 6c 69 76 65 72 4f 70 65 6e 41 69 72 33 39 30 34 |liverOpenAir3904| 0006f010 35 5f 42 61 79 72 65 6e 5f 4d 75 6e 63 68 65 6e |5_Bayren_Munchen| 0006f020 6c 69 76 65 72 ff d8 ff e0 00 10 4a 46 49 46 00 |liver……JFIF.|
Pertama, data disimpan dalam gambar dengan nama file
C: \ Users \ public \ Pictures \ scanPassport.jpg , jika file tersebut belum ada.
Menariknya, file dropper ini disebut
SCANPASS_QXWEGRFGCVT_323803488900X_jpeg.exe , yang juga menyarankan skema phishing terkait dengan paspor dan informasi perjalanan. Ini mungkin berarti bahwa operator mungkin mengetahui tujuan dari pesan phishing. Dropper membuka gambar dan, jika file sudah ada, menghentikan eksekusi. Kalau tidak, ia membukanya dan menerima pegangan kunci
OpenAir39045_Bayren_Munchen . Tidak ada gambar, meskipun formatnya benar - lihat gambar di bawah ini.
Gambar 2. ScanPassport.jpgBaris uraian kunci berisi
Bayren_Munchen - kemungkinan besar referensi ke tim sepak bola FC Bayern Munich. Bagaimanapun, isi deskriptor tidak penting, tetapi panjangnya, yang dengannya Anda bisa mendapatkan kunci XOR untuk mendekripsi komponen.
Untuk mendapatkan kunci XOR, dropper mencari kata kunci
hati terakhir dan menguraikannya menurut panjang kata kunci. Panjang kunci XOR adalah 27 (0x1b) byte (identik dengan panjang deskriptor kunci).
Menggunakan kunci XOR dan loop sederhana, dropper mendekripsi bagian terakhir - komponen terenkripsi terletak tepat setelah tag terakhir ke akhir file. Harap dicatat bahwa header MZ dari komponen yang dapat dieksekusi dimulai segera setelah kata kunci
hati , dan kunci XOR diperoleh dari bagian header PE, yang biasanya merupakan urutan 0x00 byte yang dipulihkan setelah dekripsi komponen, seperti yang ditunjukkan pada gambar di bawah ini.
Gambar 3. Komponen terenkripsi (kiri) versus komponen terenkripsi (kanan)Komponen diatur ulang ke
C: \ Users \ Public \ Documents \ AcrobatReader.txt dan mengonversi file ke
C: \ Users \ Public \ Documents \ AcrobatReader.exe .
Mungkin ini adalah upaya untuk mem-bypass perlindungan PC, yang menghasilkan peringatan ketika file biner mem-flush file dengan ekstensi .exe ke disk.
Sekali lagi, operator mencoba untuk menipu korban, dan jika dia memperhatikan direktori, dia akan melihat gambar seperti pada gambar berikut:
Gambar 4. Komponen terlihat seperti file PDFSecara default, Windows menyembunyikan ekstensi, dan ini digunakan oleh penyerang yang membuang file yang dapat dieksekusi ke folder Documents dan menyamarkannya sebagai PDF.
Akhirnya, dropper mengeksekusi komponen yang di-host dan keluar.
MSIL Mail Loader
Komponen yang dikirim dari dropper sebelumnya adalah loader MSIL yang dikemas dengan UPX. Untuk pemahaman yang lebih baik, logika proses dijelaskan di bawah ini, kemudian kode sumber diberikan dan skema kontrol dipertimbangkan.
Metode utama memanggil
Jalankan untuk meluncurkan aplikasi, yang kemudian membuat
Form1 .
{ Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run((Form) new Form1()); }
Form1 memberikan banyak variabel, termasuk
Timer baru untuk tujuh dari mereka.
this.start = new Timer(this.components); this.inf = new Timer(this.components); this.txt = new Timer(this.components); this.subject = new Timer(this.components); this.run = new Timer(this.components); this.load = new Timer(this.components); this.screen = new Timer(this.components);
Objek Timer memiliki tiga bidang penting:
- Diaktifkan: Menunjukkan status timer yang diaktifkan.
- Interval: waktu antar peristiwa dalam milidetik
- Centang: callback dijalankan setelah timer kedaluwarsa dan jika timer menyala
Bidang ditunjukkan sebagai berikut:
this.start.Enabled = true; this.start.Interval = 120000; this.start.Tick += new EventHandler(this.start_Tick); this.inf.Interval = 10000; this.inf.Tick += new EventHandler(this.inf_Tick); this.txt.Interval = 120000; this.txt.Tick += new EventHandler(this.txt_Tick); this.subject.Interval = 120000; this.subject.Tick += new EventHandler(this.subject_Tick); this.run.Interval = 60000; this.run.Tick += new EventHandler(this.run_Tick); this.load.Interval = 120000; this.load.Tick += new EventHandler(this.load_Tick); this.screen.Interval = 8000; this.screen.Tick += new EventHandler(this.screen_Tick);
Untuk setiap objek, interval
Interval diatur dari 8 detik hingga 2 menit. Panggilan balik ditambahkan ke pengendali acara. Perhatikan bahwa hanya
mulai menetapkan nilai menjadi true untuk
Diaktifkan , yang berarti bahwa setelah 2 menit (12.000 milidetik = 120 detik),
start_Tick akan dipanggil oleh pengendali acara.
private void start_Tick(object sender, EventArgs e) { try { this.start.Enabled = false; Lenor lenor = new Lenor(); this.dir = !Directory.Exists(this.label15.Text.ToString()) ? this.label16.Text.ToString() + "\" : this.label15.Text.ToString() + "\"; this.att = this.dir + "audev.txt"; this._id = lenor.id(this.dir); this.inf.Enabled = true; }
Selanjutnya, setiap metode menunjukkan perilaku yang identik - mengubah nilai
Diaktifkan ke
false di awal. Metode ini dijalankan, dan kemudian mengubah nilai
Diaktifkan dari objek berikutnya menjadi
true , yang mengaktifkan timer berikutnya. Variabel yang
Diaktifkan digunakan oleh operator untuk membuat sesuatu seperti mesin negara - jika fungsi tidak bekerja, mekanisme mengulangi pelaksanaannya hingga menerima hasil yang positif. Waktu antara eksekusi dua fungsi dapat digunakan sebagai upaya untuk mem-bypass perlindungan anti-virus dengan menambahkan penundaan.
Sekarang, setelah menjelaskan struktur masing-masing metode, kami beralih ke algoritma kontrol. Berikut ini adalah ikhtisar langkah-langkah dalam bentuk bertukar email antar kotak surat.
Gambar 5. Pertukaran emailMalvar memeriksa keberadaan jalur khusus yang digunakan untuk membuang setiap file selama eksekusi. Jika memungkinkan, gunakan
C: \ Users \ Public \ Videos \ , jika tidak
C: \ Documents and Settings \ All Users \ Documents \ sebagai direktori default. Harap dicatat bahwa jalur kedua khusus untuk Windows XP, sedangkan jalur pertama khusus untuk Vista dan lebih tinggi.
ID 16-byte dihasilkan dengan menggabungkan nomor seri volume C: dan nama pengguna; itu disimpan dalam file
audev.txt .
Bootloader mengumpulkan informasi berikut:
- jalur aplikasi saat ini
- versi sistem operasi
- direktori sistem
- domain pengguna
- nama mobil
- nama pengguna
- zona waktu saat ini
- tanggal sekarang
- daftar drive logis dan informasi tentang masing-masing (model, nomor seri, dll.)
- daftar direktori
C: \ Program Files \ dan
C: \ Program Files (x86) \- daftar proses
Data ini disimpan dalam file
C: \ Users \ Public \ Videos \ si.ini dan dikirim melalui surat dalam lampiran melalui SMTPS menggunakan port default 465. Badan pesan berisi baris
SI (yang mungkin berarti Informasi Sistem), penerima pesan adalah
sym777. g@post.cz . Untuk seluruh pertukaran informasi, subjek surat diindikasikan sebagai
id .
Operator memutuskan untuk membuat beberapa alamat cadangan dan mengirim surat yang sama ke dua penerima lainnya, kemungkinan besar, jika alamat utama tidak berfungsi. Setelah mengirim surat, bootloader menghapus file
si.ini .
Selama menjalankan pertama dari malware, file
set.txt dibuat dengan teks
{System_Parametrs = 10} di dalam dan entri di kunci registri Windows.
Gambar 6. Kegigihan dalam registriSatu tangkapan layar
diambil dengan nama
scx.bin dari komputer korban dan dikirim melalui lampiran email dengan teks
SC (yang mungkin berarti Screenshot) di badan pesan.
Setelah mengirim, malware menghubungi kotak surat
kae.mezhnosh@post.cz menggunakan protokol POP3 melalui SSL (port 995) dan mencari pesan dengan subjek yang sesuai dengan
id . Jika pesan seperti itu ada dan isi tidak kosong, malware mendekripsi dan mengirimkan pesan dengan
okey di badan untuk
sym777.g@post.cz . Isi dari pesan yang diterima sebelumnya dihapus dan diuraikan sebagai berikut:
string[] strArray = this._adr.Replace("B&", "").Replace("Db", "").Split('%'); string str1 = strArray[0]; string str2 = strArray[1];
Dua baris diperoleh: yang pertama adalah kata sandi, dan yang kedua adalah nama pengguna untuk alamat surat.
Kredensial baru digunakan untuk menghubungkan ke kotak surat yang diterima, mencari pesan dengan topik yang cocok dengan
id malvari, dan aplikasi dengan string
audev dalam nama file. Jika kedua kondisi terpenuhi, malware menyimpan aplikasi dan menghapus pesan dari server.
Log pesan dikirim ke
sym777.g@post.cz , dan pesan yang diterima melalui POP3 berasal dari penerima dengan data pengguna yang baru saja diterima.
Skema serangan mempersulit penyelidikan. Pertama, jika Anda memiliki bootloader dengan huruf, Anda tidak dapat terhubung ke kotak surat yang berisi langkah selanjutnya.
Kedua, jika Anda menerima kredensial untuk surat, Anda masih tidak bisa mendapatkan muatan berikutnya karena dihapus setelah penerimaan.
Ketika bootloader berhasil menulis lampiran ke disk, ia mengirim pesan melalui pos dengan
okey2 di tubuh dan lampiran
l.txt yang berisi
090 . File yang sama ditimpa dengan nol, dan malware mencoba untuk mendapatkan pesan lain. Jika ini berhasil, file
l.txt dikirim dengan
okey3 di badan. Isi lampiran adalah direktori dan nama file. Malvar memindahkan file audev ke alamat ini. Akhirnya, malware mengirim email dengan
okey4 di badan dan
l.txt di lampiran. Ini meluncurkan file yang dapat dieksekusi,
audev.exe, dan memeriksa keberadaan garis
audev dalam daftar proses.
Process.Start(this.rn); foreach (Process process in Process.GetProcesses()) { if (process.ProcessName.Contains("audev")) }
Jika nama tersebut ditemukan, surat terakhir akan dikirim, yang berisi isi
okey5 dan
l.txt di lampiran. Akhirnya,
l.txt dan
set.txt dihapus, kunci registri Windows yang dibuat dihapus, dan program berakhir.
Pengunduh Email Delphi
Peran utama dari bootloader adalah menilai pentingnya sistem yang dikompromikan dan, jika tampaknya menarik, muat dan jalankan bootloader Zebrocy terbaru.
File biner ditulis dalam Delphi dan dikemas menggunakan UPX. Definisi lengkap objek
TForm1 dapat ditemukan di bagian dengan sumber dayanya, ini menunjukkan beberapa parameter konfigurasi yang digunakan. Bagian berikut ini menjelaskan inisialisasi, kemampuan, dan protokol jaringan bootloader.
Inisialisasi
Pertama, dekripsi set string yang merupakan alamat email dan kata sandi. Operator menerapkan algoritma enkripsi
AES ECB . Setiap baris didekripsi di tempat heksadesimal, di mana empat byte pertama sesuai dengan ukuran akhir dari baris yang didekripsi (garis yang didekripsi pada bagian akhir mungkin mengandung beberapa indentasi). Objek
TForm1 berisi dua kunci AES: yang pertama digunakan untuk mengenkripsi data, dan yang kedua digunakan untuk mendekripsi.
Alamat email dan kata sandi digunakan oleh operator untuk mengirim perintah ke malvari, serta untuk memperoleh informasi yang dikumpulkan dari komputer korban. Protokol komunikasi SMTP dan POP3 diterapkan - baik melalui SSL. Untuk menggunakan OpenSSL, malware menjatuhkan dan menggunakan dua pustaka dinamis OpenSSL:
libeay32.dll (98c348cab0f835d6cf17c3a31cd5811f86c0388b) dan
ssleay32.dll (6d981d71895581dfb103170486b8614f7f203bdc) .
Gambar 7. Properti OpenSSL DLLHarap dicatat bahwa semua file dibuang ke direktori kerja malware
: C: \ Users \ Public \ .
Kegigihan diberikan selama eksekusi pertama malvari melalui
teknik penulisan skrip entri yang terkenal. File dengan skrip
registrasi.bat dibuat dan beberapa baris ditulis dari objek
TForm1 . Script terakhir adalah sebagai berikut:
reg add HKCU\Environment /v "UserInitMprLogonScript" /t REG_EXPAND_SZ /d "C:\Users\Public\Videos\audev.exe" /f del C:\Users\Public\Videos\registr.bat exit
Last but not least, malware menciptakan
id , dengan cara yang sama seperti dalam biner Zebrocy yang dijelaskan sebelumnya. Itu mendapatkan nama pengguna menggunakan
GetUserNameW Windows API dan menambahkan nomor seri drive C: \ ke awal.
Kemungkinan
Mengingat bahwa ada beberapa kondisi dan prosedur untuk mengumpulkan informasi tentang korban, berikut ini adalah deskripsi dari berbagai kemampuannya. Konfigurasi pemindaian disimpan dalam objek
TForm1 , di mana tujuh kemungkinan berbeda untuk mengumpulkan informasi dari komputer korban dikelompokkan.
Dimulai dengan pemindaian sederhana, informasi pertama yang dapat diperoleh malware terkait dengan file dengan ekstensi berikut:
.docx, .xlsx, .pdf, .pptx, .rar, .zip, .zip, .jpg, .bmp, .tiff . Untuk setiap file yang ditemukan pada disk, malware menerima jalur lengkap dan tanggal modifikasi terakhir. Informasi ini dienkripsi menggunakan kunci AES, yang telah kita bicarakan sebelumnya, dan disimpan dalam file
0.txt . Pemindaian lain ditujukan pada ekstensi
.dat, .json, .db dan, seperti dalam kasus sebelumnya, mendapatkan path lengkap dan tanggal terakhir file diubah. Itu kemudian mengenkripsi mereka dan menyimpannya di file
57.txt .
Daftar proses yang berjalan adalah fitur lain dari malvari yang memungkinkan Anda untuk menyimpan informasi dalam file
08.txt . Ini terlihat seperti ini:
======Listing_of_processes======= [System Process] System smss.exe csrss.exe wininit.exe csrss.exe winlogon.exe services.exe lsass.exe […]
File
i.txt mengumpulkan informasi umum tentang komputer korban, serta beberapa informasi tentang malvari (nomor versi dan jalur yang digunakan untuk menjalankannya). Lihat contoh di bawah ini:
v7.00 C:\Users\Public\Videos\audev.txt ============================================ Log_Drivers: C: fixed; size= 102297 Mb, free=83927 Mb S/N: [redacted] ================================================== OSV: Windows 7 WinType: 32 WinDir: C:\Windows Lang: English (United States) TZ: UTC1:0 Romance Standard Time HostN: [redacted]-PC User: [redacted] ===============S_LIST===================== C:\Program Files\Common Files C:\Program Files\desktop.ini C:\Program Files\DVD Maker C:\Program Files\Internet Explorer C:\Program Files\Microsoft.NET C:\Program Files\MSBuild C:\Program Files\Reference Assemblies C:\Program Files\Uninstall Information C:\Program Files\Windows Defender […]
Malware dapat mengambil tangkapan layar, yang disimpan dalam format
2 \ [YYYY-mm-dd HH-MM-SS] -Image_001.jpg , dan menghasilkan file lain
2 \ sa.bin , diisi dengan daftar jalur ke file semua tangkapan layar yang diambil. Opsi terakhir adalah daftar komponen jaringan dan data sistem, hasilnya ditulis dalam
4.txt .
Protokol jaringan
Pemuat surat Delphi adalah tambahan yang relatif baru untuk Zebrocy toolkit, ini menyediakan cara baru untuk mengekstrak data dan menerima perintah dari operator. Eksfiltrasi cukup sederhana, tetapi membuat banyak kebisingan di jaringan, karena file terenkripsi yang dikumpulkan sebelumnya dikirim melalui SMTPS, setiap versi file tiga kali.

Subjek pesan adalah
id korban, dan file dikirim sebagai lampiran dengan kata kunci yang sesuai dengan isi file. Harap dicatat bahwa untuk setiap file ada versi terenkripsi yang dikirim.

Tangkapan layar dan file untuk kedua pemindaian juga dikirim, tetapi dengan kata kunci yang berbeda.

Gambar 8. Contoh pesan dengan data yang dikirimSementara SMTP digunakan untuk exfiltrasi data, file biner terhubung ke
alamat surat
tomasso25@ambcomission.com melalui POP3 dan penguraian pesan. Isi surat berisi berbagai kata kunci yang ditafsirkan oleh malware sebagai perintah.

Setelah eksekusi, log debugger dan hasil dari perintah (jika ada) dikirim kembali ke operator. Misalnya, setelah perintah pemindaian, operator menerima file yang berisi daftar file dengan ekstensi yang cocok bersama dengan setiap file tersebut.
Sementara bootloader ini memiliki fungsi-fungsi backdoor, ia menjalankan sistem bootloader pada Delphi, yang sudah dikaitkan dengan grup ini, yang kami jelaskan di
artikel sebelumnya tentang Zebrocy.
Kesimpulan
Di masa lalu, kita telah melihat persimpangan Zebrocy dan malware Sednit tradisional. Kami menangkap Zebrocy membuang pintu belakang unggulan Sednit ke sistem XAgent, jadi kami menghubungkan kepenulisan Zebrocy dengan cybergroup ini dengan keyakinan tinggi.
Namun demikian, analisis file biner mengungkapkan kesalahan pada tingkat bahasa, serta pengembangan, menunjukkan tingkat kualifikasi yang berbeda dari penulis. Kedua bootloader menggunakan protokol surat untuk mengekstrak data dan memiliki mekanisme yang sama untuk mengumpulkan informasi yang sama. Namun, mereka membuat banyak suara di jaringan dan sistem, membuat banyak file dan mengirimkannya. Dalam proses menganalisis pemuat surat pada Delphi, tampak bagi kami bahwa beberapa fungsi telah hilang, tetapi garis masih tetap dalam file biner. Toolkit ini digunakan oleh tim Sednit, tetapi kami percaya bahwa ini sedang dikembangkan oleh tim lain - kurang berpengalaman dibandingkan dengan pencipta komponen Sednit tradisional.
Komponen Zebrocy adalah tambahan untuk toolkit Sednit, dan peristiwa baru-baru ini dapat menjelaskan peningkatan penggunaan aktif binari Zebrocy alih-alih malvari tradisional.
Indikator kompromi
Nama File, SHA-1, dan Deteksi oleh Produk ESET1. SCANPASS_QXWEGRFGCVT_323803488900X_jpeg.exe - 7768fd2812ceff05db8f969a7bed1de5615bfc5a -
Win32 / Sednit.ORQ2. C: \ Users \ public \ Pictures \ scanPassport.jpg - da70c54a8b9fd236793bb2ab3f8a50e6cd37e2df
3. C: \ Users \ Public \ Documents \ AcrobatReader. {Exe, txt} - a225d457c3396e647ffc710cd1edd4c74dc57152 -
MSIL / Sednit.D4. C: \ Users \ Public \ Videos \ audev.txt - a659a765536d2099ecbde988d6763028ff92752e -
Win32 / Sednit.CH5.% TMP% \ Indy0037C632.tmp - 20954fe36388ae8b1174424c8e4996ea2689f747 -
Win32 / TrojanDownloader.Sednit.CMR6.% TMP% \ Indy01863A21.tmp - e0d8829d2e76e9bb02e3b375981181ae02462c43 -
Win32 / TrojanDownloader.Sednit.CMQEmailcarl.dolzhek17@post.cz
shinina.lezh@post.cz
P0tr4h4s7a@post.cz
carl.dolzhek17@post.cz
sym777.g@post.cz
kae.mezhnosh@post.cz
tomasso25@ambcomission.com
kevin30@ambcomission.com
salah444@ambcomission.com
karakos3232@seznam.cz
rishit333@ambcomission.com
antony.miloshevich128@seznam.cz