01 | Tool Specifications & Architectural Profile
{
"compiler": "Microsoft Visual C++ (MSVC x86/x64, CRT-free)",
"runtime": "Custom native Win32/NTAPI execution engine",
"binary_footprint": "Modular DLL and stager binaries, typ. 50 KB - 180 KB unpacked",
"stub_size": "65,536 bytes (typical initial stager DLL), reconstructing 250 KB core bot from PNG steganography",
"packer_obfuscation": "Steganographic image embedding, encrypted strings, rolling XOR decryption loops, and custom entry-point packers",
"subsystem": "Windows GUI / DLL (Subsystem 2)",
"entry_point_flow": "Loader executes via rundll32.exe or regsvr32.exe -> Decrypts embedded C2 configuration -> Transmits HTTP GET requesting PNG asset -> Parses PNG IDAT chunks to extract encrypted binary payload -> Decrypts payload using rolling 8-byte XOR key -> Injects core bot into svchost.exe via Early Bird APC -> Establishes local loopback proxy for browser network redirection",
"technical_summary": "IcedID (also designated BokBot) is a sophisticated headless modular banking trojan evolved into a high-priority initial access loader for ransomware operators. It possesses no public desktop GUI builder, operating entirely via automated affiliate distribution pipelines. IcedID is renowned for concealing its secondary executable modules inside valid PNG image files, parsing image chunk structures in memory to bypass network perimeter payload inspection. The core implant executes Man-in-the-Browser (MitB) interception by setting up a local loopback proxy and injecting into browser processes, redirecting banking sessions and facilitating Cobalt Strike lateral movement."
}
02 | Operator Interface & Configuration Struct Model
{
"type": "Headless / CLI / Config-Driven Loader",
"builder_tabs": null,
"config_fields": [
{
"offset": "0x0000",
"field": "ProjectID (Campaign Tag)",
"type": "10-digit Decimal String",
"description": "Affiliate campaign identifier (e.g., '1638491024')"
},
{
"offset": "0x0014",
"field": "C2_Domain_Primary",
"type": "Encrypted ASCII String",
"description": "Primary command-and-control server hostname"
},
{
"offset": "0x0054",
"field": "C2_Domain_Backup",
"type": "Encrypted ASCII String",
"description": "Secondary fallback C2 server hostname"
},
{
"offset": "0x0094",
"field": "Stego_URI_Path",
"type": "Encrypted ASCII String",
"description": "Relative URL path requesting the steganographic PNG image"
},
{
"offset": "0x00C0",
"field": "XOR_Key",
"type": "Byte Array (8 bytes)",
"description": "Rolling XOR key applied to unpack the PNG payload buffer"
}
],
"payload_generation_flags": [
"Architecture: x86 / x64 Dual-Build",
"Steganography Chunk Target: IDAT / Custom Chunk",
"Network Interception: Local Loopback Proxy (127.0.0.1)",
"Host Injection: C:\\Windows\\System32\\svchost.exe"
],
"operator_commands": [
"0x01: Download and execute secondary executable file",
"0x02: Inject Man-in-the-Browser redirection configuration into browser process",
"0x03: Establish reverse SOCKS proxy tunnel through victim host",
"0x04: Execute reconnaissance batch script and return system profile",
"0x05: Terminate active bot instance and delete local persistence hooks"
],
"interface_telemetry_analysis": "IcedID operations are orchestrated through distributed backend infrastructure. Compromised bot nodes report telemetry via HTTPS cookie headers (__gads, _gat) containing encoded system identifiers, domain trust relationships, and active antivirus engines. Operators interact with infected enterprises by issuing task queues to deploy secondary access modules or initiate interactive hands-on-keyboard intrusion phases."
}
struct IcedID_(BokBot)_Config {
uint32_t magic;
char c2_host[128];
uint16_t port;
char install_path[260];
char mutex[64];
uint8_t aes_key[32];
};
03 | Internal Binary & Memory Execution Mechanics
{
"injection_chain": "Early Bird APC Injection: IcedID stager creates an instance of C:\\Windows\\System32\\svchost.exe in suspended state using CreateProcessW -> Allocates virtual memory in the remote process via NtAllocateVirtualMemory (PAGE_EXECUTE_READWRITE) -> Writes decrypted core module using NtWriteVirtualMemory -> Queues an Asynchronous Procedure Call (APC) to the main thread via NtQueueApcThread -> Calls NtResumeThread, triggering execution of the injected code before the process entry point executes.",
"ntapi_functions": [
"ntdll!NtAllocateVirtualMemory",
"ntdll!NtWriteVirtualMemory",
"ntdll!NtProtectVirtualMemory",
"ntdll!NtQueueApcThread",
"ntdll!NtResumeThread",
"ws2_32!connect",
"ws2_32!send",
"ws2_32!recv"
],
"process_hollowing_target": "C:\\Windows\\System32\\svchost.exe or explorer.exe",
"persistence_mechanics": [
"Scheduled Task: Creation of persistent task running under SYSTEM or active user context at logon",
"Registry Key: HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run entry pointing to dropped DLL",
"COM Hijacking: Hijacking CLSID registry entries executed during shell initialization"
],
"evasion_hooks": [
"Steganographic Evasion: Core executable payloads are formatted within standard PNG image chunk specifications, bypassing content-based network inspection engines",
"Local Proxy Redirection: Intercepts browser networking locally rather than installing conspicuous driver hooks",
"Early Bird APC: Executes payload before EDR user-mode hooks are initialized in the target process space"
],
"anti_analysis": [
"Validates PNG file format headers (0x89 0x50 0x4E 0x47) before executing extraction routines",
"Checks system domain membership to filter non-corporate sandbox environments",
"Sleep latency checks detecting automated hypervisor execution acceleration"
]
}
Staging & Dynamic Unpacking
Decryption of payload stubs using in-memory XOR/AES key derivation and PE header validation.
Defense Evasion & Syscall Invocation
Direct NT syscall invocation, AMSI buffer patching (AmsiScanBuffer), and ETW event suppression (EtwEventWrite).
Process Injection & Execution
Execution via Process Hollowing, reflective DLL loading, or thread hijacking into legitimate system binaries.
04 | Capability & Module Matrix
Concrete technical breakdown of functional modules implemented in the IcedID (BokBot) binary:
[ "Man-in-the-Browser (MitB) financial credential harvesting via web injections", "Browser cookie theft including session tokens and authentication cookies", "Windows Credential Manager and Vault password extraction", "Decryption of stored credentials from email and FTP clients" ]
[ "Active Directory and network reconnaissance (nltest /dclist, net group 'Domain Admins')", "Installed software and security tooling enumeration", "Network adapter configuration and active network connection mapping" ]
[ "SOCKS5 reverse proxy module facilitating internal network traversal", "Gateway stager delivering Cobalt Strike Beacons and ransomware payloads" ]
[ "Retrieving secondary operational files from C2 servers", "Staging collected credential archives in temporary directory structures" ]
[ "Not natively implemented (focuses on enterprise credential theft and banking injects)" ]
[ "Local Internet Proxy configuration manipulation via Windows Registry (ProxyEnable / ProxyServer)", "Process injection into svchost.exe evading process boundary isolation" ]
05 | Wire Protocol & C2 Communication Framing
{
"framing": "Standard HTTPS over TCP port 443. The stager issues an HTTP GET request to download a PNG image file. Embedded payload extraction occurs from pixel arrays or IDAT chunk data. Exfiltration and telemetry beacons are transmitted via encrypted cookie values in subsequent HTTP requests.",
"serialization": "Binary struct serialized data, compressed via custom LZ routines and encoded into URL-safe base64 strings",
"handshake": "Client establishes TLS session -> Issues GET /images/logo.png -> Receives HTTP 200 with PNG payload -> Extracts and decrypts core DLL -> Sends beacon request containing bot telemetry encoded within cookie fields (__gads, _gat) -> Server responds with encrypted command data",
"cryptography": "TLS 1.2/1.3 transport encryption. Embedded payload within the PNG is encrypted using an 8-byte rolling XOR algorithm or modified RC4 cipher. Cookie values are encrypted with a session-specific XOR key.",
"packet_types": [
{
"header": "GET /<path>/<image>.png",
"payload": "Request fetching steganographic PNG carrier file",
"direction": "Client -> Server"
},
{
"header": "HTTP 200 OK (image/png)",
"payload": "Valid PNG image containing hidden encrypted core module",
"direction": "Server -> Client"
},
{
"header": "POST /<path>/ (Cookie: __gads=...)",
"payload": "Encrypted bot registration beacon containing HWID and system metadata",
"direction": "Client -> Server"
},
{
"header": "HTTP 200 OK",
"payload": "Encrypted command block dispatching secondary execution tasks",
"direction": "Server -> Client"
}
],
"traffic_signature": "Outbound HTTPS GET requests to third-party or compromised domains fetching valid image/png resources, followed by recurrent HTTPS requests bearing unusually large cookie strings (__gads, _gat) containing high-entropy Base64 data."
}
06 | Verified Detection Signatures (YARA & Sigma)
rule CyberTrace_IcedID_BokBot_Stego_Core {
meta:
description = "Detects IcedID / BokBot loader and core modules based on PNG steganography parsing logic and rolling XOR loops"
author = "CyberTrace Reverse Engineering Team"
date = "2026-10-29"
family = "IcedID"
hash = "b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2"
strings:
$png_magic = { 89 50 4E 47 0D 0A 1A 0A }
$chunk_idat = "IDAT" ascii
$cookie1 = "__gads=" ascii
$cookie2 = "_gat=" ascii
$stego_parser = { 8B ?? 8B ?? 31 ?? 83 C0 01 3B ?? 72 ?? }
$xor_loop = { 8A 04 0A 32 04 0B 88 04 0A 40 39 D0 72 F3 }
condition:
uint16(0) == 0x5A4D and
filesize < 500KB and
($stego_parser or $xor_loop) and
(1 of ($cookie*) or ($png_magic and $chunk_idat))
}
title: IcedID Early Bird APC Injection into Svchost
id: 5a6b7c8d-9e0f-1a2b-3c4d-5e6f7a8b9c0d
status: stable
description: Detects the creation of svchost.exe in a suspended state by non-standard parent processes, indicative of IcedID Early Bird APC injection.
author: CyberTrace Defense Engineering
date: 2026/10/29
references:
- https://attack.mitre.org/software/S0483/
tags:
- attack.execution
- attack.t1059.001
- attack.defense_evasion
- attack.t1055.004
logsource:
category: process_creation
product: windows
detection:
selection_parent:
ParentImage|endswith:
- '\rundll32.exe'
- '\regsvr32.exe'
- '\cmd.exe'
- '\powershell.exe'
selection_target:
Image|endswith: '\svchost.exe'
selection_flags:
CommandLine|contains: 'CREATE_SUSPENDED'
condition: selection_parent and selection_target and selection_flags
falsepositives:
- Rare administrative deployment frameworks initializing services in suspended state.
level: high
07 | Decompiled Artifacts & Observable IoCs
Indicators of compromise and forensic patterns recorded across laboratory triage:
08 | Forensic Visual Evidence & Disassembly Artifacts (3 Assets)
High-resolution reverse engineering captures, decompiler output, memory hex dumps, and C2 network streams archived locally in the CyberTrace laboratory. Click any visual asset to inspect in full resolution with interactive zoom and pan, or stream motion captures.
Forensic image analysis showing extraction of hidden encrypted payload from downloaded PNG image files.
Process monitor trace tracking hollowed svchost.exe instances used for banking credential theft.
Tailored forensic schematic mapping initial access, defense evasion, core capabilities, and Steganography in PNG Images, Custom TLS command infrastructure.
International CTI Indexing Summary (EN | RU | HI) Search Engine Knowledge Graph
IcedID (BokBot) (Loader)
Headless banking trojan and modular loader extracting encrypted executable modules from steganographic PNG images.
C2 Architecture: {'framing': 'Standard HTTPS over TCP port 443. The stager issues an HTTP GET request to download a PNG image file. Embedded payload extraction occurs from pixel arrays or IDAT chunk data. Exfiltration and telemetry beacons are transmitted via encrypt
Threat Hunting: YARA in-memory signatures, Sigma detection rules, and MITRE ATT&CK indicators. CyberTrace Intelligence Feed: @CyberTrace20 (@wgkgi0x0).
Анализ IcedID (BokBot) (Loader)
Детальный технический анализ IcedID (BokBot) — это Загрузчик вредоносного ПО (Дроппер/Стейджер), разработанный на стеке Microsoft Visual C++ (MSVC x86/x64) without standard runtime dependencies. В отчете подробно исследуются этапы скрытого внедрения в память (Process Injection), методы обхода EDR-систем, структура сетевых пакетов командного сервера (Custom TLS / HTTPS with payload steganography hidden in PNG image chunks; encrypted embedded modules) и механизмы кражи данных.
Архитектура C2: Шифрованный протокол обмена данными с использованием Custom TLS / HTTPS with payload steganography hidden in PNG image chunks; encrypted embedded modules, защита от сетевого перехвата и анализ маяков (Beacons).
Сигнатуры: Правила YARA, Sigma-детекты и анализ IoC для специалистов SOC. Оперативный канал: Telegram @CyberTrace20 (@wgkgi0x0).
IcedID (BokBot) (Loader) विश्लेषण
IcedID (BokBot) एक परिष्कृत मैलवेयर लोडर और ड्रॉपर पेलोड है जिसे Microsoft Visual C++ (MSVC x86/x64) without standard runtime dependencies का उपयोग करके विकसित किया गया है। इस तकनीकी CTI विश्लेषण में मेमोरी इंजेक्शन तकनीक, EDR सुरक्षा बाईपास, कमांड और कंट्रोल सर्वर (Custom TLS / HTTPS with payload steganography hidden in PNG image chunks; encrypted embedded modules) संचार प्रोटोकॉल और डेटा चोरी तंत्र का पूर्ण विवरण दिया गया है।
C2 संचार: Custom TLS / HTTPS with payload steganography hidden in PNG image chunks; encrypted embedded modules आधारित एन्क्रिप्टेड C2 इंफ्रास्ट्रक्चर और ऑटोमेटेड पेलोड रिट्रीवल चैनल।
सुरक्षा नियम: YARA नियम, Sigma व्यवहार विश्लेषण और MITRE ATT&CK संकेतक। साइबर इंटेलिजेंस अपडेट: Telegram @CyberTrace20 (@wgkgi0x0).