Selamat Datang Di Avast! Indonesia | Kabar Gembira Bahwa Avast! Indonesia Telah Menghadirkan Forum Untuk Tanya Jawab Yang Ingin Join Silahkan Klik Disini

Jumat, 15 Februari 2013

Malware: Dollar Setara Tilde Lapangan Kurung

Baru-baru ini kami mengalami sepotong sangat mencurigakan kode pada beberapa Joomla bertenaga halaman web. Kode tampak seolah-olah kacau dan tanpa arti khusus, dan mulai seperti ini:



Setelah pengamatan lebih dekat, hal-hal aneh beberapa yang perlu dicatat. Pertama, tidak ada simbol alphanumerical harus dilihat dalam setiap bagian dari kode. Kedua, pada baris sebelum kode ini dimulai, sebenarnya ada tag HTML menunjukkan awal kode Javascript (<script>), didahului oleh 37 tab. Oleh karena itu, ketika membuka file yang terinfeksi dalam editor teks, seseorang tidak bisa biasanya melihat tag awal, karena digeser semua jalan ke kanan. Untuk dapat melihatnya, Anda juga harus gulir horizontal, atau memiliki bungkus kata pada. Trik yang sama dilakukan dengan tag penutup skrip juga. Mengapa ada orang yang mencoba untuk menyembunyikan tag? Jawabannya sederhana, untuk mengelabui orang untuk berpikir ini tidak benar-benar kode Javascript.

Jadi apa ini bagian dari kode lakukan? Pada pandangan pertama, Anda tidak bisa mengatakan. Tanpa huruf atau angka, tanpa panggilan yang jelas dari built-in fungsi, dapat potongan kode ini benar-benar melakukan sesuatu? Kami akan mulai dengan yang paling mudah dan melangkah lebih jauh pada. Beberapa karakter pertama pergi seperti ini:


$=~[]; 

Tanda kurung siku kosong membuat array dengan 0 elemen. Tapi ini juga dapat diartikan sebagai 0 dalam beberapa kasus. Dengan meniadakan bitwise (tanda tilde ~) nol, kita mendapatkan -1, yang kita simpan dalam variabel yang disebut $. Kami sekarang memiliki karakter alfanumerik pertama kami. Selanjutnya kita mendapatkan ini: 


Karena kurung keriting, kita dapat melihat script adalah menciptakan sebuah benda (sekali lagi, nama benda ini adalah $). Pernyataan pertama menyimpan nilai + + $ ke variabel obyek bernama tiga menggarisbawahi ___. + + $ Sama dengan 0 (perhatikan bahwa dari titik ini, $ variabel berisi nilai 0), jadi jika kita perlu menggunakan karakter nol dalam script kami dari sekarang, kita bisa menyebutnya dengan $. ___ (Object.property). Baris berikutnya bahkan lebih menarik. Ini menyimpan nilai ([]! + "") [$] Ke $ $ $ $. [] Adalah array kosong, dengan meniadakan variabel non-kosong kita palsu. Jika kita menambahkan string kosong ke boolean, maka akan mengubah jenis ke string, sehingga string "palsu". dari ini, kita mengambil huruf pertama ([0] berarti huruf pertama, [1] kedua) Voila, properti $ $ $ $ $ dari object sekarang memegang nilai. .. dari huruf kecil "f" surat Dalam cara yang sama, kita membuat angka 0-9 dan huruf af dan menyimpannya sebagai properti obyek $ nama-nama sifat tidak acak, perhatikan bahwa jika kita bayangkan underscore sebagai nol dan dolar sebagai salah satu , nama properti adalah representasi biner dari nilai-nilai yang mereka pegang. 



Kami memiliki alfabet dasar kita, sesuatu untuk membangun. Rapi! Apa selanjutnya? Dua baris berikutnya membangun dua kata kunci penting, "konstruktor" dan "kembali" dengan cara yang sama, di mana kami mampu menyimpan beberapa surat di atas. Langkah terakhir sebelum benar-benar decoding payload kami adalah untuk membuat fungsi $. $. Fungsi ini akhirnya digunakan untuk payload kami untuk dijalankan.



Wah! Perintah payload dijalankan dimulai dengan

  
yang dapat ditulis sebagai Fungsi (Fungsi (kembali ditambah Rangkaian karakter. Kita sudah memiliki karakter 0-9 dan af, serta karakter dalam kata-kata "konstruktor" dan "kembali", tapi bagaimana dengan orang lain? Trik lain yang rapi di sini Dalam kode di atas,. Anda dapat melihat urutan "\ \" + $ __ $ + $.. $ $ $ _ +. ___, yang diterjemahkan menjadi \ 160. nomor backslashed ditafsirkan sebagai karakter ASCII didefinisikan oleh perusahaan oktal nilai, sehingga 160 oktal = 112 desimal = huruf kecil "p". Mari kita menyatukan semua surat-surat dan kami akhirnya mendapatkan muatan yang sebenarnya!

Dengan memahami bagaimana obfuscator bekerja, saya telah mampu mengembangkan sebuah Deobfuscator sebagai produk sampingan (lihat bagian link di bawah).


Menggali Deeper - Payload

Ini cek pertama payload jika Anda memiliki "browser yang tepat" (yang menurut penulis payload berarti Chrome), mengambil semua link pada halaman Web Anda, menyimpannya dalam page_links variabel, dan kemudian menambahkan event onclick untuk semua link, tetapi dengan a href acak dari page_links. Dengan kata lain, ia mengocok semua penghubung link.
 





Bayangkan Anda memiliki halaman yang sangat sederhana dengan tiga item di menu: Home, About Me, dan Hubungi Kami. Anda mungkin ingin klik About Me, tapi ini bagian dari kode memanggil suatu peristiwa yang mengirimkan Anda untuk Hubungi Kami. Bukan berarti berbahaya, kan?

Ini tidak akan, jika ini adalah kode hanya disisipkan pada halaman web. Namun, terlepas dari link shuffler-kami, ada juga potongan kode ini di akhir file:

  
Ada sekitar 40 dari link ini dalam satu halaman web yang terinfeksi, dan tidak satupun dari mereka dapat dilihat secara normal (catatan "position: absolute; top:-10000px; kiri:-10000px"). Juga, script membuat referer satunya memastikan link dari div tertentu (dalam hal ini, link harus di <div id="mlk">) digunakan untuk "menimpa" link normal dalam sebuah halaman web.

Segera setelah Anda mengklik link apapun, Anda akan dibawa ke suatu tempat Anda tidak ingin menjadi. Semua link mengarah ke situs yang sangat mirip yang mengklaim dapat mencari beberapa halaman web (megaupload.com, rapidshare.com, dan
uploading.com) untuk file yang Anda butuhkan.




Ketika Anda klik untuk men-download dan masukkan captcha yang benar, Anda akan diarahkan ke turbodownloadz.com, yang saat ini diparkir di onlinefwd.com dan karena itu membuat uang keluar dari setiap pengunjung potensial. Namun, pada suatu titik waktu, domain ini dapat digunakan untuk mendistribusikan malware.

Bonus ditambahkan - link rel = "canonical"  

Tapi ini tidak cukup untuk penulis naskah. Mereka juga menambahkan baris ini (lagi bergeser dengan banyak tab keluar dari pandangan Anda) ke halaman Anda. 


Ini bagian dari kode memberitahu mesin pencari untuk menemukan di mana versi (original) kanonik halaman. Ini berarti jika robot mesin pencari mengunjungi halaman yang terinfeksi, itu mengatakan bahwa versi asli di tempat lain, dan indeks hanya ini versi aslinya. Jika Anda mencari kata kunci pada halaman Anda, mesin pencari malah akan mempresentasikan hasil dari versi "kanonik". Dengan kata lain, halaman yang terinfeksi tidak akan ditampilkan dalam hasil mesin pencari. 

 CATATAN: malware ini terdeteksi oleh avast! antivirus sebagai JS: Clicker-I [Trj].

Links:

- Untuk deobfuscate payload, Anda dapat menggunakan in-house Deobfuscator kami dikembangkan (http://dollar.zikin.cz/)
      
- The obfuscator digunakan untuk menyembunyikan payload adalah JJEncode oleh HASEGAWA Yosuke (http://utf-8.jp/public/jjencode.html).
  
- Payload dikaburkan juga telah dianalisis oleh ExtraExploit (http://extraexploit.blogspot.cz/2010/10/dollars-javascript-code-yet-another.html)