Cảnh báo Katz Stealer: Dịch vụ Malware-as-a-Service với khả năng đánh cắp dữ liệu

Katz Stealer là một mẫu phần mềm độc hại kiểu Malware-as-a-Service (MaaS) xuất hiện vào năm 2025. Nó kết hợp các kỹ thuật đánh cắp thông tin, che giấu payload, thực thi trong bộ nhớ và duy trì hoạt động dai dẳng trên hệ thống bị xâm nhập. Mục tiêu của Katz là đánh cắp mật khẩu, thông tin ví tiền điện tử, dữ liệu trình duyệt, thông tin VPN/FTP/Wi-Fi, và nhiều loại dữ liệu nhạy cảm khác từ người dùng cá nhân hoặc hệ thống doanh nghiệp.

Phương thức tấn công của Katz Stealer

Giai đoạn phát tán

Mã độc được phân phối thông qua email lừa đảo (phishing) hoặc các gói phần mềm giả mạo, thường là tập tin GZIP nén chứa JavaScript dropper đã được làm rối. Nội dung JavaScript sử dụng các kỹ thuật như ép kiểu bất thường, xây dựng chuỗi động thông qua thao tác mảng, và biểu thức toán học vô nghĩa để đánh lừa hệ thống phân tích tĩnh.

Ví dụ:

var semiochemical = ([+Infinity[+1]])[1],
    egosurfers = ([+Infinity[+1]])[2];
var galactacrasia = ([++(['clippers']+[])[0] + (['titterel']+[])[1] +
    (['gammon']+[])[2] + (['parkway']+[])[3] +
    (['sacramentality']+[])[6] + (['titterelMap']+[])[7] +
    (['Euless']+[])[8] + (['slice']+[])[9]['stewing'][0]);

Những đoạn mã này không có giá trị thực thi rõ ràng, gây lỗi cú pháp với các công cụ phân tích nhưng sẽ được giải mã và chạy bình thường trên trình thông dịch JavaScript thực tế.

Thực thi PowerShell trong bộ nhớ

Dropper JavaScript sẽ gọi PowerShell với các tùy chọn:

-NoProfile -WindowStyle Hidden -Command

Mã độc tiếp tục giải mã payload Base64 đã được nhúng sẵn, và sử dụng kỹ thuật Invoke-Expression kết hợp System.Text.Encoding::Unicode.GetString() để thực thi payload trực tiếp trong bộ nhớ, không ghi file ra ổ cứng.

Tải loader .NET bằng kỹ thuật steganography

PowerShell loader kết nối tới một URL (ví dụ từ archive.org) để tải về một tập tin hình ảnh giả mạo. Trong ảnh có nhúng đoạn dữ liệu base64 giữa hai dấu <KBASE64_START><KBASE64_END>. Loader tách phần dữ liệu này ra, giải mã, và sử dụng .NET Reflection để nạp mã độc.

Hình 1. Tải hình ảnh chứa payload độc hại bên trong

Tất cả hoạt động này được thực hiện trong bộ nhớ, tránh tạo bất kỳ tệp thực thi nào trên ổ cứng.

Loader .NET và kỹ thuật tránh phân tích

Kiểm tra môi trường (sandbox và geofencing)

Loader sẽ đọc thông tin BIOS từ registry, kiểm tra độ phân giải màn hình, thời gian bật máy (uptime), và bố cục bàn phím để xác định xem có đang chạy trong môi trường ảo hóa hoặc hệ thống phân tích malware hay không. Nếu phát hiện dấu hiệu đáng ngờ, mã độc sẽ tự hủy.

Ngoài ra, loader còn kiểm tra khu vực địa lý dựa trên locale hệ thống, và nếu nằm trong danh sách các quốc gia CIS (Belarus, Kazakhstan, Uzbekistan, Armenia, v.v.), nó sẽ không tiếp tục chạy nhằm tránh các rủi ro pháp lý.

Hình 2. Danh sách các quốc gia blacklisted của mã độc

Bypass UAC bằng cmstp.exe

Katz sử dụng cmstp.exe – một công cụ hợp pháp của Windows – để tải và thực thi một INF file giả mạo, cho phép thực thi mã với quyền admin mà không cần nhắc xác nhận người dùng (User Account Control bypass).

Hình 3. UAC Bypass được thực hiện bởi Katz InfoStealer Malware

Hollowing tiến trình MSBuild

Sau khi đạt quyền cao nhất, loader sẽ khởi động tiến trình MSBuild.exe, một trình biên dịch hợp pháp đi kèm với Visual Studio. Sau đó, nó sẽ thực hiện kỹ thuật hollowing: thay thế vùng nhớ của tiến trình bằng mã của stealer chính.

Bằng cách ẩn mình trong một tiến trình hợp pháp và có chữ ký số của Microsoft, Katz Stealer tránh được sự phát hiện từ phần mềm chống virus hoặc hệ thống giám sát hành vi.

Payload chính: đánh cắp dữ liệu và duy trì kết nối

Giao tiếp C2 và nhận module

Payload liên tục duy trì kết nối TCP với máy chủ độc hại (C2) sử dụng địa chỉ IP hardcoded. Nó xác định implant thông qua mã nhận dạng duy nhất và thiết lập cơ chế reconnect nếu bị mất kết nối.

Ngoài ra, nó có thể giao tiếp qua HTTPS với các domain giả mạo, sử dụng User-Agent bắt chước trình duyệt thật nhưng có đuôi đặc biệt (ví dụ: katz-ontop) để phân biệt.

Payload sẽ tải các module bổ sung từ C2, bao gồm DLL chuyên để thực hiện injection vào trình duyệt hoặc ứng dụng khác.

Đánh cắp thông tin trình duyệt Chromium

Katz sử dụng kỹ thuật injection để chèn mã độc vào tiến trình trình duyệt đã cài đặt. Khi chạy trong không gian tiến trình của Chrome hoặc Edge, malware có thể truy xuất trực tiếp:

  • Master key trong Local State

  • File database lưu mật khẩu và cookie

Thông qua API Windows và cơ chế decrypt giống như trình duyệt sử dụng, Katz có thể giải mã các mật khẩu được mã hóa theo chuẩn Application Bound Encryption (ABE), lưu lại khóa giải mã, cookie và thông tin thanh toán.

Đánh cắp thông tin trình duyệt Firefox/Gecko

Đối với Firefox, malware trích xuất:

  • logins.json: mật khẩu

  • cookies.sqlite: session cookie

  • key4.db hoặc key3.db: key giải mã

  • formhistory.sqlite, places.sqlite: dữ liệu điền form và lịch sử trình duyệt

Thông tin này sau đó có thể được giải mã ngoại tuyến, hoặc cookie có thể dùng để chiếm đoạt phiên người dùng.

Tấn công Discord và duy trì backdoor

Katz sửa đổi file app.asar của ứng dụng Discord desktop, nhúng mã JavaScript độc hại để gửi HTTPS request đến máy chủ C2 mỗi khi ứng dụng được khởi động.

Mã phản hồi từ server sẽ được thực thi ngay trong không gian ứng dụng Discord thông qua eval(), tạo ra một backdoor ẩn trong ứng dụng được ký số và tin cậy bởi hệ thống.

Người dùng không nhận thấy bất thường vì Discord vẫn hoạt động bình thường, trong khi mã độc liên tục duy trì quyền truy cập.

Đánh cắp ví tiền điện tử

Katz Stealer tìm kiếm dữ liệu ví từ hai nguồn:

  • Ứng dụng ví desktop: như Exodus, Electrum, Bitcoin Core, Coinomi, v.v. bằng cách tìm đường dẫn, pattern file, hoặc đuôi file phổ biến.

  • Extension trình duyệt: quét thư mục extension để tìm ID của hơn 150 ví Web3 phổ biến như MetaMask. Đặc biệt, Katz có khả năng lấy dữ liệu ví riêng biệt từ Brave browser.

Dữ liệu ví và khóa riêng sau khi được thu thập sẽ được đóng gói để gửi về C2. Trước khi thoát, malware xóa thư mục tạm để che dấu vết.

Khả năng che giấu và phục hồi sau khai thác

Katz Stealer có mức độ che giấu rất cao:

  • Mọi payload đều được nạp trong bộ nhớ.

  • Sử dụng tiến trình hợp pháp để thực thi.

  • Giao tiếp mạng mô phỏng lưu lượng trình duyệt thật.

  • Xóa file tạm sau khi xong nhiệm vụ.

Sau khi dữ liệu được trích xuất, mã độc có thể thoát hoặc tiếp tục tồn tại thông qua Discord hoặc Scheduled Task được tạo từ giai đoạn trước. Khi hệ thống khởi động lại, nếu Discord tự chạy, backdoor vẫn còn nguyên vẹn.

IOCs liên quan đến mã độc Katz Stealer

ValueTypeDescription
185.107.74[.]40IP AddressMáy chủ C2 chính sử dụng kết nối TCP
31.177.109[.]39IP AddressIP bổ sung quan sát được trong một số cấu hình
twist2katz[.]comDomainDomain chứa mã độc backdoor sử dụng để sửa Discord
pub-ce02802067934e0eb072f69bf6427bf6[.]r2[.]devDomainMáy chủ Cloudflare R2 chứa payload giai đoạn hai
katz-stealer[.]comDomainDomain tên chính của malware, có thể dùng cho panel điều khiển
katzstealer[.]comDomainBiến thể domain phụ trợ của Katz Stealer
katz-ontopUser-Agent SubstringSubstring đặc trưng trong User-Agent HTTP do malware tạo
katz_ontop.dllFile NameDLL tạm thời dùng để inject vào trình duyệt, ghi trong thư mục Temp
received_dll.dllFile NameDLL tạm thời được tải từ C2, thường là module bổ sung
decrypted_chrome_key.txtFile NameFile chứa khóa giải mã master key của Chrome
decrypted_edge_key.txtFile NameFile chứa khóa giải mã của Microsoft Edge
decrypted_brave_key.txtFile NameFile chứa khóa giải mã ví trong Brave browser
app.asar (Discord)Modified FileFile bị chỉnh sửa để nhúng mã độc khởi động mã từ twist2katz.com
22af84327cb8ecafa44b51e9499238ca2798cec38c2076b702c60c72505329cbFile Hash (SHA-256)Hash của GZIP dropper ban đầu
e4249cf9557799e8123e0b21b6a4be5ab8b67d56dc5bfad34a1d4e76f7fd2b19File Hash (SHA-256)Hash mã JavaScript giai đoạn đầu
fb2b9163e8edf104b603030cff2dc62fe23d8f158dd90ea483642fce2ceda027File Hash (SHA-256)Hash của PowerShell loader
0df13fd42fb4a4374981474ea87895a3830eddcc7f3bd494e76acd604c4004f7File Hash (SHA-256)Hash của .NET loader
4f12c5dca2099492d0c0cd22edef841cbe8360af9be2d8e9b57c2f83d401c1a7File Hash (SHA-256)Hash module UAC bypass
6dc8e99da68b703e86fa90a8794add87614f254f804a8d5d65927e0676107a9dFile Hash (SHA-256)Hash của một biến thể DLL injection vào trình duyệt
e73f6e1f6c28469e14a88a633aef1bc502d2dbb1d4d2dfcaaef7409b8ce6dc99File Hash (SHA-256)Hash của biến thể DLL injection khác
2798bf4fd8e2bc591f656fa107bd871451574d543882ddec3020417964d2faa9File Hash (SHA-256)Hash của stealer payload giai đoạn cuối
e345d793477abbecc2c455c8c76a925c0dfe99ec4c65b7c353e8a8c8b14da2b6File Hash (SHA-256)Hash khác của payload dùng để trích xuất dữ liệu

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 tấn công nguy hiểm này:

  • Tăng cường kiểm soát email và tệp tải về: Thiết lập cơ chế lọc email nghiêm ngặt để ngăn chặn các tệp nén độc hại, mã JavaScript làm rối, hoặc file giả mạo chứa mã độc được phân phối qua phishing và tải phần mềm không rõ nguồn gốc.

  • Giám sát hành vi thực thi trong hệ thống: Theo dõi chặt chẽ các tiến trình PowerShell, cmstp.exe, MSBuild.exe và các hành vi như thực thi mã trong bộ nhớ, hollowing tiến trình hợp pháp, hoặc tạo kết nối mạng bất thường.

  • Bảo vệ trình duyệt và dữ liệu xác thực: Tắt chức năng tự động lưu mật khẩu trên trình duyệt nếu không cần thiết; phát hiện và cảnh báo khi có sự xuất hiện của các file như decrypted_chrome_key.txt hoặc DLL lạ được inject vào các trình duyệt phổ biến.

  • Kiểm tra và bảo vệ ví tiền điện tử: Không lưu trữ seed phrase, private key hoặc file ví trong thư mục người dùng. Khuyến khích sử dụng ví phần cứng (hardware wallet) và kiểm tra định kỳ các extension ví trình duyệt.

  • Phát hiện bất thường trên Discord và các ứng dụng Electron: Giám sát hành vi tự động sửa file app.asar hoặc hành vi tải mã JavaScript từ domain không hợp lệ thông qua Discord, đặc biệt là các truy vấn đến twist2katz.com.

  • Tăng cường nhận thức an ninh cho người dùng cuối: Đào tạo người dùng nhận diện email lừa đảo, cảnh báo về phần mềm giả mạo, và khuyến khích sử dụng kênh tải phần mềm chính thống. Giải thích rõ ràng rủi ro khi sử dụng trình duyệt để lưu trữ thông tin nhạy cảm.

  • Thiết lập cơ chế giám sát mạng chủ động: Theo dõi lưu lượng đến các domain và IP trong danh sách IOC đã biết; cảnh báo các User-Agent HTTP bất thường như chuỗi chứa "katz-ontop"; phát hiện các mẫu giao tiếp C2 không chuẩn từ thiết bị đầu cuối.

Tham khảo

0
Subscribe to my newsletter

Read articles from Tran Hoang Phong directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Tran Hoang Phong
Tran Hoang Phong

Just a SOC Analyst ^^