Skip to main content

Command Palette

Search for a command to run...

GopherWhisper: Nhóm APT Trung Quốc Khai Thác Slack, Discord và Outlook Làm Kênh C2

Published
14 min read
GopherWhisper: Nhóm APT Trung Quốc Khai Thác Slack, Discord và Outlook Làm Kênh C2

Tóm Tắt (Executive Summary)

Tháng 1/2025, ESET Research phát hiện một nhóm APT chưa từng được ghi nhận trước đây, mang tên GopherWhisper, có liên hệ với Trung Quốc, đang nhắm vào các tổ chức chính phủ của Mông Cổ. Điểm đặc trưng của nhóm này là toàn bộ hạ tầng C2 (command-and-control) được xây dựng trên các dịch vụ SaaS hợp pháp — Slack, Discord, Microsoft 365 Outlook, và file.io — giúp lưu lượng độc hại hòa lẫn vào traffic thông thường của doanh nghiệp.

Bộ công cụ của GopherWhisper gồm 7 thành phần, phần lớn viết bằng Go: 4 backdoor (LaxGopher, RatGopher, BoxOfFriends, SSLORDoor), 1 injector (JabGopher), 1 công cụ exfiltration (CompactGopher), và 1 DLL loader (FriendDelivery). ESET xác nhận ít nhất 12 hệ thống trong một cơ quan chính phủ Mông Cổ bị xâm phạm, và phân tích C2 traffic cho thấy còn nhiều nạn nhân khác chưa được xác định địa lý.

Hành động ưu tiên: Triển khai rule phát hiện kết nối Slack/Discord/Outlook API bất thường từ endpoint và kiểm tra tiến trình svchost.exe có DLL injection không rõ nguồn gốc.


1. Bối Cảnh và Attribution

GopherWhisper được ESET phát hiện vào tháng 1/2025 sau khi tìm thấy backdoor LaxGopher trên hệ thống của một cơ quan chính phủ Mông Cổ. Nhóm này được đánh giá là đã hoạt động ít nhất từ tháng 11/2023, dù chỉ mới được công bố vào tháng 4/2026.

Cơ sở attribution về Trung Quốc:

Bằng chứng liên kết nhóm với Trung Quốc đến từ phân tích metadata C2 — không phải suy đoán:

  • Múi giờ hoạt động: Phần lớn tin nhắn C2 qua Slack và Discord được gửi trong khung giờ 8:00–17:00 UTC+8 (China Standard Time), tương ứng giờ làm việc hành chính tại Trung Quốc.
  • Locale metadata: Cấu hình người dùng trong Slack workspace của attacker có locale được set là zh-CN.
  • Môi trường operator: Phân tích máy của operator (qua enumeration kết quả gửi về Discord) cho thấy một máy ảo VMware, được boot và cài đặt tại thời điểm khớp với UTC+8.
  • Bộ công cụ: Không có sự trùng lặp code hay TTP với bất kỳ nhóm APT đã biết nào, dẫn đến quyết định tạo attribution mới. Mông Cổ là mục tiêu ít phổ biến hơn so với Đông Nam Á hay Đài Loan trong các chiến dịch APT Trung Quốc, nhưng vị trí địa chính trị của nước này — nằm giữa Trung Quốc và Nga — tạo ra giá trị tình báo rõ ràng cho các đơn vị espionage nhà nước.

2. Bộ Công Cụ — Phân Tích Chi Tiết

GopherWhisper triển khai chiến lược redundancy qua đa dạng C2 — mỗi backdoor dùng một kênh SaaS khác nhau. Đây không phải thiết kế ngẫu nhiên: nếu một kênh bị block, attacker vẫn duy trì được access qua kênh còn lại.

GopherWhisper toolset overview từ ESET Research Hình 1: Tổng quan bộ công cụ GopherWhisper (Nguồn: ESET Research)

2.1. JabGopher — Injector

JabGopher là điểm khởi đầu của chuỗi execution. Nó tạo một tiến trình svchost.exe mới và inject payload LaxGopher vào vùng nhớ của tiến trình đó. Kỹ thuật process injection vào svchost.exe là một trong những phương pháp evasion kinh điển nhất — tiến trình này luôn chạy trên mọi hệ thống Windows và ít bị kiểm tra hơn so với tiến trình người dùng thông thường.

LaxGopher được ngụy trang dưới tên whisper.dll — đây cũng là nguồn gốc phần tên "Whisper" trong GopherWhisper.

2.2. LaxGopher — Backdoor qua Slack

LaxGopher là backdoor Go-based, giao tiếp với một Slack workspace riêng tư của attacker. Quy trình hoạt động:

  1. Kết nối Slack API với token được hardcode trong binary
  2. Poll kênh Slack để nhận lệnh từ operator
  3. Thực thi lệnh qua cmd.exe
  4. Post kết quả trả về cùng Slack channel
  5. Download payload bổ sung theo lệnh từ operator Các lệnh qua LaxGopher tập trung vào disk enumeration và file enumeration — giai đoạn trinh sát sau khi đã có foothold.

2.3. CompactGopher — Công Cụ Exfiltration

CompactGopher là payload được LaxGopher deploy, chuyên thực hiện exfiltration:

  • Filter file theo extension: .doc, .docx, .jpg, .xls, .xlsx, .txt, .pdf, .ppt, .pptx
  • Nén file vào ZIP archive
  • Mã hóa archive bằng AES-CFB-128
  • Upload tự động lên file.io — một dịch vụ file sharing công khai hợp pháp Việc sử dụng file.io đảm bảo traffic exfiltration không bị phát hiện bởi các rule chặn C2 domain đơn giản — file.io là dịch vụ hợp pháp, thường không nằm trong blocklist.

2.4. RatGopher — Backdoor qua Discord

RatGopher là phiên bản Discord của LaxGopher:

  • Kết nối Discord server riêng tư qua API token được hardcode
  • Nhận lệnh từ channel Discord, thực thi, trả kết quả về channel
  • Upload/download file từ file.io Phân tích channel Discord của RatGopher tiết lộ cả Go source code — có thể là bản early iteration của backdoor mà attacker dùng Discord như môi trường test/dev.

2.5. SSLORDoor — Backdoor C++ với Raw Socket

Khác với 3 backdoor Go còn lại, SSLORDoor được viết bằng C++ và không dựa vào SaaS platform. Nó sử dụng OpenSSL BIO để giao tiếp qua raw socket trên port 443 — ẩn mình trong HTTPS traffic thông thường mà không thực sự là HTTPS.

Chức năng: enumerate drive, đọc/ghi/xóa file, thực thi lệnh qua C2.

2.6. FriendDelivery + BoxOfFriends — C2 qua Email Drafts

Đây là cặp công cụ tinh vi nhất của GopherWhisper. FriendDelivery là DLL loader inject BoxOfFriends vào memory. BoxOfFriends giao tiếp C2 theo cơ chế draft email:

  • Dùng Microsoft Graph API (Outlook mail REST API) với credentials được hardcode
  • Không gửi email thực sự — chỉ tạo và chỉnh sửa email nháp trong hộp thư
  • Operator đọc draft để lấy kết quả, viết draft mới để gửi lệnh Kỹ thuật "dead drop" qua email draft đã được sử dụng bởi nhiều nhóm APT trước đây (điển hình là TURLA/Snake với Gmail drafts). GopherWhisper áp dụng tương tự cho Outlook — phù hợp với môi trường doanh nghiệp Microsoft 365 phổ biến tại các cơ quan chính phủ.

Account Outlook được xác nhận: barrantaya.1010@outlook[.]com, được tạo ngày 11/07/2024 — đúng 11 ngày trước khi FriendDelivery DLL được compile (22/07/2024).


3. Phân Tích C2 Traffic — Cú Lỗi Opsec Của Attacker

Đây là phần đáng chú ý nhất về mặt threat intelligence. ESET đã extract được API token của các Slack workspace và Discord server của attacker từ binary bị analyze. Điều này cho phép đọc toàn bộ lịch sử C2 messages.

Lý do attacker để lộ: Nhóm dùng chính các Slack/Discord server đã dùng để test backdoor làm C2 trong chiến dịch thật, và không xóa log. Đây là lỗi opsec nghiêm trọng — lịch sử test và production C2 nằm trên cùng một server.

Kết quả từ phân tích traffic:

  • Hàng nghìn tin nhắn Slack và Discord được extract
  • Xác nhận múi giờ hoạt động UTC+8
  • Tìm thấy link tới các GitHub repository mà attacker dùng làm tài nguyên học/tham khảo trong quá trình phát triển Phân phối Slack messages theo giờ trong ngày Hình 2: Phân phối message Slack theo giờ — rõ ràng pattern giờ làm việc UTC+8 (Nguồn: ESET Research)

Phân phối Discord messages theo giờ trong ngày Hình 3: Tương tự với Discord — hoạt động trong khung 8–17h UTC+8 (Nguồn: ESET Research)

Các GitHub repository được tìm thấy trong Slack messages:

Repository Mô Tả
github.com/kardianos/service Quản lý service daemon cho Go trên mọi OS
github.com/NHAS/stab Local và remote process injection cho Go
github.com/kirinlabs/utils Encryption và compression utilities cho Go
github.com/wumansgy/goEncrypt Các phương thức encryption trong Go

Danh sách này phản ánh rõ định hướng phát triển: attacker đang xây dựng khả năng injection, persistence, và encryption — đặt nền móng cho các phiên bản công cụ tinh vi hơn.


4. Kill Chain và MITRE ATT&CK Mapping

Kill Chain

[Giai đoạn]          [Kỹ thuật]                          [Công cụ]
─────────────────────────────────────────────────────────────────────
Initial Access       Chưa xác định (vector không rõ)      —
Execution            DLL Side-Loading (JabGopher)          JabGopher → whisper.dll
Persistence          [NEEDS VERIFICATION: chưa xác nhận   —
                     registry persistence cụ thể]
Defense Evasion      Process Injection vào svchost.exe     JabGopher
                     SaaS C2 (traffic hòa vào biz flow)   LaxGopher/RatGopher/BoxOfFriends
C2                   Slack API (private workspace)         LaxGopher
                     Discord API (private server)          RatGopher
                     Outlook Draft via Graph API           BoxOfFriends
                     Raw Socket port 443 (OpenSSL BIO)     SSLORDoor
Collection           File filter by extension              CompactGopher
                     AES-CFB-128 encryption               CompactGopher
Exfiltration         Upload to file.io                     CompactGopher

MITRE ATT&CK Mapping

Technique ID Tên Công Cụ Liên Quan
T1055 Process Injection JabGopher
T1574.002 DLL Side-Loading JabGopher (whisper.dll)
T1071.001 Application Layer Protocol: Web Protocols LaxGopher, RatGopher, BoxOfFriends
T1102 Web Service (Legitimate External Services) Slack, Discord, Outlook, file.io
T1567.002 Exfiltration to Cloud Storage CompactGopher → file.io
T1560.001 Archive Collected Data: Archive via Utility CompactGopher (ZIP + AES)
T1027 Obfuscated Files or Information CompactGopher (AES-CFB-128)
T1105 Ingress Tool Transfer LaxGopher (download payload)
T1087 Account Discovery LaxGopher/RatGopher (enumeration)
T1078 Valid Accounts BoxOfFriends (Outlook account barrantaya.1010)

5. Indicators of Compromise (IOC)

Lưu ý: IOC đầy đủ (hash, IP, domain) được công bố trong white paper của ESET và GitHub repository. Danh sách sau là các indicator network/host đã được xác nhận công khai.

Network Indicators

# Slack API endpoint (C2 qua LaxGopher)
api.slack.com
 
# Discord API endpoint (C2 qua RatGopher)
discord.com/api/
 
# Microsoft Graph API (C2 qua BoxOfFriends)
graph.microsoft.com
 
# File exfiltration
file.io
 
# Outlook account được attacker sử dụng
barrantaya.1010@outlook[.]com

Host-Based Indicators

# DLL side-load filename
whisper.dll
 
# Process injection target
svchost.exe (new instance spawned by malicious process)
 
# File types targeted bởi CompactGopher
*.doc, *.docx, *.jpg, *.xls, *.xlsx, *.txt, *.pdf, *.ppt, *.pptx

Hash và Binary IOC

# Tham khảo đầy đủ tại:
# https://github.com/eset/malware-ioc/tree/master/gopherwhisper
# White paper: https://web-assets.esetstatic.com/wls/en/papers/white-papers/gopherwhisper-burrow-full-malware.pdf

6. Detection Rules

KQL — Microsoft Sentinel (Phát hiện kết nối SaaS API bất thường từ svchost)

// Phát hiện svchost.exe kết nối tới Slack/Discord/Graph API
DeviceNetworkEvents
| where InitiatingProcessFileName == "svchost.exe"
| where RemoteUrl has_any (
    "slack.com/api",
    "discord.com/api",
    "graph.microsoft.com",
    "file.io"
)
| where InitiatingProcessParentFileName !in ("services.exe", "wininit.exe")
| project Timestamp, DeviceName, RemoteUrl, RemoteIP, 
          InitiatingProcessFileName, InitiatingProcessParentFileName,
          InitiatingProcessCommandLine
| order by Timestamp desc

KQL — DLL Side-Loading với tên đáng ngờ

// Phát hiện load whisper.dll hoặc DLL không rõ nguồn gốc vào svchost
DeviceImageLoadEvents
| where FileName =~ "whisper.dll"
    or (InitiatingProcessFileName == "svchost.exe" 
        and FolderPath !startswith "C:\\Windows\\System32"
        and FolderPath !startswith "C:\\Windows\\SysWOW64")
| project Timestamp, DeviceName, FileName, FolderPath, 
          SHA256, InitiatingProcessFileName

Sigma Rule — Process Injection vào svchost

title: Suspicious svchost.exe Spawned with Non-Standard Parent
id: gw-001-svchost-injection
status: experimental
description: Phát hiện svchost.exe được tạo bởi process không hợp lệ (kỹ thuật JabGopher)
author: SOC Team
date: 2026-05-04
references:
  - https://www.welivesecurity.com/en/eset-research/gopherwhisper-burrow-full-malware/
logsource:
  category: process_creation
  product: windows
detection:
  selection:
    Image|endswith: '\svchost.exe'
  filter_legitimate:
    ParentImage|endswith:
      - '\services.exe'
      - '\wininit.exe'
      - '\MsMpEng.exe'
  condition: selection and not filter_legitimate
falsepositives:
  - Một số software hợp pháp có thể spawn svchost trực tiếp (verify thủ công)
level: high
tags:
  - attack.defense_evasion
  - attack.t1055
  - attack.t1574.002

Sigma Rule — Kết Nối C2 qua SaaS từ Process Không Thường

title: Suspicious SaaS API Connections from Unusual Processes
id: gw-002-saas-c2
status: experimental  
description: Phát hiện kết nối tới Slack/Discord/Graph API từ process không phải browser/client thông thường
author: SOC Team
date: 2026-05-04
references:
  - https://www.welivesecurity.com/en/eset-research/gopherwhisper-burrow-full-malware/
logsource:
  category: network_connection
  product: windows
detection:
  selection:
    DestinationHostname|contains:
      - 'slack.com'
      - 'discord.com'
      - 'graph.microsoft.com'
      - 'file.io'
  filter_legitimate_processes:
    Image|contains:
      - '\Slack\app-'
      - '\Discord\app-'
      - '\Microsoft\Teams'
      - '\msedge.exe'
      - '\chrome.exe'
      - '\firefox.exe'
      - '\outlook.exe'
  condition: selection and not filter_legitimate_processes
falsepositives:
  - Ứng dụng enterprise sử dụng Slack/Discord API hợp lệ — cần whitelist
level: medium
tags:
  - attack.command_and_control
  - attack.t1102
  - attack.t1071.001

7. Nhận Định Chuyên Gia

Chiến lược C2 đa dạng — ưu điểm và giới hạn

GopherWhisper đặt cược vào một giả thuyết đúng: hầu hết firewall enterprise không inspect nội dung HTTPS tới các SaaS tier-1 như Slack, Discord, hay Microsoft Graph. Traffic tới api.slack.com hay graph.microsoft.com trông hoàn toàn bình thường — không khác gì nhân viên dùng Slack chat hoặc Teams check email.

Tuy nhiên, chiến lược này có điểm yếu rõ ràng: behavior của process gọi API. Một svchost.exe kết nối tới api.slack.com — mà không phải từ Slack client chính thức — là một anomaly rõ ràng nếu SOC có coverage đủ tốt trên network layer. Vấn đề là phần lớn tổ chức chưa triển khai correlation giữa process identity và network destination.

Từ kinh nghiệm SOC, đây là gap thường gặp: rule SIEM phát hiện port/IP C2 truyền thống nhưng thiếu rule phát hiện "legitimate domain, illegitimate process." GopherWhisper khai thác đúng khoảng trống này.

So sánh với các nhóm APT Trung Quốc đã biết

Kỹ thuật SaaS abuse không phải mới — Evasive Panda đã dùng cloud services cho C2 trong Operation CloudScout (2024), và nhiều nhóm APT (kể cả Nga) đã dùng email draft làm dead drop từ lâu. Điểm khác biệt của GopherWhisper là độ phong phú của bộ công cụ cho một nhóm mới: 7 tools với 3 kênh C2 độc lập, viết bằng Go — ngôn ngữ đang trở thành lựa chọn ưu tiên cho malware development vì cross-platform, binary tự chứa, và khó reverse hơn so với C/C++ truyền thống.

Mức độ đe dọa với khu vực Đông Nam Á

GopherWhisper hiện chưa có báo cáo nhắm vào Đông Nam Á. Nhưng pattern của nhiều nhóm APT Trung Quốc là bắt đầu từ một khu vực địa lý cụ thể trước khi mở rộng. Các tổ chức chính phủ, cơ sở hạ tầng năng lượng, và ngành telecom tại Đông Nam Á — bao gồm Việt Nam — vẫn là target có giá trị cao với espionage group nhà nước Trung Quốc.

Điểm đáng lo ngại hơn là "dozens of other victims" mà ESET đề cập từ phân tích C2 traffic — nhưng không có thông tin về địa lý. Những nạn nhân đó có thể nằm ở bất kỳ đâu.


8. Khuyến Nghị

Immediate (0–24h)

  • Block/alert kết nối từ svchost.exe tới api.slack.com, discord.com/api, graph.microsoft.com khi process parent không phải services.exe hoặc wininit.exe.
  • Hunt toàn bộ whisper.dll trên hệ thống: Get-ChildItem -Path C:\ -Filter "whisper.dll" -Recurse -ErrorAction SilentlyContinue
  • Thêm barrantaya.1010@outlook[.]com và domain file.io vào watchlist (với context — file.io là dịch vụ hợp pháp, cần xem xét kỹ trước khi block toàn bộ).

Short-term (1–7 ngày)

  • Deploy Sigma rules gw-001gw-002 vào SIEM.
  • Audit các ứng dụng đang gọi Microsoft Graph API trong môi trường — đảm bảo chỉ có ứng dụng đã đăng ký hợp lệ.
  • Kiểm tra log Azure AD/Entra ID để phát hiện OAuth token grant bất thường cho Microsoft Graph scopes.
  • Download và ingest IOC đầy đủ từ ESET GitHub: https://github.com/eset/malware-ioc/tree/master/gopherwhisper

Long-term

  • Xem xét triển khai SSL inspection cho SaaS traffic từ endpoint — cần cân nhắc privacy policy và hiệu năng.
  • Tăng cường process-to-network correlation trong detection pipeline: không chỉ inspect destination, mà cần identify process nào đang gọi.
  • Xây dựng baseline traffic profile cho các SaaS platform phổ biến để phát hiện deviation hiệu quả hơn.

Tài Liệu Tham Khảo

  1. ESET Research — "GopherWhisper: A burrow full of malware" (23/04/2026) — https://www.welivesecurity.com/en/eset-research/gopherwhisper-burrow-full-malware/
  2. BleepingComputer — "New GopherWhisper APT group abuses Outlook, Slack, Discord for comms" — https://www.bleepingcomputer.com/news/security/new-gopherwhisper-apt-group-abuses-outlook-slack-discord-for-comms/
  3. The Hacker News — "China-Linked GopherWhisper Infects 12 Mongolian Government Systems" — https://thehackernews.com/2026/04/china-linked-gopherwhisper-infects-12.html
  4. ESET White Paper — https://web-assets.esetstatic.com/wls/en/papers/white-papers/gopherwhisper-burrow-full-malware.pdf
  5. ESET IOC Repository — https://github.com/eset/malware-ioc/tree/master/gopherwhisper

More from this blog

F

FPT IS Security

766 posts

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