Abyssos: Technical Analysis of a New Modular RAT
Detection stack
- AIDR
- Alert
- ETL
- Query
Summary
Abyssos is a newly discovered modular Remote Administration Tool (RAT) developed in C++. It provides advanced capabilities including credential theft, file exfiltration, and remote VNC access. The malware also uses sophisticated obfuscation methods, including LLVM-based IR passes, to complicate security analysis and detection.
Investigation
Zscaler ThreatLabz performed a technical analysis of Abyssos version 2.4F, examining its anti-analysis mechanisms, network protocol, and command architecture. The investigation uncovered custom TCP communication, AES-GCM encryption, and multiple modular components retrieved from C2 servers. Researchers also identified dedicated anti-hypervisor checks and distinctive mutex naming patterns.
Mitigation
Organizations should deploy endpoint security controls capable of identifying LLVM-based obfuscation and abnormal process behavior. Security teams should monitor for unauthorized VNC sessions and suspicious file activity within Windows temporary directories. Restricting outbound connections to unknown C2 IP addresses and detecting unusual command-line arguments such as --elevated is also recommended.
Response
If Abyssos activity is detected, incident responders should isolate the affected host immediately to disrupt C2 communication and limit lateral movement. Memory forensics should be performed to recover decrypted modules and determine which commands were executed. Network logs should also be reviewed for known C2 IP addresses to assess breach scope and identify potential data exfiltration.
Attack Flow
Detections
Possible PING Usage for Delay Execution (via cmdline)
IOCs (HashSha256) to detect: Abyssos: Technical Analysis of a New Modular RAT
IOCs (SourceIP) to detect: Abyssos: Technical Analysis of a New Modular RAT
IOCs (DestinationIP) to detect: Abyssos: Technical Analysis of a New Modular RAT
Abyssos Anti-Analysis Detection [Windows Process Creation]
Simulation Execution
Prerequisite: The Telemetry & Baseline Pre-flight Check must have passed.
Rationale: This section details the precise execution of the adversary technique (TTP) designed to trigger the detection rule. The commands and narrative MUST directly reflect the TTPs identified and aim to generate the exact telemetry expected by the detection logic. Abstract or unrelated examples will lead to misdiagnosis.
-
Attack Narrative & Commands: The adversary aims to deploy the Abyssos RAT. To ensure the malware only runs once and to identify its environment, the payload executes a command that mimics the malware’s behavior. First, the attacker simulates the presence of a VM service by referencing
vmtoolsd.exe. Second, the attacker attempts to trigger the secondary detection logic by creating a unique, UUID-formatted Global Mutex while simultaneously passing the--elevatedflag via a command-line argument. This simulates the malware’s attempt to establish a single-instance lock during its anti-analysis phase. -
Regression Test Script:
# Abyssos Simulation Script # This script simulates two detection paths: # 1. Process name match (vmtoolsd.exe) # 2. Mutex pattern + '--elevated' command line Write-Host "[+] Starting Abyssos Simulation..." -ForegroundColor Cyan # Path 1: Simulate detection of VM process (Note: This assumes we can trigger a process creation event # that 'ends with' vmtoolsd.exe. In a real test, we might rename a benign tool to this.) # For simulation purposes, we use a dummy file to trigger the 'Image' logic if the rule allows. # Since we cannot easily 'create' a real vmtoolsd.exe without admin/install, we simulate the command line logic. # Path 2: Simulate the Mutex + Command Line logic $uuid = [guid]::NewGuid().ToString() $mutexName = "Global$uuid" $commandLine = "malware_payload.exe --elevated" Write-Host "[+] Creating Mutex: $mutexName" -ForegroundColor Yellow # We use a small C# snippet via PowerShell to create the specific Global Mutex required $code = @" using System; using System.Threading; public class CreateMutex { public static void Run(string name) { Mutex m = new Mutex(true, name); Console.WriteLine("Mutex created: " + name); // Keep it alive briefly for telemetry capture Thread.Sleep(5000); m.ReleaseMutex(); } } "@ Add-Type -TypeDefinition $code # Triggering the Command Line logic (Simulated via a process that would carry this line) # In a real environment, the detection looks at the creation of the process. # Here we simulate the creation of a process with the target string. Write-Host "[+] Simulating process execution with '--elevated' flag..." -ForegroundColor Yellow Start-Process "cmd.exe" -ArgumentList "/c echo $commandLine" -WindowStyle Hidden # Run the Mutex creation Write-Host "[+] Simulation Complete." -ForegroundColor Green -
Cleanup Commands:
# Cleanup: No permanent files were created, but we ensure any orphaned processes are closed. Stop-Process -Name "cmd" -ErrorAction SilentlyContinue Write-Host "[+] Cleanup Complete." -ForegroundColor Cyan