Khám phá Arkanix Stealer: Phần mềm đánh cắp thông tin được phát triển bằng C++ và Python

12:03 | 03/03/2026

Vào tháng 10/2025, hãng bảo mật Kaspersky phát hiện một loạt bài đăng trên diễn đàn web đen quảng cáo một phần mềm đánh cắp dữ liệu chưa từng được biết đến trước đây, với tên gọi là “Arkanix Stealer”, hoạt động theo mô hình MaaS (phần mềm độc hại dưới dạng dịch vụ), cung cấp cho tác nhân đe dọa quyền truy cập vào bảng điều khiển với các payload và số liệu thống kê có thể cấu hình. Bộ phần mềm này bao gồm một công cụ khai thác trên trình duyệt có tên ChromElevator, được biên dịch bằng ngôn ngữ C++ của Arkanix Stealer. Phiên bản này có nhiều tính năng, từ thu thập thông tin hệ thống đến đánh cắp dữ liệu ví tiền điện tử. Bên cạnh đó, hãng bảo mật cũng đã phát hiện ra phiên bản Python của Arkanix Stealer có khả năng sửa đổi cấu hình một cách linh hoạt. Phiên bản này thường được đóng gói và cung cấp cho kẻ tấn công nhiều phương pháp để phân phối mã độc. Dựa trên báo cáo của Kaspersky, bài viết này sẽ cùng khám phá về đặc điểm và hoạt động của Arkanix Stealer.

TỔNG QUAN

Lừa đảo trực tuyến

Như được đề cập, vào tháng 10/2025, một loạt bài đăng trên nhiều diễn đàn web đen mô tả chi tiết về các tính năng của Arkanix Stealer, trong đó bao gồm một liên kết đến máy chủ Discord, đóng vai trò là kênh liên lạc chính giữa kẻ điều hành và người dùng của phần mềm.

Hình 1. Quảng cáo về Arkanix Stealer

Phương thức lây nhiễm ban đầu vẫn chưa được xác định. Tuy nhiên, dựa trên một số tên tệp (như steam_account_checker_pro_v1.py, discord_nitro_checker.py và TikTokAccountBotter.exe) của các script loader mà Kaspersky thu được, có thể đánh giá cao rằng phương thức lây nhiễm ban đầu liên quan đến lừa đảo trực tuyến (phishing).

Python loader

Python loader là script chịu trách nhiệm tải xuống và thực thi phiên bản Python của phần mềm đánh cắp thông tin Arkanix Stealer. Các nhà nghiên cứu quan sát thấy cả các script Python dạng văn bản thuần túy và các script được đóng gói bằng PyInstaller hoặc Nuitka, tất cả đều có chung một vectơ thực thi và obfuscated một phần.

Các script này thường đóng vai trò là mồi nhử. Theo các nhà nghiên cứu, phần lớn chúng có chức năng tải phần mềm độc hại. Ngoài ra, Kaspersky cũng phát hiện một số mẫu không sử dụng bất kỳ hình thức obfuscated nào, trong đó phần mềm độc hại được khởi chạy trong một luồng riêng biệt thông qua mô-đun threading tích hợp sẵn của Python.

Hình 2. Các biến thể của Python loader thực thi giai đoạn tiếp theo

Khi thực thi, loader trước tiên sẽ cài đặt các gói cần thiết, cụ thể là requests, pycryptodome và psutil thông qua trình quản lý gói pip, sử dụng mô-đun subprocess. Trên hệ thống Windows, loader cũng cài đặt pywin32. Trong một số mẫu được phân tích, quá trình này thực hiện hai lần.

Vì loader không thực hiện bất kỳ xác thực đầu ra nào của lệnh cài đặt mô-đun, nó tiếp tục thực hiện yêu cầu POST tới hxxps://arkanix[.]pw/api/session/create để đăng ký máy bị xâm nhập hiện tại trên bảng điều khiển với một tập hợp các tham số được xác định trước, ngay cả khi quá trình cài đặt thất bại. Sau đó, phần mềm độc hại thực hiện yêu cầu GET tới hxxps://arkanix[.]pw/stealer.py và thực thi payload đã tải xuống.

PHIÊN BẢN PYTHON STEALER

Trong quá trình nghiên cứu, các nhà nghiên cứu thu được một mẫu Python của Arkanix Stealer, được tải xuống từ điểm cuối hxxps://arkanix[.]pw/stealer.py ở giai đoạn trước.

Các tính năng của phần mềm độc hại trong phiên bản này có thể cấu hình được, với thông tin mặc định đã được xác định trước đó trong tệp script. Để cập nhật danh sách tính năng, Arkanix Stealer thực hiện yêu cầu GET tới hxxps://arkanix[.]pw/api/features/{payload_id}, cho biết rằng các tính năng này có thể được sửa đổi ở phía bảng điều khiển.

Hình 3. Các tùy chọn có thể cấu hình

Trước khi thực hiện các chức năng liên quan đến việc truy xuất thông tin, mã độc sẽ gửi yêu cầu đến hxxps://arkanix[.]pw/upload_dropper.py, lưu phản hồi vào %TEMP%\upd_{random 8-byte name}.py và thực thi nó. Chúng ta không có quyền truy cập vào nội dung của script này, mà những kẻ tấn công gọi là “dropper”. Vào cuối mỗi giai đoạn xử lý của quá trình này, thông tin thu thập sẽ được tuần tự hóa thành định dạng JSON và lưu vào một đường dẫn đã xác định trước, chẳng hạn như %LOCALAPPDATA\Arkanix_lol\%info_class%.json.

Tiếp theo, bài báo sẽ cung cấp mô tả chi tiết hơn về các tính năng đánh cắp dữ liệu của phiên bản Python.

Thu thập thông tin hệ thống

Arkanix Stealer có khả năng thu thập một tập hợp thông tin về hệ thống bị xâm nhập, bao gồm: phiên bản hệ điều hành; CPU và GPU; RAM; độ phân giải màn hìn; layout bàn phím; múi giờ; phần mềm đã cài đặt; phần mềm chống virus; VPN.

Quá trình trên được thực hiện bằng các lệnh shell tiêu chuẩn, ngoại trừ VPN. Việc kiểm tra VPN thông qua truy vấn điểm cuối hxxps://ipapi[.]co/json/và xác minh xem địa chỉ IP liên kết có thuộc về một tập hợp các VPN, proxy hoặc các nút Tor đã biết hay không.

Trích xuất dữ liệu trình duyệt

Phần mềm độc hại này có khả năng trích xuất nhiều loại dữ liệu khác nhau từ các trình duyệt được hỗ trợ (tổng cộng 22 trình duyệt, từ Google Chrome, đến Tor Browser). Danh sách các trình duyệt này được mã hóa cứng và không giống như các tham số khác, nó không thể sửa đổi trong quá trình thực thi. Ngoài mô-đun thu thập dữ liệu Chrome riêng biệt (mà chúng ta sẽ thảo luận sau), bản thân mã độc này cũng hỗ trợ trích xuất nhiều thông tin khác nhau, chẳng hạn như: lịch sử duyệt web (URL, số lần truy cập và lần truy cập gần nhất); thông tin tự động điền (email, số điện thoại, địa chỉ và chi tiết thẻ thanh toán); mật khẩu đã lưu; cookie; đối với các trình duyệt dựa trên Chromium, dữ liệu 0Auth2 cũng được trích xuất.

Tất cả thông tin trên đều giải mã bằng DPAPI của Windows hoặc AES (nếu có). Trong trường hợp thu thập thông tin trình duyệt, phần mềm độc hại chỉ tìm kiếm các từ khóa về ngân hàng (ví dụ: “revolut”, “stripe”, “bank”) và tiền điện tử (ví dụ: “binance”, “metamask”, “wallet”). Ngoài ra, Arkanix Stealer còn có khả năng trích xuất dữ liệu từ một danh sách các phần mở rộng (extensions) được mã hóa cứng liên quan đến tiền điện tử.

Hình 4. Ví dụ về danh sách phần mở rộng mà mã độc sử dụng để trích xuất dữ liệu

Thu thập thông tin Telegram

Quá trình thu thập dữ liệu Telegram bắt đầu bằng việc chấm dứt tiến trình Telegram.exe với lệnh taskkill. Sau đó, nếu tính năng telegram_optimized được đặt thành False, phần mềm độc hại sẽ nén toàn bộ thư mục tdata (thường nằm ở %APPDATA%\Roaming\Telegram Desktop\tdata) và gửi đến kẻ tấn công.

Ngược lại, nó sẽ sao chép và nén có chọn lọc chỉ các thư mục con chứa thông tin có giá trị, chẳng hạn như nhật ký tin nhắn. Tệp lưu trữ sẽ được gửi đến điểm cuối /delivery với tên tệp là tdata_session.zip.

Tính năng của Discord

Arkanix Stealer bao gồm hai tính năng liên quan đến Discord: đánh cắp thông tin đăng nhập và tự phát tán. Tính năng đầu tiên có thể được sử dụng để lấy thông tin đăng nhập từ cả ứng dụng Discord tiêu chuẩn và các ứng dụng tùy chỉnh. Nếu ứng dụng dựa trên Chromium, phần mềm độc hại sẽ sử dụng cơ chế đánh cắp dữ liệu tương tự như khi đánh cắp thông tin đăng nhập trên trình duyệt.

Tính năng tự lan truyền có thể cấu hình (nghĩa là có thể tắt trong phần cấu hình). Mã độc sẽ lấy danh sách bạn bè và kênh của người dùng thông qua API của Discord và gửi một tin nhắn do kẻ tấn công cung cấp. Phần mềm độc hại này không hỗ trợ đính kèm tệp vào các tin nhắn đó.

Thu thập dữ liệu VPN

Theo các nhà nghiên cứu, công cụ thu thập VPN đang tìm kiếm một tập hợp phần mềm VPN đã biết, từ đó trích xuất thông tin đăng nhập tài khoản từ tệp thông tin đăng nhập có đường dẫn đã biết, tệp này sẽ được phân tích cú pháp bằng biểu thức chính quy. Quá trình trích xuất diễn ra từ tập hợp các ứng dụng sau: VPN Mullvad; NordVPN; ExpressVPN; ProtonVPN.

Truy xuất tệp tin

Việc truy xuất tệp tin được thực hiện bất kể cấu hình nào. Script dựa vào một tập hợp các đường dẫn đã được xác định trước và liên kết với người dùng hiện tại (chẳng hạn như Desktop, Download,…) và các phần mở rộng tệp tin chủ yếu liên quan đến tài liệu và media.

Ngoài ra, script này cũng có một danh sách tên tập tin để trích xuất, chúng được đóng gói vào một kho lưu trữ ZIP, sau đó gửi đến máy chủ điều khiển và ra lệnh (C2) của kẻ tấn công một cách bất đồng bộ. Một khía cạnh thú vị là danh sách tên tệp tin bao gồm một số từ tiếng Pháp, chẳng hạn như “motdepasse” (nghĩa là “mật khẩu”), “banque” (nghĩa là “ngân hàng”), “secret” (nghĩa là “bí mật”) và “compte” (nghĩa là “tài khoản”).

Các payload khác

Kaspersky đã xác định được các mô-đun bổ sung được tải xuống từ máy chủ C2, thay vì được nhúng vào script đánh cắp thông tin. Tuy nhiên, các nhà nghiên cứu không thể thu thập được chúng.

Các script ví điện tử và thu thập dữ liệu bổ sung được nhận dưới dạng mã hóa từ máy chủ C2. Để giải mã chúng, kẻ tấn công sử dụng thuật toán AES-GCM kết hợp với PBKDF2 (HMAC và SHA256). Sau khi giải mã, phần dữ liệu bổ sung sẽ được thay thế các placeholders trong mẫu và lưu trữ dưới tên ngẫu nhiên trong một thư mục tạm thời.

Hình 5. Quy trình giải mã và thay thế mẫu

Sau khi hoàn tất tất cả các thao tác, phần mềm độc hại sẽ tự xóa khỏi ổ đĩa cùng với thư mục chứa các tệp tin (trong trường hợp này là Arkanix_lol).

PHIÊN BẢN GỐC CỦA ARKANIX STEALER

Trong quá trình phân tích, các nhà nghiên cứu thu thập được cả phiên bản phát hành và phiên bản debug của mã nguồn gốc, vì cả hai đều được tải lên các nguồn công khai. Sau đây là những điểm khác biệt chính giữa hai phiên bản:

- Phiên bản phát hành sử dụng VMProtect, nhưng không tận dụng ảo hóa mã.

- Phiên bản debug giao tiếp với một bot Discord để liên lạc với C2, trong khi phiên bản phát hành sử dụng tên miền arkanix[.]pw.

- Phiên bản debug bao gồm nhật ký chi tiết, có thể nhằm phục vụ mục đích gỡ lỗi của các nhà phát triển.

Đáng chú ý, phiên bản gốc tham chiếu rõ ràng tên của phần mềm độc hại trong tài nguyên VersionInfo. Quy ước đặt tên này nhất quán giữa phiên bản debug và một số mẫu chứa phiên bản phát hành của Arkanix Stealer.

Hình 6. Thông tin phiên bản

Khi được thực thi, mã độc thực hiện một loạt các biện pháp phân tích để xác minh rằng ứng dụng không được chạy trong môi trường sandbox hoặc debug. Sau khi hoàn tất các bước kiểm tra sơ bộ, mã độc sẽ tiến hành thu thập thông tin về hệ thống.

Kết nối RDP

Arkanix Stealer có khả năng thu thập thông tin về các kết nối RDP đã biết mà nạn nhân đang sử dụng. Để làm được điều này, nó tìm kiếm các tệp .rdp %USERPROFILE%\Documents và trích xuất địa chỉ máy chủ đầy đủ, mật khẩu, tên người dùng và cổng máy chủ.

Tệp trò chơi

Đặc biệt, mã độc này cũng nhắm mục tiêu vào game thủ và có khả năng đánh cắp thông tin đăng nhập từ các nền tảng chơi game phổ biến, bao gồm: Steam; Epic Games Launcher; net; Riot; Origin; Unreal Engine; Ubisoft Connect; GOG.

Chụp màn hình

Phiên bản gốc không giống như phiên bản Python, có khả năng chụp ảnh màn hình thông qua capCreateCaptureWindowA WinAPI.

Nhìn chung, phiên bản này cũng giao tiếp với máy chủ C2 thông qua cùng các điểm cuối như Python. Tuy nhiên, trong trường hợp này, tất cả dữ liệu được mã hóa bằng cùng lược đồ AES-GCM + PBKDF2 (HMAC và SHA256) như đã được sử dụng một phần trong biến thể Python. Trong một số mẫu được quan sát, khóa được sử dụng là arkanix_secret_key_v20_2024. Bên cạnh đó, mẫu C++ thiết lập User-Agent thành ArkanixStealer/1.0.

Phần mềm trích xuất dữ liệu trình duyệt

Đây là một phần mềm độc hại được nhúng sâu vào tài nguyên của mã C++. Tác giả đã tích hợp nó vào phần tài nguyên mà không sử dụng bất kỳ phương pháp obfuscated hoặc mã hóa nào. Sau đó, nó trích xuất mã độc vào một thư mục tạm thời có tên được tạo ngẫu nhiên gồm các chữ số thập lục phân (0-9 và AF) và thực thi bằng lệnh CreateProcess WinAPI.

Bản thân mã độc là dự án công khai không bị thay đổi có tên là “ChromElevator”. Tóm lại, công cụ này bao gồm hai thành phần: một bộ injector và payload chính. Trong khi bộ injector khởi tạo một công cụ gọi hệ thống trực tiếp, tạo ra một tiến trình trên trình duyệt đang bị tạm dừng và chèn code đã giải mã vào đó thông qua các lệnh gọi hệ thống Nt. Payload được nhúng sau đó giải mã khóa chính của trình duyệt và đánh cắp dữ liệu như cookie, thông tin đăng nhập, dữ liệu web,…

CƠ SỞ HẠ TẦNG

Trong chiến dịch Arkanix Stealer, hai tên miền sử dụng trong các cuộc tấn công đã được xác định. Mặc dù các tên miền này định tuyến qua Cloudflare, nhưng địa chỉ IP thực của một trong số chúng đã được tìm thấy, cụ thể là arkanix[.]pw (195[.]246[.]231[.]60 và 172[.]67[.]186[.]193). Đối với tên miền thứ hai, các nhà nghiên cứu chỉ thu được địa chỉ IP của Cloudflare.

Cả hai máy chủ cũng được sử dụng để lưu trữ bảng điều khiển theo dõi, cho phép kẻ tấn công giám sát nạn nhân của chúng.

Hình 7. Trang đăng nhập bảng điều khiển Arkanix Stealer

KẾT LUẬN

Các phần mềm đánh cắp thông tin luôn là mối đe dọa nghiêm trọng đối với dữ liệu người dùng. Arkanix Stealer cũng không ngoại lệ, nó nhắm mục tiêu vào nhiều đối tượng người dùng, từ những người quan tâm đến tiền điện tử và trò chơi đến những người sử dụng ngân hàng trực tuyến.

Mã độc này thu thập một lượng lớn thông tin, bao gồm cả dữ liệu cá nhân nhạy cảm. Mặc dù hoạt động khá hiệu quả, nhưng nó có thể chứa dấu vết của quá trình phát triển được hỗ trợ bởi LLM, điều này cho thấy sự hỗ trợ đó có thể đã giảm đáng kể thời gian và chi phí phát triển. Do đó, có thể kết luận rằng chiến dịch này là một chiến dịch ngắn hạn nhằm thu lợi tài chính nhanh chóng hơn là một sự lây nhiễm lâu dài. Bảng điều khiển và cuộc trò chuyện Discord đã bị gỡ xuống vào khoảng tháng 12/2025, không để lại bất kỳ thông báo hay dấu vết nào về việc phát triển thêm.

Để lại bình luận