Evolution of SprySOCKS: Analyzing the New Windows-Based Backdoor Variants

For much of its operational lifespan, the SprySOCKS backdoor has been a staple of the Linux environment, utilized extensively by the threat actor known as FishMonger (also identified as Earth Lusca or TAG-22). However, recent intelligence indicates a significant evolution in the adversary’s toolkit: the transition to Windows.

According to ESET research, two previously undocumented Windows builds have surfaced. These variants—internally designated as WIN_DRV and WIN_PLUS—maintain the original SprySOCKS protocol and command architecture while introducing sophisticated, Windows-native exploitation and persistence mechanisms.

Telemetry suggests active exploitation throughout 2023 and 2024, with a primary focus on government entities in Honduras, Taiwan, Thailand, and Pakistan. The core backdoor functionality remains robust, supporting over 30 commands for system reconnaissance, process/service management, file manipulation, SOCKS proxying, and interactive shell access. The implementation leverages open-source libraries such as HP-Socket for networking and Crypto++ for cryptographic operations, following the established multi-protocol, AES-ECB encrypted payload design.

Execution chain of the SprySOCKS WIN_DRV variant (Source: ESET).
Execution chain of the SprySOCKS WIN_DRV variant (Source: ESET).

Technical Breakdown: WIN_PLUS vs. WIN_DRV

The two variants represent different levels of operational complexity, tailored for varying degrees of stealth.

WIN_PLUS: The Lightweight Variant

The WIN_PLUS build utilizes a first-stage loader designed to mimic a print processor. This loader decrypts an AES-128-ECB encrypted container (using a hardcoded key) located within spool directories. It then employs techniques reminiscent of process doppelgänging to inject the backdoor into svchost.exe. Persistence is maintained by registering a custom print processor, allowing the malware to reside quietly within standard Windows printing workflows.

WIN_DRV: The Kernel-Mode Powerhouse

The WIN_DRV variant is significantly more advanced, aimed at deep system integration and evasion. Its execution chain begins with DLL side-loading and scheduled tasks to escalate privileges to SYSTEM. Once established, it deploys two critical kernel-mode components:

  • DriverLoader: A signed component that memory-maps and launches the primary driver in-memory.
  • RawWNPF: A sophisticated rootkit driver utilizing Minifilter and Windows Filtering Platform (WFP) drivers.

The RawWNPF driver acts as the primary stealth engine. It intercepts NtQuerySystemInformation to mask malicious processes, implements filesystem minifilter callbacks to hide its own files and registry keys, and utilizes WFP callouts to manipulate IPv4 traffic. One of its most notable capabilities is the ability to “hijack” TCP traffic; when the driver detects specifically crafted data on any open port, it transparently redirects the flow to the backdoor’s hidden listening port. Because this port is invisible to standard diagnostic tools like netstat, the backdoor remains effectively invisible to most network monitoring.

Service registry key created by the SprySOCKS WIN_DRV loader (Source: ESET).
Service registry key created by the SprySOCKS WIN_DRV loader (Source: ESET).

To bypass modern security requirements, the attackers have utilized a leaked PastDSE certificate to sign their drivers, ensuring they bypass signature enforcement on targeted systems. Furthermore, there is emerging evidence suggesting the possible use of a UEFI bootkit (potentially leveraging CVE-2023-24932) to achieve even deeper persistence.

Example SprySOCKS C&C message as seen in Wireshark (left), and its contents after decoding and decryption (right) (Source: ESET).
Example SprySOCKS C&C message as seen in Wireshark (left), and its contents after decoding and decryption (right) (Source: ESET).

Defensive Recommendations

Defenders should prioritize hunting for the following indicators of compromise (IOCs):

  • Suspicious DLL side-loading involving signed executables that have been renamed to mimic legitimate Microsoft services.
  • Encrypted containers located in %SystemRoot%\Fonts or spool directories.
  • Anomalous WFP callouts and unexplained hidden processes or network connections.
  • Outbound traffic directed toward the 207.148.64.0/20 (Vultr-hosted) range.

Indicators of Compromise (IOCs)

Files

SHA-1 Filename Detection Description
955BFC3DCC867256F9F46A606DEB0779FA3416D8 KX1B5206BDC1743DD.dat Win64/SprySOCKS.A Encrypted SprySOCKS DriverLoader driver.
44DC4A08C5EB0972C8E18B0E01284E06F09006BB bthcam.sys Win64/Agent.ESB SprySOCKS DriverLoader driver.
AB87B29B6F79487C75CA08D102E79001E536F083 KW1B5206BDC1743FP.dat Win64/SprySOCKS.A Encrypted SprySOCKS RawWNPF driver.
6490B8E4AADE25A3EE2DA9A47F312DB2122470BC X1B5206BDC1743DD.dat Win64/SprySOCKS.A Encrypted container for WIN_DRV components.
E7484C24B88A1A2407A8F09D734F9A993670285B klelam00007.zip Multi-detection ZIP archive containing WIN_DRV components and side-loading binaries.
621D1952839BE4B0A1B0E66E87BCE5062CA368ED tpsvcloc.dll Win64/Agent.CXZ SprySOCKS loader.
2457EED2AB28E37741F10914EF929DAD2C8079D4 VSPMsg.dll Win64/Agent.CXZ First-stage loader for the SprySOCKS loader.
D2C706B1EAF662BF0CE124B5032F73ED84BDA24A N/A Win64/SprySOCKS.A WIN_PLUS variant of the SprySOCKS backdoor.
5F3B87CEF56683D9A9E19186E0FD0D8019B559C4 N/A Win64/Agent.CXZ SprySOCKS loader.
C793CA31E3F6628B5C8986146953BF66232E9A30 config.dat Win64/SprySOCKS.A Encrypted container for the WIN_PLUS variant.
037DB2445F3D72388CB2CF8510563148E5A184BE N/A BAT/Runner.KS Batch script for WIN_DRV persistence.

 

Related Articles

Back to top button