ESET menemukan bankir BackSwap menggunakan metode manipulasi browser baru

Trojans Perbankan dalam beberapa tahun terakhir telah kehilangan popularitas di kalangan penjahat cyber. Salah satu alasannya adalah pengembangan teknologi perlindungan untuk vendor antivirus dan pengembang browser web. Sulit untuk melakukan serangan dengan bantuan seorang bankir, itulah sebabnya banyak penulis virus beralih ke alat yang lebih sederhana dan lebih menguntungkan: enkripsi, penambang, dan perangkat lunak untuk mencuri mata uang digital.

Banyak, tetapi tidak semua. Kami telah menemukan keluarga bankir baru menggunakan teknik baru untuk memanipulasi browser. Alih-alih secara rumit memasukkan kode ke dalam proses browser untuk memantau aktivitasnya, malware menangkap peristiwa Windows dalam siklus tunggu pesan untuk memeriksa nilai-nilai objek yang terkait dengan operasi perbankan.


Setelah ditemukan bekerja dengan perbankan online, malware menyuntikkan JavaScript jahat ke halaman web - melalui konsol pengembang di browser, atau langsung ke bilah alamat. Operasi dilakukan tanpa sepengetahuan dan partisipasi pengguna. Sekilas, skema sederhana memungkinkan Anda memintas mekanisme canggih untuk melindungi browser dari serangan kompleks.

Pendahuluan


Kami pertama kali memperhatikan cybergroup ini pada Januari 2018, ketika ia membagikan perkembangan awal - misalnya, sebuah program untuk mencuri mata uang kripto dengan mengubah alamat dompet di clipboard. Grup ini terlibat dalam cryptocurrency selama beberapa bulan, setelah itu merilis versi pertama bankir - mulai 13 Maret, produk antivirus ESET akan mendeteksinya sebagai Win32 / BackSwap.A.

Pada grafik di bawah ini, Anda dapat melihat lonjakan tajam dalam pendeteksian dibandingkan dengan proyek sebelumnya, menurut statistik kami. Penulis meningkatkan bankir dan merilis versi baru hampir setiap hari (dengan istirahat untuk akhir pekan).

Gambar 1. Temukan Win32 / BackSwap.A dan proyek-proyek sebelumnya yang terkait

Distribusi dan eksekusi


Win32 / BackSwap.A didistribusikan dalam email spam yang berisi pemuat JavaScript yang dikaburkan dari keluarga Nemucod dalam lampiran. Saat ini, buletin ini ditargetkan untuk pengguna dari Polandia.

Kami sering menemukan pada mesin korban lain Win32 / TrojanDownloader.Nymaim bootloader terkenal, mungkin menyebar dengan cara yang sama. Saat ini, kami tidak tahu apakah kebetulan atau keluarga ini saling terkait.

Muatan dikirim sebagai versi modifikasi dari aplikasi yang sah, sebagian ditulis ulang oleh komponen jahat. Aplikasi yang digunakan untuk perubahan modifikasi secara teratur - kami mengamati TPVCGateway, SQLMon, DbgView, WinRAR Uninstaller, 7Zip, OllyDbg, dan FileZilla Server dalam kualitas ini.

Aplikasi ini dimodifikasi sedemikian rupa sehingga beralih ke kode berbahaya setelah inisialisasi. Untuk melakukan ini, penulis menambahkan pointer ke komponen berbahaya dalam tabel fungsi _initterm() , bagian dalam runtime library C, yang menginisialisasi variabel global dan bagian lain dari program sebelum memanggil fungsi main ().


Gambar 2. Array pointer _initterm dari aplikasi yang sah, di mana ditambahkan pointer ke bankcode shellcode

Metode ini menyerupai trojanisasi; perbedaannya adalah bahwa dalam kasus kami aplikasi asli berhenti berfungsi setelah menginisialisasi malvari. Tujuan dari metode ini tidak menutupi dari pengguna, tetapi lebih menangkal deteksi dan penelitian. Analis merasa lebih sulit untuk mendeteksi bankir ini, karena banyak alat teknik terbalik, seperti IDA Pro, menunjukkan fungsi main () asli sebagai permulaan yang sah dari kode aplikasi. Bukan fakta bahwa analis pada pandangan pertama akan melihat sesuatu yang mencurigakan.

Payload adalah objek kode biner posisi-independen dengan data tertanam. String karakter disimpan dalam teks biasa, yang memungkinkan Anda untuk mengganti jejak yang sudah halus, karena semua API Windows yang diperlukan dicari dengan hashing. Pada awal pekerjaan, malware menyediakan ketekunan dengan menyalin sendiri ke folder startup, setelah itu ia beralih ke fungsi bankir.

Metode injeksi tradisional


Seorang bankir biasa yang mencuri dana dari akun korban melalui antarmuka perbankan online memperkenalkan dirinya atau modul khusus ke dalam ruang alamat dari proses browser. Untuk sejumlah alasan, ini bukanlah tugas yang mudah. Pertama-tama, injeksi dapat dicegat oleh produk antivirus. Selain itu, kedalaman bit dari modul yang diterapkan harus bertepatan dengan kedalaman bit browser - modul 32-bit tidak boleh tertanam dalam proses 64-bit dan sebaliknya. Akibatnya, serangan memerlukan dua versi modul yang sama - 32- / 64-bit.

Setelah injeksi berhasil, modul perbankan harus mendeteksi fungsi yang terkait dengan browser dan mencegatnya. Dia membutuhkan fungsi yang bertanggung jawab untuk mengirim dan menerima permintaan HTTP dalam format teks biasa sebelum enkripsi dan setelah dekripsi, masing-masing. Kompleksitas menemukan fitur bervariasi dari browser ke browser. Di Mozilla Firefox, mereka diekspor oleh perpustakaan nss3.dll, dan alamat mereka mudah ditemukan dengan nama terkenal mereka. Google Chrome dan browser berbasis Chromium lainnya menyembunyikan fitur ini. Ini memaksa penulis virus untuk membuat skema khusus yang ditujukan untuk versi browser tertentu dan mengubah taktik ketika versi baru dirilis.

Jika fungsi ditemukan dan intersepsi dibuat (dan solusi antivirus tidak mendeteksi itu), bankir dapat mengubah lalu lintas HTTP atau mengarahkan korban ke situs yang mensimulasikan sumber daya perbankan online yang sah, memalsukan sertifikat. Metode serupa digunakan oleh Trojans Dridex perbankan terkenal, Ursnif, Zbot, Trickbot, Qbot dan banyak lainnya.

Metode manipulasi browser baru


Win32 / BackSwap.A mengimplementasikan pendekatan yang sama sekali berbeda. Bunker menggunakan elemen shell grafis Windows dan meniru input pengguna. Metode ini mungkin tampak sepele, tetapi efektif karena memungkinkan Anda untuk memecahkan masalah injeksi tradisional yang diketahui. Pertama, malware tidak berinteraksi dengan browser di tingkat proses. Berkat ini, tidak perlu hak istimewa khusus dan melewati antivirus yang melindungi terhadap injeksi konvensional. Keuntungan kedua bagi penyerang adalah bahwa bankir tidak bergantung pada arsitektur browser atau versinya; Satu kode berfungsi untuk semua orang.

Malware melacak URL halaman yang dikunjungi dengan menyetel kait acara untuk serangkaian peristiwa relevan tertentu yang tersedia melalui loop tunggu pesan Windows, seperti EVENT_OBJECT_FOCUS, EVENT_OBJECT_SELECTION, EVENT_OBJECT_NAMECHANGE dan beberapa lainnya. Pawang mencari nilai URL dengan mencari objek string yang dimulai dengan HTTP yang diperoleh dengan memanggil metode get_accValue dari antarmuka peristiwa IAccessible .


Gambar 3. Penerimaan yang digunakan untuk mendapatkan URL halaman saat ini di browser. Alamat-alamat ini diperoleh dengan memeriksa substring [ht] tp [s] (disorot dengan warna merah)

Kemudian Win32 / BackSwap. Mencari alamat yang terkait dengan bank dan header jendela browser yang menunjukkan bahwa pengguna sedang mempersiapkan transfer uang.


Gambar 4. Bankir mencari garis kode yang terkait dengan bank tertentu. Baris pertama adalah judul jendela, yang kedua adalah bagian URL

Setelah menemukan yang diinginkan, bankir mengunduh JavaScript jahat yang sesuai dengan bank tertentu dan menyuntikkannya ke browser. Injeksi dilakukan dengan cara yang sederhana namun efektif.

Dalam sampel yang lebih lama, Win32 / BackSwap.A menyisipkan skrip berbahaya ke clipboard dan mensimulasikan keystroke untuk membuka konsol pengembang (CTRL + SHIFT + J di Google Chrome, CTRL + SHIFT + K di Mozilla Firefox), lalu tempelkan konten buffer (CTRL + V) dan tekan ENTER untuk menjalankan konten konsol. Malware kemudian mengulangi kombinasi tombol untuk menutup konsol. Pada saat ini, jendela peramban menjadi tidak terlihat - pengguna biasa kemungkinan besar akan berpikir bahwa peramban akan membeku selama beberapa detik.

Dalam versi baru, sirkuit ditingkatkan. Alih-alih berinteraksi dengan konsol pengembang, skrip berbahaya dieksekusi langsung dari bilah alamat melalui protokol JavaScript khusus , fungsi yang kurang dimanfaatkan yang didukung sebagian besar browser. Bankir meniru menekan CTRL + L untuk memilih bilah alamat, HAPUS untuk menghapus bidang, "memasukkan" karakter dalam "javascript" melalui panggilan ke SendMessageA dalam satu lingkaran, dan kemudian menyisipkan skrip berbahaya menggunakan kombinasi CTRL + V. Script dieksekusi setelah "menekan" ENTER. Di akhir proses, bilah alamat dihapus untuk menghapus jejak kompromi.

Pada Gambar 5, Anda dapat melihat bagian dari kode yang disuntikkan di konsol. Pertama, Win32 / BackSwap.A mendefinisikan browser dengan memeriksa nama kelas dari jendela yang dipilih (ditandai dengan warna biru). JavaScript berbahaya disalin ke buffer (ditandai dengan warna merah). Kemudian nilai transparansi jendela browser diubah menjadi "3", yang membuatnya tidak terlihat (ditandai dengan warna ungu). Bagian yang terkait dengan fungsi ToggleBrowserConsole , yang menghidupkan dan mematikan konsol, ToggleBrowserConsole .


Gambar 5. Injeksi Skrip

Win32 / BackSwap. Mendukung serangan pada Google Chrome dan Mozilla Firefox, dukungan Internet Explorer telah ditambahkan dalam versi terbaru. Metode ini cocok untuk sebagian besar browser dengan konsol pengembang atau kemampuan untuk mengeksekusi kode JavaScript dari bilah alamat (fungsi browser standar).

Tiga browser yang disusupi memiliki fitur keamanan menarik yang dirancang untuk mencegah serangan Self-XSS : ketika pengguna mencoba menempelkan teks yang disalin mulai dengan "javascript:" ke bilah alamat, awalan protokol dihapus dan harus secara manual dimasukkan lagi untuk menjalankan skrip. Win32 / BackSwap.A melewati rintangan ini dengan mensimulasikan input karakter awalan di bilah alamat sebelum menempelkan skrip berbahaya yang disalin.

Alat keamanan lain diterapkan di Mozilla Firefox. Peramban secara default melarang penyalinan skrip ke konsol; alih-alih, ini menampilkan pemberitahuan tentang kemungkinan risiko dan memaksa pengguna untuk terlebih dahulu memasukkan frasa β€œizinkan tempel” untuk memungkinkan penyisipan karakter yang disalin. Untuk memintas langkah keamanan ini, Win32 / BackSwap.A menyediakan untuk eksekusi perintah shell (Gambar 6), yang membuat perubahan pada prefs.js konfigurasi prefs.js dan menghapus perlindungan ini.


Gambar 6. Perintah shell yang menghilangkan perlindungan dari memasukkan skrip ke konsol Firefox

Kode berbahaya JavaScript


Win32 / BackSwap.A menggunakan skrip khusus untuk masing-masing bank target. Karena semua bank memiliki situs yang berbeda, kodenya berbeda dan memiliki variabel yang berbeda. Naskah disuntikkan ke halaman di mana, menurut bankir, persiapan transfer uang dilakukan. Script yang diimplementasikan diam-diam mengganti nomor akun penerima dengan yang lain, dan ketika korban mengirim transfer, uang akan masuk ke akun penyerang. Penanggulangan terhadap transfer yang tidak sah (otentikasi dua faktor) tidak berdaya, karena pemegang akun mengonfirmasi pengiriman dana.

Para penulis Win32 / BackSwap.A menulis skrip untuk bekerja dengan lima bank Polandia: PKO Bank Polski, Bank Zachodni WBK SA, mBank, ING, dan Pekao. Operator menghapus beberapa bank dari daftar sasaran - di sebagian besar versi baru ada tiga bank yang tersisa: PKO BP, mBank dan ING. Dalam versi yang lebih lama, penyerang mengirim nomor akun penerima dari server C&C di situs WordPress yang diretas. Dalam versi baru, angka-angka itu sendiri disimpan dalam skrip berbahaya Akun sering berubah - nomor akun baru digunakan di hampir setiap kampanye baru.

Bankir tertarik pada transfer dalam kisaran tertentu - biasanya dari 10.000 hingga 20.000 zlotys Polandia (168.000–337.000 rubel). Skrip tidak hanya menggantikan nomor akun penerima, tetapi juga mengganti bidang input dengan yang palsu - pengguna melihat nomor yang benar dan tidak mencurigai apa pun.


Gambar 7. Bagian dari kode JavaScript berbahaya. Situs yang ditandai dengan warna merah bertanggung jawab untuk memeriksa jumlah transfer dan mengganti nomor akun penerima

Kesimpulan


Win32 / BackSwap.A membuktikan bahwa konfrontasi antara industri keamanan dan penulis virus tidak selalu memerlukan teknik dan taktik canggih yang baru. Browser meningkatkan perlindungan terhadap injeksi kode, sehingga penulis malware beralih ke metode serangan lainnya, dan hanya satu yang diterapkan di Win32 / BackSwap.A.

Produk antivirus ESET mendeteksi ancaman seperti Win32 / BackSwap.A.

Spesialis ESET memberi tahu pengembang tentang browser yang dikompromikan tentang metode serangan baru.

IoCs


9BC4C1D5403DDD90712CE87225490A21D1EDC516 JS/Nemucod.EAN trojan
CF5A74C268661501156663F74CD5E20603B0F261 Win32/BackSwap.A trojan
6251F9AD0E5F551AC4A6B918EF366E86C4CCFDC4 Win32/BackSwap.A trojan
2DC9760A7C6E9D261C73EFB7B2604840734BC058 Win32/BackSwap.A trojan
A68901D0D8C1247FF280F9453E3AE45687C57566 Win32/BackSwap.A trojan (JavaScript)

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


All Articles