01 | Tool Specifications & Architectural Profile
ShadowPad is a modular backdoor framework utilized by Chinese state-sponsored cyber espionage clusters (APT41 / Winnti / Earth Lusca / Redfly / Bronze Silhouette). Operating as the successor to PlugX and Winnti, ShadowPad features an enterprise-grade modular architecture. Execution is typically initiated via DLL search-order hijacking (side-loading): a benign, digitally signed executable (e.g., security vendor binaries, legitimate utility engines) loads a malicious companion DLL placed in the same directory. The companion DLL unpacks an encrypted shellcode blob containing an in-memory reflective loader and the ShadowPad core coordinator. The core coordinator establishes an in-memory virtual environment, dynamically allocating virtual memory to unpack and register functional plugin modules without dropping separate files to disk.
02 | Operator Interface & Configuration Struct Model
The operator configuration console enables threat actors to compile custom encrypted payloads. The builder configures C2 transport priorities (TCP, HTTP, HTTPS, UDP, DNS), primary and secondary C2 hostnames/IPs, fallback DNS servers, beacon frequency, sleep jitter percentages (10-30%), campaign tracking markers, and the active plugin module table. The configuration block is stored in an encrypted struct within the payload; at runtime, the loader decrypts it using an 8-byte or 16-byte rolling XOR key or RC4 cipher. The structure includes magic timestamp DWORDs, communication timeout limits, and active network routing paths.
struct ShadowPad_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
ShadowPad executes through a virtual function table (VFT) dispatch mechanism. Unlike conventional modular loaders that export named DLL functions, ShadowPad plugins are reflective memory modules stripped of standard PE export headers. Upon initialization, each plugin allocates memory and registers its functional entry points into the central coordinator's dispatch table. Each plugin is identified by a unique 32-bit Module ID: 0x64 (Root/Config), 0x65 (Network/C2), 0x66 (FileSystem/Disk), 0x67 (Process/Thread), 0x68 (Registry), 0x69 (Screen Capture), 0x6A (Shell/Cmd), 0x6B (Service Management), 0x6C (Port Forwarding/Pipe). When an operator packet arrives, the coordinator reads the target Module ID from the packet header, looks up the corresponding function pointer in the VFT, and executes the routine via indirect function calls. Inter-plugin communications (such as the FileSystem module passing directory trees to the Network module for exfiltration) execute through in-memory message buses without interacting with disk storage.
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 ShadowPad binary:
Reflective in-memory execution of independent functional modules (Disk, Process, Registry, Screen, Shell, Pipe) coordinated via virtual dispatch tables.
Abuses search-order resolution in legitimate digitally signed commercial software to execute malicious loaders under trusted process contexts.
Supports adaptive switching between TCP, UDP, HTTP, HTTPS, and DNS tunneling for bi-directional command execution.
Dispatches operational commands using 32-bit Module IDs and function pointer arrays, entirely avoiding standard PE export symbols.
Installs and coordinates as a Windows Service or stealth scheduled task, maintaining persistence while payload files remain encrypted on disk.
05 | Wire Protocol & C2 Communication Framing
The ShadowPad network protocol utilizes custom binary framing prepended with a 16-byte to 24-byte packet header: [DWORD MagicSeed][DWORD PayloadLength][DWORD UncompressedLength][DWORD ModuleID][DWORD CommandID][Encrypted Payload Bytes]. Data payloads are compressed using the LZO or modified QuickLZ compression algorithm prior to encryption. Encryption applies RC4 or a rolling 32-bit XOR cipher seeded by the initial MagicSeed field combined with machine-specific volume serial numbers. In DNS mode, data is serialized into Base32 or hexadecimal character labels and dispatched via DNS TXT or A record lookups (<encoded_chunk>.<session_id>.<c2_domain>), reassembled by adversary authoritative name servers to bypass egress web proxies.
06 | Verified Detection Signatures (YARA & Sigma)
rule Backdoor_Win_ShadowPad_Core {
meta:
description = "Detects ShadowPad core engine and plugin dispatch structures"
author = "CyberTrace Reverse Engineering Team"
date = "2026-10-29"
hash = "d9812490ab8124e8109284712093847192847109238471092384710923847109"
threat_id = "TF-049"
strings:
// Module ID comparison constants (0x64 through 0x6C)
$mod_check = { 83 F? 64 72 ?? 83 F? 6C 77 ?? }
// Custom XOR / RC4 key setup loop
$crypto_loop = { 8B ?? ?? 8A ?? ?? 32 ?? 88 ?? ?? 4? ?? 3B ?? 72 ?? }
// Signature strings in unpacked plugins
$s1 = "Root" wide
$s2 = "Plugins" wide
$s3 = "Config" wide
$s4 = "Install" wide
condition:
uint16(0) == 0x5A4D and ($mod_check or ($crypto_loop and 3 of ($s*)))
}
title: ShadowPad DLL Sideloading Execution from Non-Standard Directory
id: b82910fa-1928-4820-9182-84049f049049
status: production
description: Detects legitimate signed executables known to be abused for ShadowPad sideloading running from non-standard or writable directories.
references:
- https://cybertrace.io/threats/shadowpad-whitepaper.html
author: CyberTrace Reverse Engineering Team
date: 2026-10-29
logsource:
category: process_creation
product: windows
detection:
selection_binaries:
Image|endswith:
- '\BDReinit.exe'
- '\NGen.exe'
- '\OleView.exe'
- '\RasTls.exe'
selection_paths:
Image|contains:
- '\AppData\'
- '\Temp\'
- '\ProgramData\'
- '\Users\Public\'
condition: selection_binaries and selection_paths
fields:
- ProcessId
- Image
- ParentProcessId
- ParentImage
- CommandLine
falsepositives:
- Unlikely in production environments outside developer testing
level: high
07 | Decompiled Artifacts & Observable IoCs
Indicators of compromise and forensic patterns recorded across laboratory triage:
d9812490ab8124e8109284712093847192847109238471092384710923847109
4827103847192847102938471928471029384719284710293847192847102938
1029384719284710293847192847102938471928471029384719284710293847
ns1.telemetry-edge[.]com:53
194.36.191[.]214:443
45.154.255[.]89:8080
dns.cloud-resolver-node[.]net:53
HKLM\SYSTEM\CurrentControlSet\Services\DiskManagementService\Parameters
HKCU\Software\Microsoft\Windows\CurrentVersion\Run\WindowsHostSvc
C:\ProgramData\HostProcess\BDReinit.exe
C:\ProgramData\HostProcess\bdreinit.dll
C:\ProgramData\HostProcess\data.dat
C:\Windows\Temp\~sp_tmp.dat
Global\ShadowPad_Core_Lock_0x2017
Local\SP_Dispatcher_Mutex_9921
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.
Technical visualization of ShadowPad virtual file system and dynamic DLL plugin dispatch table.
Disassembly showing legitimate signed host binary abused for DLL search-order hijacking.
Tailored forensic schematic mapping initial access, defense evasion, core capabilities, and DNS, Custom Binary Protocols, Proxy Nodes command infrastructure.
International CTI Indexing Summary (EN | RU | HI) Search Engine Knowledge Graph
ShadowPad (C2 Framework)
Elite modular backdoor framework shared across multiple Chinese state-sponsored threat groups, featuring DLL side-loading, in-memory virtual function table plugin dispatch, and multi-protocol C2.
C2 Architecture: The ShadowPad network protocol utilizes custom binary framing prepended with a 16-byte to 24-byte packet header: [DWORD MagicSeed][DWORD PayloadLength][DWORD UncompressedLength][DWORD ModuleID][DWORD CommandID][Encrypted Payload Bytes]. Data payloads
Threat Hunting: YARA in-memory signatures, Sigma detection rules, and MITRE ATT&CK indicators. CyberTrace Intelligence Feed: @CyberTrace20 (@wgkgi0x0).
Анализ ShadowPad (C2 Framework)
Детальный технический анализ ShadowPad — это Фреймворк командно-контрольного управления (C2), разработанный на стеке Microsoft Visual C/C++ (MSVC) / Native x86 & x64 PE DLL. В отчете подробно исследуются этапы скрытого внедрения в память (Process Injection), методы обхода EDR-систем, структура сетевых пакетов командного сервера (Custom Binary Protocol over TCP/UDP/HTTPS; RC4, AES-CBC, and rolling 32-bit XOR with host-derived seeds; DNS tunneling) и механизмы кражи данных.
Архитектура C2: Шифрованный протокол обмена данными с использованием Custom Binary Protocol over TCP/UDP/HTTPS; RC4, AES-CBC, and rolling 32-bit XOR with host-derived seeds; DNS tunneling, защита от сетевого перехвата и анализ маяков (Beacons).
Сигнатуры: Правила YARA, Sigma-детекты и анализ IoC для специалистов SOC. Оперативный канал: Telegram @CyberTrace20 (@wgkgi0x0).
ShadowPad (C2 Framework) विश्लेषण
ShadowPad एक परिष्कृत कमांड और कंट्रोल (C2) फ्रेमवर्क है जिसे Microsoft Visual C/C++ (MSVC) / Native x86 & x64 PE DLL का उपयोग करके विकसित किया गया है। इस तकनीकी CTI विश्लेषण में मेमोरी इंजेक्शन तकनीक, EDR सुरक्षा बाईपास, कमांड और कंट्रोल सर्वर (Custom Binary Protocol over TCP/UDP/HTTPS; RC4, AES-CBC, and rolling 32-bit XOR with host-derived seeds; DNS tunneling) संचार प्रोटोकॉल और डेटा चोरी तंत्र का पूर्ण विवरण दिया गया है।
C2 संचार: Custom Binary Protocol over TCP/UDP/HTTPS; RC4, AES-CBC, and rolling 32-bit XOR with host-derived seeds; DNS tunneling आधारित एन्क्रिप्टेड C2 इंफ्रास्ट्रक्चर और ऑटोमेटेड पेलोड रिट्रीवल चैनल।
सुरक्षा नियम: YARA नियम, Sigma व्यवहार विश्लेषण और MITRE ATT&CK संकेतक। साइबर इंटेलिजेंस अपडेट: Telegram @CyberTrace20 (@wgkgi0x0).