Phần mềm đọc PDF hay backdoor? Chiến dịch mới của Tropic Trooper khiến giới bảo mật lo ngại

Tổng quan
Một file PDF tưởng chừng vô hại. Một công cụ lập trình quen thuộc. Nhưng khi đứng sau là Tropic Trooper, mọi thứ có thể trở thành cánh cửa cho một chiến dịch gián điệp tinh vi. Đó là những gì mà Zscaler ThreatLabz vừa công bố vào ngày 12/3/2026, chiến dịch tấn công mạng mới do nhóm APT khét tiếng Tropic Trooper thực hiện — một nhóm nói tiếng Trung đã hoạt động bền bỉ từ ít nhất năm 2011. Chiến dịch này chủ yếu nhắm vào người dùng nói tiếng Trung tại Đài Loan, đồng thời lan sang các mục tiêu tại Hàn Quốc và Nhật Bản.
Điểm khác biệt nổi bật nằm ở sự thay đổi chiến lược công cụ: thay vì phụ thuộc vào các framework quen thuộc như Cobalt Strike hay Mythic Merlin, nhóm đã chuyển sang sử dụng AdaptixC2 — một nền tảng mã nguồn mở, kết hợp với cơ chế điều khiển tùy biến thông qua GitHub. Sự chuyển dịch này giúp lưu lượng C2 hòa lẫn vào hoạt động hợp pháp, khiến việc phát hiện trở nên khó khăn hơn đáng kể.
Đáng chú ý hơn, giai đoạn cuối của chuỗi tấn công tận dụng Visual Studio Code tunnels để thiết lập quyền truy cập từ xa tương tác, biến các công cụ phát triển quen thuộc thành một kênh backdoor gần như “vô hình” trong môi trường doanh nghiệp.
Timeline sự kiện
Khởi nguồn từ cuối tháng 8/2025, khi một mẫu malware sử dụng Azure Functions làm hạ tầng điều khiển được tạo ra (dựa trên metadata của file LNK). Chỉ vài ngày sau, vào 28/8/2025, một file ISO có tên Servicenow-BNM-Verify.iso được ghi nhận tải lên nền tảng VirusTotal từ Malaysia, cho thấy dấu hiệu phân phối ban đầu của chiến dịch.
Đến ngày 5/9/2025, một mẫu khác có cùng imphash — chỉ dấu kỹ thuật quan trọng liên kết các payload tiếp tục được upload từ Singapore, củng cố giả thuyết về một chiến dịch đang mở rộng trong khu vực. Sau giai đoạn “âm thầm chuẩn bị”, chiến dịch chính thức lộ diện vào ngày 12/3/2026 khi Zscaler ThreatLabz phát hiện một file ZIP chứa các tài liệu mồi nhử mang chủ đề quân sự, được thiết kế để phát tán malware liên quan đến Tropic Trooper.
Trong tháng 3/2026, ThreatLabz hoàn tất quá trình phân tích và đưa ra kết luận với mức độ tin cậy cao, chính thức quy kết chiến dịch cho Tropic Trooper. Đến tháng 4/2026, thông tin được lan rộng khi The Hacker News công bố chi tiết vụ việc, kéo theo việc chia sẻ rộng rãi các chỉ số tấn công (IOCs) trong cộng đồng an ninh mạng
Tropic Trooper là ai?
Giới thiệu
Trước khi đi xâu hơn vào quá trình phân tích thì chúng ta cùng nhau tìm hiểu đôi nét về nhóm tin tặc đứng đằng sau này: Tropic Trooper.
Tropic Trooper (còn được gọi là APT23, Earth Centaur, Pirate Panda) là một nhóm APT nói tiếng Trung, hoạt động ít nhất từ năm 2011. Nhóm này nổi tiếng với các chiến dịch cyber espionage nhắm vào chính phủ, quân sự, công nghệ và viễn thông tại khu vực châu Á - Thái Bình Dương.
Mục tiêu tấn công
Primary targets: Chính phủ, Quốc phòng, Viễn thông, Công nghệ cao.
Khu vực chính: Đài Loan (mục tiêu trọng tâm), Nhật Bản, Hàn Quốc, Đông Nam Á (xu hướng mở rộng trong đó có Việt Nam).
Các giai đoạn chính
Trong giai đoạn đầu, Tropic Trooper chủ yếu nhắm vào các mục tiêu mang tính chiến lược cao, đặc biệt là Đài Loan — khu vực được xem là trọng tâm trong hầu hết các chiến dịch của nhóm. Bên cạnh đó, các quốc gia như Nhật Bản và Hàn Quốc cũng thường xuyên nằm trong danh sách mục tiêu.
Từ khoảng năm 2017 trở đi, Tropic Trooper bắt đầu thể hiện rõ sự nâng cấp về kỹ thuật. Nhóm mở rộng phạm vi hoạt động sang nhiều khu vực khác tại châu Á, đồng thời áp dụng các kỹ thuật mới nhằm tăng độ bền vững và khả năng né tránh.
Bước sang giai đoạn 2020–2024, Tropic Trooper bắt đầu thay đổi cách tiếp cận. Thay vì phụ thuộc hoàn toàn vào malware tùy biến, nhóm tận dụng ngày càng nhiều các công cụ có sẵn trong hệ điều hành — một chiến lược thường được gọi là “living-off-the-land”.
Đến giai đoạn 2025–2026, Tropic Trooper đã bước sang một cấp độ hoàn toàn khác. Các chiến dịch gần đây cho thấy nhóm không chỉ sử dụng công cụ hợp pháp, mà còn tận dụng trực tiếp hạ tầng cloud và hệ sinh thái developer để che giấu hoạt động.
Chuỗi tấn công
Chuỗi tấn công của Tropic Trooper được thiết kế theo nhiều giai đoạn rõ ràng, với mục tiêu xuyên suốt là đánh lừa người dùng, thực thi payload âm thầm và duy trì kiểm soát lâu dài mà không bị phát hiện.
Giai đoạn 1 — Initial Access: Trojanized Software
Mọi thứ bắt đầu từ một file ZIP chứa các tài liệu mang chủ đề quân sự bằng tiếng Trung, đi kèm một file thực thi được ngụy trang tinh vi. File này thực chất là một phiên bản SumatraPDF đã bị trojan hóa, vẫn giữ lại các dấu hiệu hợp pháp như certificate hay PDB path để qua mặt kiểm tra bề mặt, nhưng bên trong đã bị chèn loader độc hại.
Khi người dùng mở file, họ tin rằng mình chỉ đang đọc một tài liệu bình thường — trong khi quá trình tấn công đã bắt đầu.
Giai đoạn 2 — Execution: TOSHIS Loader
Sau khi thực thi, loader TOSHIS được kích hoạt theo một cách tinh vi hơn so với các biến thể trước: thay vì sửa entry point, nó hijack luồng thực thi tại hàm _security_init_cookie, giúp giảm khả năng bị phát hiện.
Loader này thực hiện nhiều bước liên tiếp:
Tạo các chuỗi mã hóa trong bộ nhớ (C2, đường dẫn file, key)
Resolve API thông qua hash thay vì import trực tiếp
Tải file PDF mồi nhử từ server và mở lên để đánh lạc hướng người dùng
Đồng thời tải payload giai đoạn hai (shellcode) từ cùng nguồn
Giải mã payload bằng AES rồi thực thi trực tiếp trong bộ nhớ (fileless)
Giai đoạn 3 — Command & Control qua GitHub
Payload giai đoạn hai là một beacon của AdaptixC2, được tùy biến để sử dụng GitHub làm kênh điều khiển.
Thay vì giao tiếp với server C2 truyền thống, malware:
Gửi beacon thông qua GitHub Issues
Lấy lệnh bằng cách đọc các issue đang mở
Thực thi lệnh sau khi giải mã
Upload kết quả trở lại repository
Đặc biệt, các beacon sẽ bị xóa chỉ sau vài giây, khiến việc điều tra gần như không thể tái dựng lại nội dung giao tiếp. Toàn bộ lưu lượng trông giống như các API call hợp pháp đến GitHub, gây khó khăn lớn cho việc phát hiện.
Giai đoạn 4 — Persistence
Sau khi thiết lập được kênh điều khiển, malware tạo scheduled tasks để duy trì truy cập. Các task được đặt tên giống dịch vụ hệ thống (ví dụ “MSDNSvc”, “MicrosoftUDN”) nhằm hòa lẫn với các tiến trình hợp pháp.
Nhờ đó, payload có thể tự động chạy lại định kỳ với quyền cao, đảm bảo attacker không mất quyền kiểm soát ngay cả khi hệ thống khởi động lại.
Giai đoạn 5 — Post-Exploitation: Remote Access qua VS Code
Khi xác định mục tiêu có giá trị, attacker triển khai thêm Visual Studio Code và thiết lập tunnel để truy cập từ xa.
Điểm đáng chú ý là:
Tunnel sử dụng hạ tầng Microsoft hợp pháp
Lưu lượng HTTPS trông hoàn toàn bình thường
Cung cấp interactive shell đầy đủ cho attacker
Điều này biến VS Code thành một backdoor “hợp pháp”, gần như không thể phân biệt nếu chỉ dựa vào network traffic.
IOC
File Hashes
Tropic Trooper Campaign
ZIP (lure + trojanized SumatraPDF)
- SHA-256:
a4f2131eb497afe5f78d8d6e534df2b8d75c5b9b565c3ec17a323afe5355da26
- SHA-256:
Trojanized SumatraPDF (.exe)
- SHA-256:
47c7ce0e3816647b23bb180725c7233e505f61c35e7776d47fd448009e887857
- SHA-256:
Encrypted shellcode / Beacon (4d.dat)
- SHA-256:
aeec65bac035789073b567753284b64ce0b95bbae62cf79e1479714238af0eb7
- SHA-256:
AdaptixC2 Beacon DLL (decrypted)
- SHA-256:
7a95ce0b5f201d9880a6844a1db69aac7d1a0bf1c88f85989264caf6c82c6001
- SHA-256:
Azure Functions Malware (Related Activity)
ISO:
0ba328aeb0867def650694c5a43fdd47d719c6b3c55a845903646ccdbf3ec239LNK:
9e312214b44230c1cb5b6ec591245fd433c7030cb269a9b31f0ff4de621ff517Malicious DLL:
b03a2c0d282cbbddfcf6e7dda0b4b55494f4a5c0b17c30cd586f5480efca2c17Legit binary (sideload victim):
b778d76671b95df29e15a0af4d604917bfba085f7b04e0ce5d6d0615017e79dbShellcode:
550c27fd8dc810df2056f1ec4a749a94ab4befc8843ba913c5f1197ef381a0a5Final DLL:
c0fc5ec77d0aa03516048349dddb3aa74f92cfe20d4bca46205f40ab0e728645Related sample (Singapore)
SHA-256:
28e85fd3546c8ad6fb2aef37b4372cc4775ea8435687b4e6879e96da5009d60aImphash:
B74596632C4C9B3A853E51964E96FC32
Network Indicators
Infrastructure
- Staging IP:
158.247.193[.]100
Command & Control
GitHub C2 (AdaptixC2)
api.github.com/repos/cvaS23uchsahs/rss/issues
Cobalt Strike C2
47.76.236[.]58:4430stg.lsmartv[.]com:8443
Cloud-based C2
Azure Functions
Host:
logsapi.azurewebsites[.]netEndpoint:
/api/logs
Tooling / Staging
bashupload[.]app/6e1lhcbashupload[.]app/zgel2a.bin
Living-off-the-land tooling
Visual Studio Code tunnel download
code.visualstudio.com/...cli-win32-x64
Host-Based Indicators
Persistence (Scheduled Tasks)
\MSDNSvc\MicrosoftUDN
Suspicious File Paths
C:\Users\Public\Documents\dsn.exeC:\Users\Public\Documents\MicrosoftCompilers.exeC:\Users\Public\Documents\2.library-ms
Artifacts
Cobalt Strike Watermark:
520EntryShell AES Key:
afkngaikfaf
MITRE ATT&CK Matrix
Tactic | ID | Technique |
Initial Access | T1190 | Exploit public-facing application |
T1566.001 | Spear Phishing Attachment | |
Execution | T1059.001 | Command and Scripting Interpreter: PowerShell |
T1059.003 | Command and Scripting Interpreter: Windows Command Shell | |
T1569.002 | System Services: Service Execution | |
Persistence | T1543.003 | Create or Modify System Process: Windows Service |
T1574.002 | Hijack Execution Flow: DLL Side-Loading | |
T1505.003 | Server Software Component: Web Shell | |
Defense Evasion | T1140 | Deobfuscate/Decode Files or Information |
T1070.001 | Indicator Removal on Host: Clear Windows Event Logs | |
T1027.002 | Obfuscated Files or Information: Software Packing | |
T1218.011 | Signed Binary Proxy Execution: Rundll32 | |
T1036.005 | Masquerading: Match Legitimate Name or Location | |
Credential Access | T1003.001 | OS Credential Dumping: LSASS Memory |
T1552.002 | OS Credential Dumping: Credentials in Registry | |
Lateral Movement | T1021.002 | Remote Services: SMB/Windows Admin Shares |
Discovery | T1087.002 | Account Discovery: Domain Account |
T1482 | Domain Trust Discovery | |
T1083 | File and Directory Discovery | |
Collection | T1005 | Data from Local System |
Command and Control | T1071.001 | Application Layer Protocol: Web Protocols |
T1095 | Non-Application Layer Protocol | |
T1090.001 | Proxy: Internal Proxy | |
Exfiltration | T1567.002 | Exfiltration to Cloud Storage |
T1020 | Automated Exfiltration | |
T1547.001 | Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder | |
T1203 | Exploitation for Client Execution | |
T1564.001 | Hide Artifacts: Hidden Files and Directories | |
T1518.001 | Software Discovery | |
T1082 | System Information Discovery | |
T1016 | System Network Configuration Discovery | |
T1049 | System Network Connections Discovery | |
T1033 | System Owner/User Discovery | |
T1204.002 | User Execution: Malicious File | |
T1078.003 | Valid Accounts: Local Accounts |
Nhận định chuyên gia
Chiến dịch này cho thấy Tropic Trooper đang chủ động giảm khả năng bị phát hiện, khi chuyển từ Cobalt Strike sang AdaptixC2 kết hợp GitHub làm C2. Việc dùng GitHub Issues khiến việc chặn gần như không khả thi, buộc blue team phải tập trung vào phát hiện hành vi bất thường thay vì network signature.
Cơ chế xóa beacon nhanh và không lưu session key làm tăng độ khó cho forensic, trong khi việc tận dụng Visual Studio Code tunnels biến công cụ hợp pháp thành kênh truy cập từ xa “vô hình”. Song song đó, xu hướng dùng Azure Functions làm C2 cho thấy attacker đang chuyển mạnh sang mô hình cloud-based.
Nhìn chung, đây là chiến lược “blend in” điển hình: tận dụng hạ tầng và công cụ hợp pháp để che giấu hoạt động, khiến việc phát hiện ngày càng phụ thuộc vào phân tích hành vi thay vì dấu hiệu kỹ thuật truyền thống.
Khuyến nghị
Immediate (0–24h) - Ứng phó nhanh
Trong 24 giờ đầu, mục tiêu là xác định xem hệ thống có dấu hiệu bị xâm nhập hay không:
Quét toàn bộ IOC (hash, IP, domain) trên endpoint, EDR và SIEM để phát hiện nhanh các dấu hiệu compromise.
Kiểm tra persistence bằng cách rà soát scheduled tasks, đặc biệt các tên giả mạo như
\MSDNSvchoặc\MicrosoftUDN.Phân tích hành vi process:
Xác định process bất thường spawn Visual Studio Code (
code.exe)Theo dõi process gọi GitHub API, đặc biệt nếu xuất phát từ thư mục như
C:\Users\Public\Documents\
Chặn hạ tầng độc hại đã biết:
- Block IP staging
158.247.193[.]100trên firewall/proxy
- Block IP staging
Quick triage endpoint:
Tìm file thực thi trong các thư mục public/writable
Ưu tiên các file không rõ nguồn gốc hoặc giả mạo phần mềm hợp pháp
Short-term (1–7 ngày) — Threat Hunting & Hardening
Threat hunting theo hành vi
Binary giả mạo (trojanized software)
Tìm các tiến trình liên quan SumatraPDF hoặc phần mềm phổ biến
Xác minh chữ ký số (code signing) có hợp lệ hay không
VS Code tunnel abuse
Truy vấn process có command-line chứa
code tunnelhoặctunnel loginXác định nguồn thực thi (user, host, parent process)
Scheduled task disguise
Phát hiện task có tên gần giống Microsoft/Windows
Ưu tiên task được tạo gần đây hoặc bởi user thường
Network anomaly
Theo dõi request đến GitHub API (
api.github.com) từ process không phải browser/IDEPhát hiện user-agent bất thường (ví dụ
curl) từ process lạ
Kiểm tra lưu lượng cloud & API
Rà soát outbound traffic đến:
Các endpoint thuộc Azure Functions
Ưu tiên:
Request POST
Payload mã hóa hoặc bất thường về kích thước/tần suất
Long-term — Phòng thủ bền vững
Kiểm soát thực thi (Execution Control)
Triển khai application allowlisting cho các thư mục writable
Ngăn chặn thực thi từ:
C:\Users\Public\%TEMP%,%APPDATA%
Kiểm soát developer tools
Giới hạn sử dụng Visual Studio Code tunnels:
Chỉ cho phép trên máy developer được chỉ định
Theo dõi hành vi đăng nhập / khởi tạo tunnel
Tham khảo
Tropic Trooper Uses Trojanized SumatraPDF and GitHub to Deploy AdaptixC2
Tropic Trooper: AdaptixC2 + Custom Beacon | ThreatLabz





