Hơn 6.000 trang web WordPress bị tấn công để cài đặt các plugin mã độc đánh cắp thông tin

Just a SOC Analyst ^^
Mã độc ClickFix đang lan truyền qua các plugin WordPress giả, hiển thị các thông báo cập nhật trình duyệt giả để lừa người dùng tải mã độc. Chiến dịch ClickFix bắt đầu từ tháng 8/2023, đến nay đã xâm nhập hơn 6.000 trang web trên toàn cầu.
1. Cách thức tấn công
Các nhà nghiên cứu bảo mật đang theo dõi một mã độc mới có tên là ClickFix – mã độc giả mạo trình cập nhật trình duyệt, được phân phối qua các plugin WordPress giả.
Kẻ tấn công bắt đầu các chiến dịch tấn công bằng cách đăng nhập vào các trang web với thông tin đăng nhập bị đánh cắp và cài đặt các plugin giả lên trang web. Khi được cài đặt, các plugin này sẽ tải JavaScript độc hại. Những mã JavaScript này hiển thị cho nạn nhân các thông báo cập nhật trình duyệt giả, lừa nạn nhân cài đặt mã độc trên máy tính của mình (thường là các loại trojan truy cập từ xa và các phần mềm đánh cắp thông tin như Vidar Stealer và Lumma Stealer).
2. Phân tích chi tiết
Tên các plugin giả mạo
Các plugin giả này sử dụng các tên chung chung như “Advanced User Manager” hoặc “Quick Cache Cleaner”. Thư mục của chúng chỉ chứa 3 tệp nhỏ:

Hình 1: Các thành phần của plugin độc hại
Các nhà nghiên cứu nhanh chóng nhận ra mẫu đặt tên của các file JavaScript, bao gồm chữ cái đầu tiên của mỗi từ trong tên plugin, kèm theo "-script.js". Ví dụ, plugin "Advanced User Manager" sẽ chứa file aum-script.js.
Quy ước đặt tên này cho phép các nhà nghiên cứu phát hiện ra nhiều plugin độc hại, bao gồm các plugin như Easy Themes Manager, Content Blocker, và Custom CSS Injector. Trong một số trường hợp, file JavaScript độc hại đơn giản chỉ được đặt tên là script.js:

Hình 2: File name của các plugin độc hại
Hầu hết các plugin độc hại này có trên 500 lượt phát hiện trên PublicWWW vào thời điểm hiện tại. Dựa trên các thống kê, ước tính có hơn 6.000 tên miền trên toàn thế giới đã bị ảnh hưởng bởi mã độc này.
Plugin code
Code của các plugin giả mạo này rất đơn giản, chỉ bao gồm một số dòng PHP với thông tin giả như tên plugin, URL, mô tả và tác giả. Mặc dù trông có vẻ hợp lệ, nhưng các URL và thông tin này đều là giả mạo.

Hình 3: Thông tin trong code của plugin giả mạo
Mã PHP thiết lập một hook wp_enqueue_scripts để chèn JavaScript độc hại vào trang WordPress. JavaScript này sẽ tải code từ một URL độc hại, dẫn đến hiển thị các thông báo giả mạo yêu cầu cập nhật trình duyệt nhằm lừa người dùng tải mã độc.

Hình 4: Đoạn code thực hiện hành vi tải mã độc vào trang WordPress
Các plugin giả mạo có thể thêm nhiều bản sao vào cùng một trang web nếu có nhiều biến thể, và mỗi plugin đều chứa một file .DS_Store giống hệt nhau (không có thông tin nhưng có thể dùng làm dấu hiệu nhận diện).
Script độc hại
Script này tải thư viện ethers.js để tương tác với blockchain Ethereum và gọi tới smart contract trên Binance Smart Chain (BSC) để lấy mã độc. Khi smart contract được giải mã, JavaScript sẽ liên lạc với một máy chủ độc hại để tải đoạn code pop up giả mạo thông báo cập nhật trình duyệt.

Hình 5: Code JS tải mã độc hại

Hình 6: Pop up giả mạo thông báo cập nhật trình duyệt
Ngoài ra, trên nhiều trang vẫn còn file JavaScript độc hại từ các plugin này, nhưng nội dung của các file này đã bị xoá và chỉ chứa một hàm trống, có thể là kết quả của quá trình mã độc tự dọn dẹp.
3. Khuyến nghị
Phía FPT Threat Intelligence khuyến nghị tổ chức và cá nhân một số cách để phòng chống chiến dịch này:
Tăng cường đào tạo nhận thức về lừa đảo xã hội: Thực hiện đào tạo thường xuyên để người dùng nhận thức được các chiến thuật lừa đảo và tấn công giả mạo.
Cài đặt phần mềm diệt virus và chống mã độc cập nhật: Bảo vệ các thiết bị bằng cách đảm bảo phần mềm bảo mật luôn được cập nhật để đối phó với các mối đe dọa mới.
Sử dụng bộ lọc email mạnh mẽ: Ngăn chặn email lừa đảo và tệp đính kèm độc hại bằng cách áp dụng bộ lọc email đáng tin cậy.
Chặn truy cập vào các trang web độc hại: Áp dụng giải pháp lọc web để ngăn người dùng vô tình truy cập các trang web có chứa mã độc.
Triển khai tường lửa và hệ thống phát hiện/ngăn chặn xâm nhập (IDS/IPS): Theo dõi và chặn các lưu lượng mạng độc hại nhằm bảo vệ mạng nội bộ của tổ chức.
Phân đoạn mạng: Giới hạn sự lây lan của mã độc trong tổ chức bằng cách phân tách các khu vực mạng khác nhau.
Áp dụng nguyên tắc đặc quyền tối thiểu (PoLP): Hạn chế quyền truy cập của người dùng chỉ ở mức cần thiết để giảm nguy cơ xâm nhập.
Hạn chế sử dụng clipboard ở các khu vực nhạy cảm: Triển khai chính sách bảo mật để giám sát và ngăn chặn việc sử dụng clipboard không cần thiết trong các môi trường nhạy cảm.
Xác thực đa yếu tố (MFA): Tăng cường bảo mật bằng cách yêu cầu người dùng xác minh danh tính qua nhiều phương thức khi truy cập hệ thống nhạy cảm.
Cập nhật hệ điều hành và ứng dụng: Đảm bảo rằng tất cả các hệ thống, phần mềm và ứng dụng luôn được vá các lỗ hổng bảo mật mới nhất.
Giám sát liên tục hệ thống và log mạng: Phân tích thường xuyên để phát hiện sớm các dấu hiệu xâm nhập hoặc hoạt động bất thường.
Mã hóa dữ liệu nhạy cảm: Bảo vệ dữ liệu bằng cách mã hóa khi truyền tải và lưu trữ để tránh truy cập trái phép.
Sao lưu dữ liệu định kỳ và lưu trữ an toàn: Thực hiện sao lưu thường xuyên để phục hồi dữ liệu nhanh chóng trong trường hợp xảy ra tấn công hoặc sự cố hệ thống.
4. IOCs liên quan đến ClickFix
Files
| File Name |
| /wp-content/plugins/admin-bar-customizer/abc-script.js |
| /wp-content/plugins/advanced-widget-manage/awm-script.js |
| /wp-content/plugins/content-blocker/cb-script.js |
| /wp-content/plugins/custom-css-injector/cci-script.js |
| /wp-content/plugins/custom-footer-generator/cfg-script.js |
| /wp-content/plugins/custom-login-styler/cls-script.js |
| /wp-content/plugins/dynamic-sidebar-manager/dsm-script.js |
| /wp-content/plugins/easy-themes-manager/script.js |
| /wp-content/plugins/advanced-user-manager/aum-script.js |
| /wp-content/plugins/form-builder-pro/fbp-script.js |
| /wp-content/plugins/quick-cache-cleaner/qcc-script.js |
| /wp-content/plugins/responsive-menu-builder/rmb-script.js |
| /wp-content/plugins/seo-optimizer-pro/sop-script.js |
| /wp-content/plugins/simple-post-enhancer/spe-script.js |
| /wp-content/plugins/social-media-integrator/smi-script.js |
Plugin
| Plugin Name |
| google-seo-enchancer |
| lite-speed-classic |
| monster-insights-classic |
| rank-booster-pro |
| search-rank-enhancer |
| seo-booster-pro |
| word-fense-classic |
| admin-bar-customizer |
| advanced-user-manager |
| advanced-widget-manage |
| content-blocker |
| custom-css-injector |
| custom-footer-generator |
| custom-login-styler |
| dynamic-sidebar-manager |
| easy-themes-manager |
| form-builder-pro |
| quick-cache-cleaner |
| responsive-menu-builder |
| seo-optimizer-pro |
| simple-post-enhancer |
| social-media-integrator |
Hashes
| Hashes | Hash Type | Description |
| 194577a7e20bdcc7afbb718f502c134c | MD5 | .DS_Store |
| 602e1f42d73cadcd73338ffbc553d5a2 | MD5 | ClickFix .js files |
| d65165279105ca6773180500688df4bdc69a2c7b771752f0a46ef120b7fd8ec3 | SHA256 | .DS_Store |
| a4ad384663963d335a27fa088178a17613a7b597f2db8152ea3d809c8b9781a0 | SHA256 | ClickFix .js files |
Smart Contract IDs
| IDs |
| 0xa6165aa33ac710ad5dcd4f4d6379466825476fde |
| 0xdf20921ea432318dd5906132edbc0c20353f72d6 |






