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
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.
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.
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
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.
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.
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.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_PLUSvàWIN_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:
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.
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_DRVbiế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ủanetstat.exevà 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\ và %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 (key0x44)
SOCKS Proxy
Các lệnh 0x23–0x26 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.dllhoặc scheduled taskApphostRagistreationVerifier.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





