Blog Zscaler
Recevez les dernières mises à jour du blog de Zscaler dans votre boîte de réception
Abyssos: Technical Analysis of a New Modular RAT
Introduction
In late June 2026, Zscaler ThreatLabz identified a new malware family that we track as Abyssos. Abyssos is a new modular remote administration tool (RAT) written in C++ that supports a variety of features including credential theft, file exfiltration, and remote access via VNC. Abyssos is in active development with multiple version numbers and different obfuscation passes that are designed to improve evasion from security products.
In this blog post, ThreatLabz provides a technical analysis of Abyssos, including its core features, configuration, obfuscation, network communication protocol, and capabilities.
Key Takeaways
- In late June 2026, ThreatLabz identified a new malware family, Abyssos, which provides remote administration capabilities.
- Abyssos uses different intermediate representation (IR) passes, most likely using a publicly available LLVM obfuscator (e.g. Pluto) to thwart binary analysis.
- Abyssos uses a custom TCP protocol for network communication.
- Abyssos supports a number of different network commands and downloads additional modules from the command-and-control (C2) server to enhance its capabilities.
- Although not extensively used, ThreatLabz identified a few samples of Abyssos that implemented anti-analysis techniques.
Technical Analysis
In the following sections, ThreatLabz provides a technical analysis of Abyssos version 2.4F, including its obfuscation methods, anti-analysis techniques, network protocol, and supported commands.
Anti-analysis
Abyssos uses common obfuscation methods as an anti-analysis measure. ThreatLabz identified the following techniques:
- Checks for the presence of hypervisors. Specifically, Abyssos uses the CPUID instruction to detect the presence of hypervisors, including VMware, KVM, Xen, and VirtualBox. If it detects any of these, Abyssos terminates execution.
- Checks for the following process names and exits if any are running:
vmtoolsd.exevmwaretray.exevmwareuser.exeVBoxService.exeVBoxTray.exeVBoxControl.exexenservice.exeprl_tools.exeqemu-ga.exespice-vdagent.exevdservice.exe
Furthermore, Abyssos uses a set of different intermediate representation (IR) passes to obfuscate the binary code. ThreatLabz assesses with medium-to-high confidence that Abyssos developers use open-source LLVM-based obfuscators to achieve these results. Overall, we have observed different obfuscation passes including:
- Control flow flattening
- Bogus control flow with common opaque predicates
- Constant integer encryption
- Stack-based string obfuscation
ANALYST NOTE: Not all samples identified implement the anti-analysis techniques. For example, the most recent version of Abyssos does not include them.
Initialization phase
Before executing its core functionality and features, Abyssos performs the following initialization steps:
- Dynamically loads any required Windows API functions and libraries. Abyssos iterates the export directory of each loaded library, calculates the CRC32 checksum of the exported function, and compares the result against the expected/passed CRC32 checksum value.
- Abyssos creates a mutex in order to ensure that only one instance of itself is currently running. Abyssos appends either the string
_Adminor_Userdepending on the current user rights. Interestingly, Abyssos checks if the command line includes the parameter --elevated. This parameter appends the string_Adminto the Abyssos mutex name regardless if the current user actually has administrator privileges. The mutex name is hardcoded in the binary and follows the formatGlobal\[UUID4]. For exampleGlobal\68AA60E5-6C45-4C01-9F0E-E25FC57C652F. - Initiates a TCP connection with the C2 server.
- Collects host information such as the CPU architecture, computer name, username, user's integrity level, public IP, and country of origin.
- Sends the host’s information to the C2 server along with the binary’s internal version to register the compromised system. The formatting string is
HELLO|%s|%s|%s|%s|%s|v2.4F|%s|%s|%s. - Abyssos creates a dedicated thread for network communication. This thread is responsible for receiving, parsing, executing, and reporting the output of any supported network commands.
- Lastly, Abyssos starts sending the network command
PINGto the C2 server every few seconds and waits for a network command to execute. Any incoming packet is received and parsed on the previously created thread.
Network communication
Abyssos primarily uses AES in GCM mode with a hardcoded 32-byte key for encrypting both incoming and outgoing network data. The only exception is for the encrypted Abyssos modules, which have an additional layer of encryption using either AES-CBC (with a 16-byte key/IV) or using a bitwise XOR operation (as described later in Table 2).
The Abysoss network packet structure is shown below.
#pragma pack(push, 1)
struct network_packet
{
uint32_t data_size;
uint8_t unknown_flag; // Unknown, set to `1` by default
uint8_t iv[12];
uint8_t* data;
uint8_t aes_tag[16];
};
#pragma pack(pop)
Abyssos supports a plethora of network commands. The two tables below describe each command's name and functionality along with any supported parameters.
ANALYST NOTE: Abyssos uses the pipe character “|” to delimit network command parameters. For example, the network command PM_KILL|1234 terminates the process with PID 1234.
Network Command Name | Description |
|---|---|
PONG | Response to the |
DISCONNECT | Abyssos stops execution. |
HVNC_START | Starts a VNC session with a screen width/height as an optional parameter. The default screen settings are 1920x1080. |
HVNC_STOP | Stops the VNC session. |
HVNC_INPUT | Simulates mouse movement and keyboard in the VNC session. |
HVNC_CLONE_START | Copies a specified browser's folders/data (e.g. cookies) in the fontconfigs folder located under the Windows temporary directory. |
HVNC_PROG | Starts a specified application under the VNC session. These applications must already be present on the host, since Abyssos does not download them. The list of supported applications and their corresponding parameters are:
|
HVNC_MAXIMIZE | Displays the maximized VNC window. |
SYSINFO | Gets system host information. This includes:
|
DNS_ADD | Adds a new (specified) record to the Windows |
DNS_DEL | Deletes the specified record from the Windows |
FM_COPY | Locally copies a file/directory. |
CLIPBOARD_START | Starts a thread that intercepts clipboard data every second. |
CLIPBOARD_STOP | Stops the clipboard interception thread. |
UAC_BYPASS_FODHELPER | User Account Control (UAC) bypass method via the Windows |
UAC_BYPASS_ICMLUAUTIL | UAC bypass method via COM interface |
GRABBER_START | Creates a thread that scans and collects specified directories/files based on parameters. The available parameters are:
|
GRABBER_STOP | Stops the grabber thread. |
PM_LIST | Collects information about the system's running processes. The process information includes:
|
PM_START | Creates a thread that collects the system's running process information every 3 seconds. |
PM_STOP | Stops the system's process information collection thread. |
PM_KILL | Terminates a process by PID. |
PM_SUSPEND | Suspends a process by PID. |
PM_RESUME | Resumes a suspended process by PID. |
SHUTDOWN | Shuts down the compromised host. |
REBOOT | Reboots the host. |
SLEEP | Puts the compromised system in sleep mode. |
RESTART | Restarts Abyssos. |
PF_START | Creates a thread that collects active TCP/UDP connections along with their associated processes every 2 seconds. |
PF_STOP | Stops the thread that collects active TCP/UDP connections. |
PF_KILL | Terminates a process by PID. The only difference with PM_KILL is that this command requires an extra (unknown) parameter. |
FM_LIST | Lists files and directories along with their associated metadata in the specified directory. |
FM_DEL | Deletes a file/directory. |
FM_GET | Uploads a specified file from the compromised host to the C2. |
FM_EXEC | Executes an already existing file on the compromised system. |
FM_ARCHIVE | Compresses the files of a specified directory into a ZIP archive and sends them to the C2 server. The ZIP archive is stored in-memory only. |
FM_ADDTOARCHIVE | Same as |
FM_PUT | Downloads a file from the C2 server on to the host. |
REMOTEDESKTOP_START | Creates a new thread that starts a screen recorder. |
REMOTEDESKTOP_STOP | Stops screen recorder thread. |
REMOTEDESKTOP_SETQ | Sets the quality (number of pixels) of any screenshots/images taken from the screen recorder. |
KEYLOGGER_GETLOGS | Reads the captured keystrokes obtained from the keylogger by reading the hardcoded file |
EXECURL | Downloads and executes a file. Abyssos will try to delete this file 5 seconds after it has been executed. |
EXECURL_AES_HOL | Downloads encrypted shellcode and injects it into a specified process (by name). Abyssos decrypts the encrypted payload using AES-CBC. The network packet contains a 16-byte value that is used for both the AES key and IV. The downloaded file is deleted after the code injection. |
EXECLOCAL_HEX | Receives a Windows executable file as a hex string and executes it. The downloaded file is deleted after it is executed. |
EXECLOCAL_AES_HOL | Same as |
AESHOL_DLL | Same as |
SELF_DELETE | Abyssos deletes itself using the Windows shell command |
C2CMD | Starts a remote shell session (using |
Table 1: Network commands supported by Abyssos.
The table below describes the Abyssos modules (although they were not available at the time of our analysis) and decryption methods.
Network Command Name | Description | Decryption Method |
|---|---|---|
KEYLOGGER | Likely a keylogger module written to disk under the Windows temporary folder with a randomly generated filename and the prefix | Bitwise XOR with key |
RECOVERY | Possibly a Chrome credentials harvester module. The module is stored under the Windows temporary folder with a randomly generated filename and the prefix | Bitwise XOR with key |
RECOVERY_GECKO | Likely a module that recovers Firefox credentials. The module is stored under the Windows temporary folder with a randomly generated filename and the prefix | Bitwise XOR with key |
SENDTXT | Unknown purpose. The downloaded module is written to the Windows temporary folder with a randomly generated filename and the prefix | Bitwise XOR with key |
SENDTXT2 | Unknown purpose. The downloaded module is written to the Windows temporary folder with a randomly generated filename and the prefix | Bitwise XOR with key |
HDRPFILE | Unknown purpose. The downloaded module is written to the Windows temporary folder with a randomly generated filename and the prefix | Decrypted using AES-CBC with the key and IV |
DCFINDER | Likely a module that scans the network to locate the Domain Controller. The downloaded module is written to the Windows temporary folder with a randomly generated filename and the prefix | Decrypted using AES-CBC with the key and IV |
VULNSCAN | Likely a module that scans the network or compromised host for vulnerabilities. The downloaded module is written to the Windows temporary folder with a randomly generated filename and the prefix | Decrypted using AES-CBC with the key and IV 1234567890abcdef. |
ELEVATE_SYS_TOKEN | Likely a module to escalate token privileges to | Decrypted using AES-CBC with the key and IV |
DATASCAN | Unknown purpose. The encrypted module is stored under the Windows temporary folder location with a random filename with the suffix | Decrypted using AES-CBC with the key and IV |
GRABCOOKIES | Likely a module that recovers browser cookies. The module is stored under the Windows temporary folder with a randomly generated filename and the prefix | Bitwise XOR with key |
RDPWRAP | This module may be related to the open source library | Decrypted using AES-CBC with the key and IV |
Table 2: Abyssos network commands requiring external modules.
Conclusion
Abyssos is a new malware with post-exploitation framework features that provides filesystem access capabilities and expandable modular functionality. Abyssos leverages different obfuscation methods such as control flow flattening and string encryption to complicate reverse engineering along with techniques to evade malware sandboxes and analysis environments. Considering its active development, ThreatLabz expects Abyssos to continue to evolve.
Zscaler Coverage
Zscaler’s multilayered cloud security platform detects indicators related to Abyssos at various levels. The figure below depicts the Zscaler Cloud Sandbox, showing detection details for Abyssos.

Figure 1: Zscaler Cloud Sandbox report for Abyssos.
In addition to sandbox detections, Zscaler’s multilayered cloud security platform detects indicators related to Abyssos at various levels with the following threat names:
- Win64.PWS.Abyssos
Indicators Of Compromise (IOCs)
IOC | Description |
|---|---|
52b400c5be1557a8df146f62fde76d906e7e0a92ed76788717ef61c758f315aa | Abyssos sample version 2.4F |
213[.]145.86.42 | Abyssos C2 |
ca94d95413210a2a325155740eb8a5c58627ad5c4e704478621e7fc8165fe173 | Abyssos sample version 2.1F |
209[.]99.184.223 | Abyssos C2 |
Cet article a-t-il été utile ?
Clause de non-responsabilité : Cet article de blog a été créé par Zscaler à des fins d’information uniquement et est fourni « en l’état » sans aucune garantie d’exactitude, d’exhaustivité ou de fiabilité. Zscaler n’assume aucune responsabilité pour toute erreur ou omission ou pour toute action prise sur la base des informations fournies. Tous les sites Web ou ressources de tiers liés à cet article de blog sont fournis pour des raisons de commodité uniquement, et Zscaler n’est pas responsable de leur contenu ni de leurs pratiques. Tout le contenu peut être modifié sans préavis. En accédant à ce blog, vous acceptez ces conditions et reconnaissez qu’il est de votre responsabilité de vérifier et d’utiliser les informations en fonction de vos besoins.
Recevez les dernières mises à jour du blog de Zscaler dans votre boîte de réception
En envoyant le formulaire, vous acceptez notre politique de confidentialité.


