Sophisticated VOID#GEIST Malware Campaign Uses Script-Based Delivery for Encrypted RATs

Cybersecurity experts have recently uncovered a sophisticated multi-stage malware campaign, dubbed VOID#GEIST, that employs batch scripts to deploy encrypted remote access trojans (RATs) such as XWorm, AsyncRAT, and Xeno RAT. This campaign exemplifies the evolving tactics of cyber attackers who are increasingly favoring script-based delivery methods that closely mimic legitimate user activities.

Initial Infection Vector

The attack begins with a batch script distributed through phishing emails, which is retrieved from a TryCloudflare domain. Upon execution, this script operates within the current user’s privilege level, avoiding any attempts to escalate privileges. This approach allows the malware to blend seamlessly with routine administrative tasks, thereby reducing the likelihood of detection.

Decoy Mechanism and Persistence

To divert the user’s attention, the malware launches Google Chrome in full-screen mode to display a decoy PDF, typically a financial document or invoice. This visual distraction conceals the execution of a PowerShell command that re-runs the original batch script in a hidden window. For persistence, an auxiliary batch script is placed in the Windows Startup directory, ensuring execution upon each user login. This method operates entirely within the user’s privilege context, avoiding modifications to system-wide registry keys or the creation of scheduled tasks, thus minimizing the forensic footprint.

Payload Deployment and Execution

In the subsequent phase, the malware contacts a TryCloudflare domain to download additional payloads packaged in ZIP archives. These archives contain:

– `runn.py`: A Python-based loader script that decrypts and injects encrypted shellcode payloads into memory.

– `new.bin`: Encrypted shellcode corresponding to XWorm.

– `xn.bin`: Encrypted shellcode corresponding to Xeno RAT.

– `pul.bin`: Encrypted shellcode corresponding to AsyncRAT.

– `a.json`, `n.json`, and `p.json`: Key files containing decryption keys required by the Python loader to decrypt the shellcode at runtime.

The attack sequence also deploys a legitimate embedded Python runtime directly from python.org. This strategy ensures that the malware operates independently of the system’s existing Python installation, enhancing portability and stealth. By embedding a legitimate interpreter, the malware creates a self-contained execution environment capable of decrypting and injecting payload modules without relying on external system components.

Advanced Injection Techniques

The primary objective is to utilize the Python runtime to execute `runn.py`, which decrypts and runs the XWorm payload using Early Bird Asynchronous Procedure Call (APC) injection. This technique involves injecting malicious code into separate instances of explorer.exe, allowing the malware to execute directly in memory and evade disk-based detection mechanisms. Additionally, the malware leverages a legitimate Microsoft binary, AppInstallerPythonRedirector.exe, to invoke Python and launch Xeno RAT. In the final stage, the Python loader employs the same injection mechanism to deploy AsyncRAT.

Command and Control Communication

The infection chain concludes with the malware sending a minimal HTTP beacon to attacker-controlled command-and-control (C2) infrastructure hosted on TryCloudflare, confirming the successful compromise. The specific targets of this campaign remain unidentified, and it is unclear whether any successful breaches have occurred.

Implications and Detection Strategies

The VOID#GEIST campaign underscores a significant shift in malware deployment strategies, moving away from standalone executables toward complex, script-based delivery frameworks. These frameworks utilize batch scripts for orchestration, PowerShell for stealthy staging, legitimate embedded runtimes for portability, and raw shellcode executed directly in memory for persistence and control. This fileless execution mechanism minimizes opportunities for disk-based detection, allowing threat actors to operate within compromised systems without triggering security alerts.

From a detection standpoint, repeated process injection into explorer.exe within short time frames serves as a strong behavioral indicator correlating across stages of the attack. Security professionals should monitor for such patterns and implement behavioral analysis techniques to identify and mitigate similar threats.

Conclusion

The discovery of the VOID#GEIST malware campaign highlights the evolving sophistication of cyber threats and the necessity for adaptive defense mechanisms. Organizations must remain vigilant, continuously updating their security protocols to detect and respond to such advanced multi-stage attacks effectively.