# Tấn công điều hướng web: Gián điệp từ Trung Quốc nhắm vào các nhà ngoại giao

# Phát hiện chiến dịch

Tháng 3/2025, Google Threat Intelligence Group (GTIG) phát hiện chiến dịch tinh vi do nhóm **UNC6384** – gắn với Trung Quốc – thực hiện. Mục tiêu là các nhà ngoại giao Đông Nam Á và nhiều tổ chức toàn cầu, phục vụ hoạt động gián điệp mạng phù hợp với lợi ích chiến lược của Trung Quốc.

Chiến dịch khai thác **captive portal redirect** để phát tán malware **STATICPLUGIN**, từ đó triển khai backdoor **SOGU.SEC (PlugX)**. Kỹ thuật bao gồm: chứng chỉ ký code hợp lệ, tấn công người-ở-giữa (AitM), và thực thi gián tiếp để né tránh phát hiện.

![https://storage.googleapis.com/gweb-cloudblog-publish/images/deception-in-depth-fig1.max-2100x2100.png](https://storage.googleapis.com/gweb-cloudblog-publish/images/deception-in-depth-fig1.max-2100x2100.png align="left")

*Hình 1. Sơ đồ chuỗi tấn công*

# Kỹ thuật tấn công

Chiến dịch kết hợp giữa việc chiếm quyền điều hướng lưu lượng web ở tầng mạng với giả mạo giao diện người dùng ở tầng trình duyệt, rồi tận dụng chứng chỉ hợp lệ để đánh lừa các cơ chế tin cậy phía endpoint. Kỹ thuật mấu chốt của cuộc tấn công là **captive portal hijack + AitM**, dẫn nạn nhân đến một trang “cập nhật plugin” hợp pháp giả mạo và buộc tải về trình tải xuống đã được ký số.

* **Captive portal hijack / AitM chuyển hướng lưu lượng**
    
    * Trình duyệt (Chrome) kiểm tra captive portal bằng yêu cầu HTTP tới URL cố định `http://www.gstatic.com/generate_204`.
        
    * Kẻ tấn công (thông qua thiết bị biên bị xâm nhập) chèn chuỗi chuyển hướng, đẩy nạn nhân tới **trang đích do chúng kiểm soát**, mở đường phát tán payload.
        
    * Mục tiêu: **đánh cắp xác thực tin cậy** ngay lúc trình duyệt đang làm thủ tục kiểm tra kết nối, nơi người dùng ít nghi ngờ nhất.
        
    
    ![https://storage.googleapis.com/gweb-cloudblog-publish/images/deception-in-depth-fig2.max-1900x1900.png](https://storage.googleapis.com/gweb-cloudblog-publish/images/deception-in-depth-fig2.max-1900x1900.png align="left")
    
    *Hình 2. Chuỗi tấn công Captive portal redirect*
    
* **Trang “cập nhật plugin” dùng TLS hợp lệ để né cảnh báo**
    
    * Giao diện giả lập trang cập nhật phần mềm, dùng **HTTPS** với chứng chỉ **Let’s Encrypt (CN=R10, CN=mediareleaseupdates\[.\]com, hiệu lực 17/05–15/08/2025)**.
        
    * Lợi ích: không hiện “Not Secure/Your connection is not private”, mã hóa luồng khiến phòng thủ dựa trên kiểm tra nội dung khó phát hiện.
        
* **Kịch bản JS tự động tải mã độc + hướng dẫn vượt chính sách**
    
    * Tập lệnh `style3.js` gắn vào trang, khi người dùng bấm **“Install Missing Plugins…”** sẽ chạy hàm `myFunction()` để:
        
        * Thay nền trang bằng ảnh base64 chứa **hướng dẫn thao tác** (xúi người dùng tắt bảo vệ/bỏ qua cảnh báo).
            
        * Điều hướng `window.location` tới `https[:]//mediareleaseupdates[.]com/AdobePlugins.exe` để **tải tự động** file thực thi.
            
    * Thao túng tâm lý nạn nhân: ảnh “hướng dẫn từng bước” + nhãn “plugin thiếu” làm người dùng chủ quan.
        
    
    ![https://storage.googleapis.com/gweb-cloudblog-publish/images/deception-in-depth-fig4.max-1000x1000.png](https://storage.googleapis.com/gweb-cloudblog-publish/images/deception-in-depth-fig4.max-1000x1000.png align="left")
    
    *Hình 3. Landing page của phần mềm độc hại*
    
* **Tải xuống file độc hại đã ký số để vượt qua phòng thủ endpoint**
    
    * `AdobePlugins.exe` là **STATICPLUGIN**, được **ký bởi GlobalSign** dưới danh nghĩa **Chengdu Nuoxin Times Technology Co., Ltd.**
        
    * Chữ ký ngày **09/05/2025** (cert hết hạn **14/07/2025**), cho thấy kẻ tấn công có **chuỗi cung cấp chứng chỉ** và có thể **tái ký** biến thể mới khi hết hạn.
        
* **Chuỗi tải xuống nhiều tầng / DLL side-loading**
    
    * STATICPLUGIN dùng **COM Installer** tải tệp “`20250509.bmp`” (thực chất là **gói MSI**).
        
    * Gói MSI cài 3 tệp, trong đó thực thi hợp pháp **Canon IJ Printer Assistant Tool (**`cnmpaui.exe`) sẽ **side-load** DLL độc hại `cnmpaui.dll` (CANONSTAGER) để giải mã và nạp **SOGU.SEC** vào bộ nhớ.
        
    * Kết quả: **payload chạy in-memory**, giảm bề mặt phát hiện dựa vào file.
        
    
    ![https://storage.googleapis.com/gweb-cloudblog-publish/images/deception-in-depth-fig7.max-2100x2100.png](https://storage.googleapis.com/gweb-cloudblog-publish/images/deception-in-depth-fig7.max-2100x2100.png align="left")
    
    *Hình 4. Landing page của phần mềm độc hại sau khi tải xuống*
    

# Phân tích mã độc

Về kỹ thuật, chuỗi triển khai được thiết kế để “đi đường vòng” mọi nơi có thể: từ tín hiệu tin cậy của trình duyệt (HTTPS), chữ ký code (signed binary), tới cơ chế nạp DLL hợp pháp và **thực thi gián tiếp** qua message queue. Mục tiêu là **che giấu luồng hoạt động** và **tránh gây động tĩnh** cho EDR/AV.

* **STATICPLUGIN (downloader, ngụy trang & ký số hợp lệ)**
    
    * Giao diện **TForm** giả dạng bộ cài **Microsoft Visual C++ 2013 Redistributables** để hợp thức hóa hành vi tải/cài.
        
    * Dùng **Windows COM Installer** tải `https[:]//mediareleaseupdates[.]com/20250509[.]bmp` (MSI trá hình).
        
    * Ý đồ: **mượn tính hợp pháp** của bộ cài/ứng dụng có chữ ký để tránh sự chú ý.
        
        ![https://storage.googleapis.com/gweb-cloudblog-publish/images/deception-in-depth-fig8.max-900x900.png](https://storage.googleapis.com/gweb-cloudblog-publish/images/deception-in-depth-fig8.max-900x900.png align="left")
        
        *Hình 5. Trình tải xuống có chữ ký số hợp lệ*
        
* **CANONSTAGER (launcher, DLL side-load + ẩn luồng)**
    
    * **Side-loading**: `cnmpaui.exe` (hợp pháp) nạp `cnmpaui.dll` (độc hại) theo thứ tự tìm kiếm DLL của Windows.
        
    * **API hashing + Thread Local Storage (TLS)**
        
        * Tự giải tên API bằng **hash** để **che giấu dấu vết API**.
            
        * **Lưu địa chỉ hàm** đã resolve vào **mảng TLS** (trong TIB) thay vì vùng dữ liệu “đáng ngờ”, khiến công cụ phân tích tĩnh **dễ bỏ sót**.
            
            ![https://storage.googleapis.com/gweb-cloudblog-publish/images/deception-in-depth-fig9.max-700x700.png](https://storage.googleapis.com/gweb-cloudblog-publish/images/deception-in-depth-fig9.max-700x700.png align="left")
            
            *Hình 6. Ví dụ về lưu trữ địa chỉ hàm trong mảng TLS*
            
    * **Thực thi gián tiếp qua Window Procedure + Message Queue**
        
        * Đăng ký **WNDCLASS** với Window Procedure tùy biến, tạo **Overlapped Window** kích thước 0×0 (ẩn).
            
        * Gửi thông điệp `WM_SHOWWINDOW (0x0018)` vào message queue (qua `ShowWindow`), rồi chạy **message loop** tiêu chuẩn: `GetMessageW` → `TranslateMessage` → `DispatchMessage`.
            
        * Khi WindowProc nhận `WM_SHOWWINDOW`, **tạo thread mới** để:
            
            1. Đọc `cnmplog.dat` (đã cài từ MSI)
                
            2. **Giải mã RC4 bằng key 16 byte** hard-code
                
            3. Nạp **SOGU.SEC in-memory** và **kích hoạt qua callback** `EnumSystemGeoID`.
                
        * Lợi điểm: **luồng hoạt động bị phân tán/ẩn** trong cơ chế hợp pháp của Windows, **giảm cảnh báo hành vi** bất thường.
            
            ![https://storage.googleapis.com/gweb-cloudblog-publish/images/deception-in-depth-fig10.max-2000x2000.png](https://storage.googleapis.com/gweb-cloudblog-publish/images/deception-in-depth-fig10.max-2000x2000.png align="left")
            
            *Hình 7. Tổng quan về việc thực thi CANONSTAGER bằng cách sử dụng Windows message queue*
            
* **SOGU.SEC (backdoor, in-memory, C2 trực tiếp)**
    
    * Chức năng: thu thập thông tin hệ thống, tải lên/xuống tệp, thực thi **remote shell**.
        
    * Có thể **giao tiếp HTTPS trực tiếp tới IP** `166.88.2[.]90` (không cần tên miền), làm **khó chiến lược chặn theo domain**.
        
    * Toàn bộ chuỗi sau side-loading diễn ra **trong bộ nhớ**, **hạn chế IOC dạng file** và khó bị AV/EDR dựa chữ ký phát hiện.
        
        ![https://storage.googleapis.com/gweb-cloudblog-publish/images/deception-in-depth-fig11.max-500x500.png](https://storage.googleapis.com/gweb-cloudblog-publish/images/deception-in-depth-fig11.max-500x500.png align="left")
        
        *Hình 8. Callback function thực thi trong SOGU.SEC*
        

Tóm lại: Chuỗi tấn công là một đường hầm được xây dựng thông suốt từ tầng mạng (captive portal) → trình duyệt (HTTPS, UI hợp pháp) → endpoint (binary ký số, app hợp pháp) → thực thi nội bộ Windows (message queue/callback), để đưa SOGU.SEC vào bộ nhớ gần như không để lại dấu vết.

# Các IOCs liên quan đến mã độc

| Filename | Value | Description |
| --- | --- | --- |
| cnmpaui.exe | 4ed76fa68ef9e1a7705a849d47b3d9dcdf969e332bd5bcb68138579c288a16d3 | Canon IJ Printer Assistant Tool |
| cnmpaui.dll | e787f64af048b9cb8a153a0759555785c8fd3ee1e8efbca312a29f2acb1e4011 | CANONSTAGER |
| cnmplog.dat | cc4db3d8049043fa62326d0b3341960f9a0cf9b54c2fbbdffdbd8761d99add79 | RC4 Encrypted SOGU.SEC |
| AdobePlugins.exe | 65c42a7ea18162a92ee982eded91653a5358a7129c7672715ce8ddb6027ec124 |  |
| 20250509.bmp (MSI) | 3299866538aff40ca85276f87dd0cefe4eafe167bd64732d67b06af4f3349916 |  |
| SOGU.SEC (memory only) | d1626c35ff69e7e5bde5eea9f9a242713421e59197f4b6d77b914ed46976b933 |  |
| mediareleaseupdates\[.\]com | c8744b10180ed59bf96cf79d7559249e9dcf0f90 |  |
| AdobePlugins.exe | eca96bd74fb6b22848751e254b6dc9b8e2721f96 |  |
|  | https\[:\]//mediareleaseupdates\[.\]com/AdobePlugins\[.\]html | Landing Page |
|  | https\[:\]//mediareleaseupdates\[.\]com/style3\[.\]js | Javascript |
|  | https\[:\]//mediareleaseupdates\[.\]com/AdobePlugins\[.\]exe | STATICPLUGIN |
|  | https\[:\]//mediareleaseupdates\[.\]com/20250509\[.\]bmp | MSI Package |
|  | 103.79.120\[.\]72 | Hosting IP |
|  | 166.88.2\[.\]90 | C2 IP |
|  | Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 10.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729) | SOGU.SEC User Agent |
|  | KNbgxngdS | Mutex Name |
|  | mqHKVbHWWAJwrLXD | RC4 Key |
|  | HKCU\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\CanonPrinter="%APPDATA%\\cnmpaui.exe" 9 780 | Registry Key |
|  | %LOCALAPPDATA%\\DNVjzaXMFO\\ | File Path |
|  | C:\\Users\\Public\\Intelnet\\ | File Path |
|  | C:\\Users\\Public\\SecurityScan\\ | File Path |

# Khuyến nghị

FPT Threat Intelligence khuyến nghị các tổ chức và cá nhân triển khai một số biện pháp nhằm phòng tránh chiến dịch tấn công lợi dụng captive portal và phần mềm hợp pháp để phát tán SOGU backdoor:

* Tăng cường giám sát lưu lượng mạng, đặc biệt với các kết nối captive portal bị chuyển hướng bất thường và truy cập trực tiếp tới IP lạ qua HTTPS.
    
* Kiểm soát file tải xuống từ trình duyệt, chặn thực thi trực tiếp, và giám sát hoạt động cài đặt MSI không rõ nguồn gốc.
    
* Triển khai cơ chế phát hiện kỹ thuật **DLL side-loading**, so khớp hash DLL chuẩn của vendor để ngăn chặn việc nạp DLL giả mạo.
    
* Không dựa hoàn toàn vào chứng chỉ số hoặc binary ký số, cần bổ sung kiểm tra hành vi và thiết lập danh sách publisher tin cậy.
    
* Nâng cao nhận thức người dùng về kỹ thuật lừa đảo “Missing Plugin” và hướng dẫn cài đặt giả mạo.
    
* Rà soát và chặn IOC liên quan, cùng các tệp độc hại được ghi nhận trong chiến dịch.
    

# Tham khảo

* [China-Linked Hackers Hijack Web Traffic to Deliver Backdoor](https://www.securityweek.com/china-linked-hackers-hijack-web-traffic-to-deliver-backdoor/)
    
* [Deception in Depth: PRC-Nexus Espionage Campaign Hijacks Web Traffic to Target Diplomats](https://cloud.google.com/blog/topics/threat-intelligence/prc-nexus-espionage-targets-diplomats)
