Các nhà nghiên cứu an ninh mạng vừa hé lộ về một chiến dịch mã độc ngân hàng tại Brazil chưa từng được ghi nhận trước đây, chuyên phân phối bộ công cụ mang tên KREMLIN.
Elastic Security Labs đang theo dõi hoạt động này dưới tên gọi REF9334. Hoạt động ít nhất từ tháng 5 năm 2025, kẻ tấn công đã sử dụng các mồi nhử giả mạo hàng chục ngân hàng Brazil để cài đặt tiện ích mở rộng độc hại trên Google Chrome và Microsoft Edge.
"Hệ sinh thái mã độc KREMLIN sử dụng các trình tải JavaScript đa giai đoạn, trình cài đặt C++ tùy chỉnh và các tiện ích mở rộng trình duyệt độc hại để đánh cắp thông tin đăng nhập, Session Token và dữ liệu nhạy cảm," các nhà nghiên cứu Cyril François và Andrew Pease cho biết trong một báo cáo kỹ thuật được chia sẻ với The Hacker News.
"Các tiện ích mở rộng trình duyệt độc hại này vượt qua cơ chế bảo vệ tính toàn vẹn của Chromium bằng cách thao túng Secure Preferences, tái tạo các HMAC cần thiết và các App-Bound encrypted hashes."
Một đặc điểm nổi bật của chiến dịch này là việc sử dụng Blockchain để che giấu hạ tầng do kẻ tấn công kiểm soát, tận dụng các Smart Contract của Ethereum làm dead drop resolvers nhằm cập nhật động các Command-and-Control (C2) endpoint và vị trí lưu trữ payload, giúp hạ tầng này khó bị đánh sập.
Quy trình lây nhiễm đa giai đoạn
Điểm khởi đầu của KREMLIN là một tệp JavaScript giả mạo tài liệu ngân hàng, hóa đơn hoặc văn bản công ty và được nạn nhân thực hiện thủ công. Khi chạy, nó sẽ kích hoạt trình tải đa giai đoạn. Trình tải này chỉ tiếp tục nếu xác định không nằm trong môi trường Sandbox hoặc máy ảo (Virtual Machine), sau đó tải xuống và cài đặt các payload bổ sung trước khi khởi chạy giai đoạn tiếp theo.
Giai đoạn thứ hai thực hiện bốn nhiệm vụ: thiết lập tính kiên trì (persistence) qua Scheduled Task, lấy vị trí tải xuống từ một Smart Contract Ethereum, tải các tệp nhị phân cần thiết và thực thi giai đoạn ba. Các URL payload chứa các chương trình sau:
- Payload cài đặt tiện ích mở rộng trình duyệt độc hại
- .NET PE Injector
- "SentinelMemoryScanner.exe", một tệp nhị phân hợp pháp của SentinelOne được dùng để DLL sideloading
Cụ thể, trình cài đặt C++ lợi dụng tệp nhị phân của SentinelOne để sideload payload chính không có chữ ký, giả danh "SentinelAgentCore.dll". Khi khởi chạy, DLL này thực hiện các bước kiểm tra lẩn tránh Sandbox và máy ảo tương tự như trình tải JavaScript bằng cách quét danh sách tiến trình đang chạy và kiểm tra phần cứng như số lượng CPU và dung lượng RAM.
Nếu phát hiện bất kỳ tiến trình nào trong danh sách đen, hoặc nếu hệ thống có ít hơn 2 CPU hoặc dưới 3 GB RAM, mã độc sẽ ngừng thực thi. KREMLIN cũng truy cập cùng một Smart Contract của Ethereum để lấy hai tên miền – volmira[.]site và zaviro[.]online – nhằm lấy phiên bản tiện ích ("1.0.0") và ID ("ndpbidppejfanjbhfgjlohfanbfbklff"). Tiện ích mở rộng này được đặt tên là "AVSync System Inc."
"Trước khi tải kho lưu trữ, mã độc kiểm tra xem tiện ích đã được cài đặt chưa. Nếu có, nó so sánh phiên bản hiện tại với phiên bản trên máy chủ," các nhà nghiên cứu cho biết. "Nó chỉ tải tiện ích mở rộng Chrome dưới dạng tệp ZIP khi không tìm thấy bản cài đặt cũ hoặc khi phiên bản có sự khác biệt."
Kỹ thuật vượt qua cơ chế bảo mật trình duyệt
Để cài đặt tiện ích trên trình duyệt Chromium, mã độc sử dụng kỹ thuật bypass tính toàn vẹn đã được công bố công khai mang tên Phantom Extension và GhostChrome-X. Kỹ thuật này giúp chỉnh sửa tệp Secure Preferences, bật chế độ nhà phát triển của Chrome và cập nhật đối tượng JSON "protection.macs" với siêu dữ liệu giả mạo để đăng ký tiện ích mở rộng độc hại mà không bị phát hiện.
Đáng chú ý, phương pháp này cũng từng được nhóm APT31 áp dụng trong chiến dịch cuối tháng 8 năm 2026, sử dụng bộ khai thác BlueMoon kết hợp các lỗ hổng Zero-Day của Chrome và Windows để cài đặt tiện ích GemStone đánh cắp thông tin.
Sau khi cài đặt thành công, KREMLIN bắt đầu thu thập dữ liệu trình duyệt và gửi về máy chủ C2 ("luizestrelhashapr[.]online:443"). Trước đó, nó yêu cầu các quyền truy cập sâu vào tab trình duyệt, Cookie, bộ nhớ và API webRequest, đồng thời tạo một mã định danh nạn nhân duy nhất lưu trong trình duyệt.
Lệnh điều khiển và thu thập dữ liệu
Sau khi thiết lập kênh WebSocket với máy chủ C2, tiện ích mở rộng này có thể thực hiện các lệnh:
- Chụp ảnh màn hình tab đang hoạt động và tải lên ảnh nén
- Liệt kê danh sách tab, tên miền và trạng thái hoạt động
- Đánh cắp Cookie, sessionStorage và localStorage
- Thu thập tới 1.000 mục lịch sử trình duyệt trong 15 ngày qua
- Trích xuất toàn bộ mã nguồn HTML của trang đang xem
- Tải xuống tệp HTML do kẻ tấn công kiểm soát
- Cập nhật lại cấu hình
Ngoài WebSocket, tiện ích cũng định kỳ thăm dò endpoint "/google_api/" bằng các yêu cầu giả dạng truy xuất tệp CSS. Các tệp này tương ứng với các lệnh như:
- 108766d0.css: Tải lên Cookie và bộ nhớ
- 41f7b187.css: Tải lên danh sách tab và trạng thái hoạt động
- 0f51ad2f.css: Tải lên ảnh chụp màn hình JPEG cùng URL trang và ID nạn nhân
- 81d47cb6.css: Lấy cấu hình mục tiêu và quy tắc chặn HTTP
Phạm vi ảnh hưởng và Network Canary
KREMLIN được đánh giá là đã hoạt động từ tháng 5 năm 2025, sử dụng cả các Trojan phổ biến như Pulsar RAT và Remcos RAT. Việc chuyển sang dùng Smart Contract của Ethereum bắt đầu từ tháng 5 năm 2026.
Để chống Sandbox, mã độc thực hiện kiểm tra Network Canary bằng cách cố tải trang từ một tên miền chưa đăng ký. Nếu nhận được phản hồi, nó hiểu rằng đang ở trong môi trường mô phỏng mạng của Sandbox và sẽ tự động crash để tránh bị phân tích.
Elastic cho biết họ đã đăng ký tên miền Network Canary này và phát hiện 1.515 hệ thống bị nhiễm đang cố gắng kết nối, với hơn 98% nạn nhân nằm tại Brazil.
Theo Elastic, việc thao túng cơ chế Network Canary này đã tạm thời làm suy yếu hệ thống phòng thủ của mã độc, giúp các chuyên gia có thêm thời gian để xác định và xử lý các điểm cuối bị lây nhiễm.