Skip to main content

Command Palette

Search for a command to run...

FishMonger Mở Rộng Chiến Dịch Gián Điệp: SprySOCKS Chính Thức Tấn Công Windows

Updated
20 min readView as Markdown
FishMonger Mở Rộng Chiến Dịch Gián Điệp: SprySOCKS Chính Thức Tấn Công Windows

Tóm tắt chiến dịch

Gần đây, các nhà nghiên cứu bảo mật đã phát hiện chiến dịch tấn công quy mô lớn nhắm vào các tổ chức chính phủ tại khu vực Châu Á (Đài Loan, Thái Lan, Pakistan) và Trung Mỹ (Honduras), được cho là do nhóm APT FishMonger (thuộc hệ sinh thái Winnti Group - Trung Quốc) thực hiện. Nhóm này đã chuyển đổi mã độc SprySOCKS backdoor từ Linux sang Windows, gia tăng đáng kể mức độ kiên trì (persistence) và khả năng ẩn mình. Biến thể mới nhất sử dụng kernel driver để hoạt động như một rootkit, lạm dụng Print Spooler, ẩn mọi hoạt động mạng và thiết lập một "passive TCP backdoor". Đặc biệt, có bằng chứng cho thấy chúng đã bắt đầu khai thác UEFI bootkit (CVE-2023-24932) để duy trì quyền kiểm soát vĩnh viễn trên hệ thống mục tiêu. Lỗ hổng đầu vào chủ yếu là các ứng dụng public-facing chưa được vá lỗi. Khuyến nghị các tổ chức rà soát ngay lập tức dịch vụ Print Spooler và cập nhật các bản vá bảo mật mới nhất cho các máy chủ công khai.

Phân tích nhóm APT FishMonger (I-SOON)

FishMonger là ai?

FishMonger là một nhóm Advanced Persistent Threat (APT) được đánh giá có liên hệ với Trung Quốc, chuyên thực hiện các chiến dịch gián điệp mạng nhằm vào các tổ chức chính phủ, ngoại giao, viễn thông và công nghệ. Nhóm này được biết đến dưới nhiều định danh khác nhau như Earth Lusca, TAG-22, Aquatic Panda và Red Dev 10.

Mục tiêu chính của FishMonger là thu thập thông tin tình báo chiến lược, giám sát hoạt động của các tổ chức mục tiêu và duy trì quyền truy cập dài hạn trong hệ thống bị xâm nhập. Nhóm được đánh giá có trình độ kỹ thuật cao, liên tục phát triển công cụ mới và áp dụng các kỹ thuật né tránh phát hiện ngày càng tinh vi.

Lịch sử hoạt động

  1. Giai đoạn 2012–2018
    FishMonger được ghi nhận tham gia nhiều chiến dịch gián điệp mạng tại khu vực châu Á - Thái Bình Dương. Các hoạt động ban đầu chủ yếu tập trung vào:

    • Cơ quan chính phủ.

    • Bộ ngoại giao.

    • Tổ chức nghiên cứu chính sách.

    • Nhà cung cấp viễn thông.

    Trong giai đoạn này, nhóm chủ yếu sử dụng web shell, backdoor tùy chỉnh và các công cụ mã nguồn mở được chỉnh sửa.

  2. Giai đoạn 2019–2023
    Nhóm mở rộng phạm vi hoạt động sang: Đông Nam Á, Nam Á và cả khu vực Mỹ Latinh.

    Các chiến dịch bắt đầu sử dụng nhiều malware tự phát triển hơn nhằm giảm khả năng bị phát hiện và tăng cường tính bền vững trong môi trường nạn nhân.

    Đây cũng là giai đoạn xuất hiện các công cụ như: FishProxy, ShadowPad (trong một số chiến dịch), SprySOCKS Linux.

  3. Giai đoạn 2024–2026
    Các nghiên cứu mới của ESET cho thấy FishMonger đã phát triển thành công các biến thể Windows của SprySOCKS.

    Hai biến thể đáng chú ý gồm:

    • WIN_PLUS

    • WIN_DRV

    Đặc biệt, WIN_DRV tích hợp driver kernel nhằm triển khai các chức năng rootkit, cho phép ẩn tiến trình, kết nối mạng, tệp tin và khóa Registry.

    Đây là dấu hiệu cho thấy FishMonger đang chuyển sang các kỹ thuật stealth ở mức kernel tương tự nhiều nhóm APT cấp quốc gia khác.

Mục tiêu tấn công

FishMonger thường nhắm vào các quốc gia như: Đài Loan, Thái Lan, Pakistan, Philippines, Malaysia, Honduras, Các quốc gia Mỹ Latinh và đặc biệt trong đó có cả Việt Nam.

Bên cạnh đó mục tiêu của FishMonger cũng nhắm đến rất nhiều lĩnh vực khác nhau từ cơ quan chính phủ: Bộ ngoại giao, Bộ quốc phòng, Cơ quan quản lý nhà nước đến Viễn thông, công nghệ, nghiên cứu và học thuật: Nhà mạng, ISP, Nhà cung cấp hạ tầng mạng.

Kỹ thuật sử dụng

FishMonger thường sử dụng:

  • Spear-phishing email.

  • Watering Hole Attack.

  • Khai thác lỗ hổng trên máy chủ Internet-facing.

  • Tài khoản bị đánh cắp.

Timeline sự kiện

  1. Tháng 9/2023: Trend Micro công bố báo cáo đầu tiên về việc Earth Lusca (FishMonger) sử dụng một backdoor mới trên Linux, được đặt tên là SprySOCKS.

  2. Năm 2023 – Đầu 2024: FishMonger âm thầm triển khai biến thể SprySOCKS trên môi trường Windows để tấn công các tổ chức chính phủ ở nhiều quốc gia.

  3. Tháng 4/2024: Một tệp nén chứa mã độc có tên klelam00007.zip được tải lên VirusTotal, mở đường cho việc phân tích chuyên sâu.

  4. Tháng 6/2026: ESET Research công bố phân tích chi tiết về 2 biến thể SprySOCKS dành cho Windows (WIN_PLUSWIN_DRV).

Kill Chain & Phân tích kỹ thuật chi tiết

Truy cập ban đầu

Chiến thuật quen thuộc của FishMonger là nhắm vào các máy chủ không được bảo vệ tốt (public-facing servers). Dù vector ban đầu của chiến dịch này chưa được khẳng định 100%, tuy nhiên ESET telemetry cho thấy việc xâm nhập diễn ra thông qua khai thác lỗ hổng N-day trên các ứng dụng máy chủ.

Sau khi xâm nhập thành công, mã độc sử dụng một kịch bản script (.bat) để sao chép tất cả các tệp thực thi vào thư mục hệ thống %SystemRoot%\Fonts nhằm duy trì hoạt động và chuẩn bị cho quá trình sideloading.

Duy trì quyền truy cập

FishMonger áp dụng nhiều kỹ thuật kiên trì (persistence) khác nhau tùy theo phiên bản:

  • Tạo Scheduled Task: Tạo tác vụ giả mạo tên là ApphostRagistreationVerifier để chạy một tệp nhị phân hợp lệ bị đổi tên.

  • Lạm dụng Print Spooler (T1543): Mã độc sao chép payload dưới dạng thư viện in ấn (port monitor) và buộc spoolsv.exe (tiến trình Print Spooler hợp lệ của Windows) nạp thư viện chứa mã độc khi khởi động.

  • UEFI Bootkit (T1542.003): ESET ghi nhận dấu hiệu FishMonger khai thác lỗ hổng CVE-2023-24932 (Windows Secure Boot bypass) để triển khai bootkit ở tầng UEFI, đảm bảo backdoor có thể sống sót sau khi cài lại hệ điều hành hoặc định dạng ổ cứng.

Như ở đây chúng ta có thể thấy kẻ tấn công đã thiết lập quyền duy trì truy cập thông qua file.bat. Payload sẽ được chạy mỗi lần boot với quyền SYSTEM. Điểm đặc biệt là chúng sử dụng thư mục "C:\Windows\Fonts", nhiều loại malware cũng sử dụng các thư mục hệ thống như này để có thể ẩn Payload do người dùng thường ít kiểm tra tới.

Defense Evasion & DLL Side-Loading

Các tệp hợp lệ bị lợi dụng (như AppHostRegistrationVerifier.exe hoặc lexprsrv.exe) sẽ sideload thư viện libsprysocks.dll – nơi chứa lõi của SprySOCKS backdoor (được tùy biến từ mã nguồn mở Trochilus RAT).

Kernel-level Stealth: WIN_DRV và Passive TCP Backdoor

Điểm đột phá nhất trong chiến dịch này là việc FishMonger phát triển phiên bản WIN_DRV. Phiên bản này đi kèm một kernel driver có tên RawWNPF, hoạt động như một rootkit với hai tính năng cốt lõi:

  1. Rootkit che giấu: Driver móc sâu vào hệ thống để tàng hình các tiến trình, tệp tin, registry keys và các kết nối mạng liên quan đến backdoor.

  2. Passive TCP Backdoor: Thay vì kết nối ra ngoài (reverse shell) hoặc mở một port lắng nghe lộ liễu, WIN_DRV biến bất kỳ port TCP hợp lệ nào đang mở trên máy chủ (ví dụ port 80, 443) thành port giao tiếp của nó. Khi driver phát hiện cấu trúc dữ liệu đặc biệt (magic packet) trong TCP header của luồng traffic đi vào, nó sẽ bí mật "nắn dòng" (divert) gói tin đó sang một local port ngẫu nhiên mà backdoor đang thực sự lắng nghe. Điều này giúp mã độc qua mặt hoàn toàn các firewall và hệ thống giám sát kết nối thông thường.

Process Injection: Process Doppelgänging

Chuỗi thực thi của SprySOCKS sử dụng kỹ thuật Process Doppelgänging (T1055.013) — một phương pháp injection tinh vi lạm dụng NTFS Transactions. SprySOCKS loader giải mã backdoor từ container được mã hóa AES-128 ECB (key: uXQLESMXGaRMs6BL), sau đó inject vào tiến trình svchost.exe mới được tạo thông qua Process Doppelgänging. Kỹ thuật này khiến payload không bao giờ tồn tại dưới dạng file thông thường trên đĩa, qua mặt phần lớn các giải pháp EDR dựa trên file scanning.

C2 Communication — Kiến trúc đa giao thức

SprySOCKS backdoor (DLL gốc: PrcsServer.dll, export function: Stop) xây dựng hạ tầng C&C trên nền tảng thư viện mạng mã nguồn mở HP-Socket và sử dụng thư viện Crypto++ cho các hàm mật mã. Backdoor hỗ trợ cả hai vai trò client và server trên cả ba giao thức: TCP, UDP, và WebSocket.

Cấu hình C&C nhúng (Hardcoded)

Cấu hình C&C được nhúng trực tiếp trong binary, bao gồm:

  • Tối đa 3 địa chỉ IP + port cho kết nối outbound (TCP, UDP, WebSocket client).

  • Tối đa 3 port lắng nghe cho kết nối inbound (TCP, UDP, WebSocket server).

Ví dụ cấu hình từ biến thể WIN_PLUS

TCP Client → 207.148.78[.]36:443

UDP Client → 207.148.78[.]36:53

WebSocket → 207.148.78[.]36:80

TCP Server → Listening port: 53781

Đáng chú ý, cả TCP port 443 và UDP port 53 đều là các port phổ biến (HTTPS và DNS), cho phép traffic C&C hòa lẫn vào lưu lượng mạng bình thường.

Định dạng giao thức C&C

Mỗi giao thức sử dụng một magic value riêng biệt trong header để nhận diện traffic hợp lệ:

Giao thức Magic Value Vị trí trong Header Kích thước Header
TCP 0xACACBCBC Offset 0x04 12 bytes
UDP 0xACACBFBC Offset 0x1C 36 bytes
WebSocket 0x1BDCCBAA Masking-Key (RFC 6455) Theo chuẩn WS

Cấu trúc TCP header (12 bytes): [CRC32 (4B)] [Magic 0xACACBCBC (4B)] [Data Size (4B)]

Sau header là phần payload được xử lý qua pipeline: Base64 encode → AES-128 ECB encrypt (key: QFTHEYjzX3RBOMgZ), kèm một WORD 0x0003 chỉ định phương thức mã hóa. Quy trình này đảm bảo dữ liệu C&C luôn được mã hóa trên đường truyền.

Cơ chế tự bảo vệ kết nối

Biến thể WIN_DRV gọi hai IOCTL của driver RawWNPF trước khi thiết lập bất kỳ kết nối nào:

  • IOCTL 0x220340: Ẩn các kết nối tới/từ các địa chỉ và port trong cấu hình khỏi output của netstat.exe và các công cụ tương tự.

  • IOCTL 0x220200: Kích hoạt tính năng TCP diversion — cho phép backdoor nhận lệnh thông qua bất kỳ port TCP đang mở nào.

Backdoor còn thao tác firewall bằng cách xóa rồi tạo lại rule giả mạo tên "Core Networking - Packet Too Big(ICMPv6 - In)" để mở port lắng nghe:

netsh advfirewall firewall delete rule name="Core Networking - Packet Too Big(ICMPv6 - In)"

netsh advfirewall firewall add rule name="Core Networking - Packet Too Big(ICMPv6 - In)" dir=in action=allow protocol=tcp localport=53781

Bảng lệnh C&C (30+ Commands)

Backdoor nhận lệnh thông qua trường __msgid trong message JSON đã giải mã. Bảng dưới đây liệt kê đầy đủ các lệnh được hỗ trợ:

Message ID Chức năng Nhóm
0x09 Thu thập thông tin hệ thống (hostname, OS, CPU, RAM, network adapters, privileges, ngôn ngữ, thời gian, phiên bản backdoor WIN_DRV/WIN_PLUS) Reconnaissance
0x0A Khởi chạy interactive console (cmd.exe) Execution
0x0B Ghi dữ liệu vào interactive console Execution
0x0D Dừng interactive console Execution
0x0E Thiết lập kênh C&C dự phòng (backup channel) C2 Management
0x0F Chuyển tiếp C&C message tới target khác C2 Management
0x11 Liệt kê toàn bộ tiến trình đang chạy Discovery
0x12 Liệt kê modules của một tiến trình (theo PID) Discovery
0x13 Kết thúc (kill) tiến trình theo PID Impact
0x14 Đóng toàn bộ kết nối C2 Management
0x16 Lấy thông tin kênh C&C hiện tại C2 Management
0x17 Khởi tạo và bật thêm kênh C&C mới (TCP/UDP/WebSocket) C2 Management
0x19 Tự gỡ cài đặt (uninstall) backdoor và thoát Anti-Forensics
0x1E Liệt kê toàn bộ Windows Services Discovery
0x1F Cấu hình StartType cho một service Persistence
0x20 Khởi chạy service theo tên Execution
0x21 Gọi ControlService với tham số tùy chỉnh Execution
0x22 Xóa service khỏi Service Manager Defense Evasion
0x23 Khởi tạo SOCKS proxy Lateral Movement
0x24 Dừng SOCKS proxy Lateral Movement
0x25 Gửi dữ liệu qua SOCKS proxy Lateral Movement
0x26 Lệnh liên quan SOCKS proxy (quản lý) Lateral Movement
0x2A Upload tệp từ máy nạn nhân lên C&C Exfiltration
0x2B Lệnh hỗ trợ truyền tệp Exfiltration
0x2C Download tệp từ C&C xuống máy nạn nhân Ingress Tool Transfer
0x2D Lệnh hỗ trợ truyền tệp Ingress Tool Transfer
0x3C Liệt kê dung lượng ổ đĩa trống Discovery
0x3D Liệt kê tệp trong thư mục chỉ định Discovery
0x3E Xóa tệp Impact
0x3F Tạo thư mục File Management
0x40 Đổi tên tệp File Management
0x41 Thực thi một tệp có sẵn trên hệ thống Execution
0x42 Sao chép tệp File Management
0x43 Liệt kê tệp trong thư mục Recent của Windows (%APPDATA%\Microsoft\Windows\Recent\%APPDATA%\Microsoft\Office\Recent\) Collection

Keylogger tích hợp

Backdoor tích hợp module keylogger, được kích hoạt khi tệp INI %appdata%\Microsoft\Vault\lgf.dat tồn tại với cấu hình [config] key=1. Khi hoạt động, keylogger:

  • Tạo mutex Global\{DCAA7ED8-521B-4EAB-BE21-65254CF59239}

  • Ghi lại keystrokes, dữ liệu clipboard, và tiêu đề cửa sổ đang active

  • Lưu vào tệp %appdata%\Microsoft\Vault\lg.dat, được mã hóa XOR đơn byte (key 0x44)

SOCKS Proxy

Các lệnh 0x230x26 cho phép thiết lập SOCKS proxy trực tiếp trên máy nạn nhân. Tính năng này cho phép kẻ tấn công sử dụng máy nạn nhân làm "bàn đạp" (pivot point) để di chuyển ngang (lateral movement) trong mạng nội bộ, mở rộng phạm vi xâm nhập mà không cần triển khai thêm công cụ trên các máy mục tiêu tiếp theo.

IOC & Artifacts

File Indicators

SHA-1 Filename Detection Mô tả
E7484C24B88A1A2407A8F09D734F9A993670285B klelam00007.zip Win64/Agent.CXZ, Win64/SprySOCKS.A Archive chứa biến thể WIN_DRV đầy đủ
6490B8E4AADE25A3EE2DA9A47F312DB2122470BC X1B5206BDC1743DD.dat Win64/SprySOCKS.A Container mã hóa chứa backdoor WIN_DRV
955BFC3DCC867256F9F46A606DEB0779FA3416D8 KX1B5206BDC1743DD.dat Win64/SprySOCKS.A SprySOCKS DriverLoader driver (encrypted)
AB87B29B6F79487C75CA08D102E79001E536F083 KW1B5206BDC1743FP.dat Win64/SprySOCKS.A RawWNPF driver (encrypted)
44DC4A08C5EB0972C8E18B0E01284E06F09006BB bthcam.sys Win64/Agent.ESB DriverLoader driver (decrypted)
621D1952839BE4B0A1B0E66E87BCE5062CA368ED tpsvcloc.dll Win64/Agent.CXZ SprySOCKS loader (WIN_DRV)
2457EED2AB28E37741F10914EF929DAD2C8079D4 VSPMsg.dll Win64/Agent.CXZ First-stage loader (WIN_PLUS)
C793CA31E3F6628B5C8986146953BF66232E9A30 config.dat Win64/SprySOCKS.A Container mã hóa (WIN_PLUS backdoor + loader)
D2C706B1EAF662BF0CE124B5032F73ED84BDA24A N/A Win64/SprySOCKS.A Backdoor WIN_PLUS (decrypted)
5F3B87CEF56683D9A9E19186E0FD0D8019B559C4 N/A Win64/Agent.CXZ SprySOCKS loader (WIN_PLUS)
037DB2445F3D72388CB2CF8510563148E5A184BE N/A BAT/Runner.KS Batch script persistence (WIN_DRV)

Network Indicators

207.148.78[.]36 (Vultr cloud hosting, IP range 207.148.64.0/20)

  • TCP port: 443

  • UDP port: 53

  • WebSocket port: 80

207.148.75[.]122 (cùng IP range, sử dụng tháng 6/2023)

Host-based Indicators

File Paths (WIN_DRV)

%SystemRoot%\Fonts\ApphostRagistreationVerifier.exe %SystemRoot%\Fonts\tpsvc.dll %SystemRoot%\Fonts\tpsvcloc.dll %SystemRoot%\Fonts\X1B5206BDC1743DD.dat %SystemRoot%\Fonts\KX1B5206BDC1743DD.dat %SystemRoot%\Fonts\KW1B5206BDC1743FP.dat

File Paths (WIN_PLUS)

C:\Windows\System32\spool\drivers\color\config.dat C:\Windows\System32\spool\prtprocs\x64\VSPMsg.dll C:\ProgramData\Microsoft Event\PFs\VSPMsg.dll

Registry Keys

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\vds.exe HKLM\SYSTEM\ControlSet001\Control\Print\Environments\Windows x64\Print Processors\VSPMsg

Scheduled Tasks

ApphostRagistreationVerifier

Mutexes

prcs-server-run fqwhi2d1qaz2 Global{DCAA7ED8-521B-4EAB-BE21-65254CF59239}

Keylogger artifacts

%appdata%\Microsoft\Vault\lgf.dat (config file) %appdata%\Microsoft\Vault\lg.dat (captured keystrokes, XOR key 0x44)

Firewall rule giả mạo

"Core Networking - Packet Too Big(ICMPv6 - In)" (cho phép inbound TCP tới port backdoor)

MITRE ATT&CK Mapping

Tactic ID Technique Mô tả trong chiến dịch
Reconnaissance T1592.004 Gather Victim Host Information: Client Configurations Thu thập hostname, OS, CPU, RAM, privileges, ngôn ngữ hệ thống
T1590.005 Gather Victim Network Information: IP Addresses Thu thập thông tin network adapters và IP
Resource Development T1587.001 Develop Capabilities: Malware FishMonger phát triển SprySOCKS backdoor tùy chỉnh
Execution T1059.003 Command and Scripting Interpreter: Windows Command Shell Interactive cmd.exe shell (lệnh 0x0A)
T1053.005 Scheduled Task/Job: Scheduled Task Tạo scheduled task ApphostRagistreationVerifier
T1569.002 System Services: Service Execution Lạm dụng system services cho execution
T1106 Native API Sử dụng Windows API trực tiếp
Persistence T1547.012 Boot or Logon Autostart Execution: Print Processors Cài đặt loader dưới dạng print processor (VSPMsg)
Privilege Escalation T1546.012 Event Triggered Execution: Image File Execution Options Injection Đăng ký debugger cho vds.exe qua IFEO registry key
Defense Evasion T1205.002 Traffic Signaling: Socket Filters RawWNPF driver cài packet filter, redirect traffic khi phát hiện magic value
T1134.002 Access Token Manipulation: Create Process with Token CreateProcessAsUser với token từ Print Spooler
T1622 Debugger Evasion RawWNPF gọi KdDisableDebugger để vô hiệu hóa kernel debugger
T1140 Deobfuscate/Decode Files or Information Giải mã backdoor từ container AES-encrypted
T1070.004 Indicator Removal: File Deletion Xóa file gốc sau khi copy và cài persistence
T1070.009 Indicator Removal: Clear Persistence Xóa registry value của minifilter driver sau khi load
T1027.007 Obfuscated Files or Information: Dynamic API Resolution Dynamic API resolution trong tất cả components
T1027.013 Obfuscated Files or Information: Encrypted/Encoded File Components lưu trữ dưới dạng AES-encrypted trên đĩa
T1055.013 Process Injection: Process Doppelgänging Inject backdoor vào svchost.exe qua Process Doppelgänging
T1014 Rootkit RawWNPF driver ẩn processes, files, registry, network connections
T1497 Virtualization/Sandbox Evasion Anti-emulation: kiểm tra snxhk.dll, SbieDll.dll, cmdvrt32.dll
T1574.002 Hijack Execution Flow: DLL Side-Loading Side-load SprySOCKS qua legitimate executables
Defense Impairment T1562.004 Disable or Modify System Firewall Thêm firewall rule cho phép inbound traffic tới port backdoor
Discovery T1010 Application Window Discovery Lấy tên foreground window (phục vụ keylogger)
T1083 File and Directory Discovery Liệt kê file/directory (lệnh 0x3D)
T1518.001 Software Discovery: Security Software Discovery Kiểm tra DLL của security products
T1082 System Information Discovery Thu thập toàn diện thông tin hệ thống
T1614.001 System Location Discovery: System Language Discovery Thu thập ngôn ngữ hệ thống
T1007 System Service Discovery Liệt kê services (lệnh 0x1E)
T1124 System Time Discovery Thu thập thời gian hệ thống
Collection T1056.001 Input Capture: Keylogging Keylogger ghi keystrokes vào lg.dat
T1115 Clipboard Data Thu thập clipboard data cùng keylogger
Command and Control T1132.001 Data Encoding: Standard Encoding Base64 encoding trong C&C protocol
T1573.001 Encrypted Channel: Symmetric Cryptography AES-128 ECB mã hóa C&C data
T1008 Fallback Channels Hỗ trợ TCP, UDP, WebSocket song song
T1665 Hide Infrastructure RawWNPF ẩn connections khỏi netstat.exe
T1571 Non-Standard Port Sử dụng non-standard ports cho C&C
T1095 Non-Application Layer Protocol Custom protocol trên TCP/UDP
Exfiltration T1041 Exfiltration Over C2 Channel Upload files qua kênh C&C (lệnh 0x2A)

Nhận định chuyên gia

Sự chuyển dịch của SprySOCKS từ môi trường Linux sang Windows đi kèm với việc áp dụng kernel rootkit và UEFI bootkit cho thấy sự trưởng thành đáng sợ trong năng lực phát triển vũ khí mạng của FishMonger nói riêng và hệ sinh thái APT Trung Quốc nói chung.

Việc vận dụng kỹ thuật "passive TCP backdoor" thông qua kernel driver RawWNPF là một bước đi cực kỳ tinh vi. Trên thực tế, đối với phần lớn các giải pháp Firewall hay Network Security truyền thống, lưu lượng đi vào các port đang mở hợp lệ (như 443 hay 80) được đánh giá là an toàn ở tầng Transport (L4). Kỹ thuật nắn dòng traffic ở mức kernel giúp kẻ tấn công bypass hoàn toàn việc quét port (port scanning) và đánh lừa các quy tắc tường lửa thông thường. Dựa trên kinh nghiệm triển khai SOC tại các tổ chức lớn, chúng tôi nhận thấy các giải pháp không phân tích sâu ở tầng 7 (L7 Deep Packet Inspection) hoặc thiếu tích hợp luồng dữ liệu mạng với dữ liệu host (NDR kết hợp EDR) sẽ "mù hoàn toàn" trước phương thức này.

Ngoài ra, việc khai thác Print Spooler làm phương tiện persistence là một lời nhắc nhở rõ ràng: Print Spooler là một rủi ro kiến trúc muôn thuở của Windows. Hầu hết các máy chủ public-facing không hề có nhu cầu sử dụng dịch vụ in ấn, nhưng nó vẫn được bật theo mặc định.

Khuyến nghị

Immediate (0-24h)

  • Tiến hành rà soát hệ thống để phát hiện sự tồn tại của thư mục/tệp khả nghi: %SystemRoot%\Fonts\libsprysocks.dll hoặc scheduled task ApphostRagistreationVerifier.

  • Khẩn trương vô hiệu hóa dịch vụ Print Spooler trên toàn bộ các máy chủ Windows public-facing (như Web Server, Exchange Server, Domain Controller) nếu không có nhu cầu in ấn thực sự.

  • Cập nhật ngay bản vá cho các lỗ hổng N-day trên các ứng dụng exposed ra Internet.

Short-term (1-7 ngày)

  • Tìm kiếm (Threat Hunting) các dấu hiệu DLL side-loading bằng cách kiểm tra mối liên hệ bất thường giữa các tiến trình hợp lệ của Windows và thư viện DLL không chữ ký số (unsigned DLLs).

  • Cập nhật chữ ký nhận diện IOCs vào hệ thống SIEM/EDR, đặc biệt giám sát các hành vi hook vào tầng mạng ở kernel space.

Long-term

  • Kích hoạt và quản lý chặt chẽ cấu hình Secure Boot trên tất cả các máy chủ vật lý và ảo hóa để ngăn chặn rủi ro từ UEFI Bootkits, đồng thời áp dụng bản vá cho lỗ hổng CVE-2023-24932.

  • Triển khai mô hình kết hợp EDR và NDR để tương quan hóa các điểm mù giữa Network và Host. Đặc biệt, năng lực DPI (Deep Packet Inspection) của NDR là yêu cầu bắt buộc để giải mã các kỹ thuật passive backdoor như biến thể WIN_DRV.

Tài liệu tham khảo

Windows version of SprySOCKS Linux malware used to attack govt orgs

FishMonger’s arsenal upgraded: SprySOCKS for Windows

China-Linked FishMonger Ports SprySOCKS to Windows With Kernel-Level Stealth and UEFI Bootkit Hints - Security Affairs