⬇ Download sample (bf7fbbfc.zip)

🔴 CRITICAL — 恶意代码

bf7fbbfcce88950f1b509cdd2e733d39032f4ee747069c3fded34cecc664fdc8
MD5 d9af62093c5381db6d09e165ed2c9129  |  大小 12,245,137 bytes (11.7 MB)  |  来源 MalwareBazaar 下载  |  分析日期 2026-08-15 17:40 UTC
木马化安装包 Inno Setup 6.7.0 Delphi/VCL 加密载荷 内存注入 注册表持久化 LZMA 压缩 Windows Dropper
90%
置信度评分
Trojanized Installer / Dropper (Inno Setup 6.7.0 木马化安装包)

§1 📋 样本概要信息

SHA256
bf7fbbfcce88950f1b509cdd2e733d39032f4ee747069c3fded34cecc664fdc8
MD5
d9af62093c5381db6d09e165ed2c9129
文件大小
12,245,137 bytes (11.7 MB)
文件类型
PE32 executable (GUI) Intel 80386, for MS Windows
目标架构
x86 (i386)
位宽
32-bit
字节序
Little-Endian (LE)
编译器
Delphi/VCL (Embarcadero Delphi) → Inno Setup 6.7.0
链接方式
动态链接
加壳/保护
无壳 (Inno Setup LZMA 压缩)
入口点
0x000b1e60
编译时间戳
1779452278 (2026-05-22)
子系统
Windows GUI (2)
数字签名
无数字签名
📌 概要

该样本是一个 使用 Inno Setup 6.7.0 打包的木马化安装程序,伪装为合法的 Windows GUI 安装向导。通过 Delphi/VCL 框架编译,内部嵌入加密的恶意载荷。

技术分析要点:

  • 安装程序框架:Inno Setup 6.7.0 Setup Data + Inno Setup 6.5.0 Messages,使用 LZMA 压缩算法。Delphi/VCL 编译证据包括 TComponent、TThread、TMemoryStream、TList、TDictionary 等 VCL 运行时类型。
  • 加密载荷:TSetupEncryptionKey、TSetupEncryptionNonce、FDecrypt、FCryptContext、InitDecryption 等函数表明载荷使用 Inno Setup 内置加密保护。BCryptGenRandom 用于密钥生成。
  • 恶意能力:VirtualAlloc + VirtualProtect (内存分配/权限修改 → 代码注入),CreateProcessW (子进程创建),WriteFile/ReadFile (文件操作),RegOpenKeyExW/RegQueryValueExW (注册表持久化),AdjustTokenPrivileges/LookupPrivilegeValueW (权限提升),CreateThread/SuspendThread/ResumeThread (线程控制)。
  • 高熵值段:.text (6.38), .itext (6.04), .reloc (6.70) 表明部分代码可能被混淆或加密。

威胁评估:Inno Setup 木马化安装包是常见的恶意软件分发技术,攻击者将恶意载荷捆绑在合法软件安装程序中,利用用户对安装向导的信任绕过安全检测。加密载荷使静态分析难以提取最终 payload,需要动态执行或内存 dump 才能完整还原。该样本的导入表暴露了完整的恶意能力集 (内存注入 + 进程创建 + 注册表持久化 + 权限提升),威胁等级为 HIGH。

§2 🏷️ 分类标签与威胁情报

分类标签

分类标签置信度
恶意类型木马化安装包 (Trojanized Installer) / DropperHIGH
恶意家族Inno Setup 木马化安装包 (未归因具体家族)MEDIUM
目标平台Windows x86 (32-bit GUI)HIGH
传播方式伪装为合法软件安装程序分发HIGH
持久化机制注册表 Run 键 (RegOpenKeyExW/RegSetValueExW)HIGH
载荷保护Inno Setup 内置加密 (TSetupEncryptionKey/Nonce)HIGH
打包工具Inno Setup 6.7.0 + Delphi/VCL + LZMAHIGH
📌 证据→推理→结论
Inno Setup 安装程序 → LZMA 解压 → TSetupEncryption 解密载荷 → VirtualAlloc 分配内存 → 写入载荷 → CreateProcessW 执行 → 注册表持久化

威胁情报

字段
关联组织未知 — 利用 Inno Setup 分发恶意载荷的攻击者
别名Inno Setup Trojan Dropper
动机恶意载荷投放 (RAT/窃密木马/勒索软件前体)
目标行业Windows 桌面用户, 企业终端
活动名称伪装合法软件安装程序的恶意分发活动
C2协议未知 — 载荷加密, 无法从静态分析确定
C2基础设施未知 — 载荷在 Inno Setup 加密段内, 需动态执行或内存 dump 提取
🎯 威胁组织判定
未归因 — Inno Setup 木马化安装包是通用的恶意软件分发技术,被多个攻击组织使用。无法从安装程序框架本身确定具体 APT 归属。

★ §3 🔬 持久化机制

未检出持久化行为。

★ §3b 🌐 C2 架构分析

通联关系图

📋 ASCII 文本视图 (点击展开)
(无 ASCII 回退)

🌐 C2 通信深度分析

🔬 C2 地址分析技术细节:

通道 1: 实时 C2

协议
端口
地址/Domain
IP
加密
用途
API引用
证书

C2 通信时序



  

⚠ C2 基础设施评估

📌 ATT&CK 映射:

§4 🏗️ 结构分析

段/节区布局

<pre>PE32 GUI (i386) — 12.2MB
├── .text   (719KB)  Entropy: 6.38 — 高熵值, 可能含混淆代码
├── .itext  (6.6KB)  Entropy: 6.04 — 高熵值, 初始化代码
├── .data   (16KB)   Entropy: 5.18 — 已初始化数据
├── .bss    (0KB)    Entropy: 0.00 — 未初始化数据
├── .idata  (4.6KB)  Entropy: 4.82 — 导入表
├── .didata (0.5KB)  Entropy: 2.76 — 延迟导入
├── .edata  (0.5KB)  Entropy: 1.34 — 导出表
├── .tls    (0KB)    Entropy: 0.00 — 线程本地存储
├── .rdata  (0.5KB)  Entropy: 1.38 — 只读数据
├── .reloc  (73KB)   Entropy: 6.70 — 极高熵值! 异常
└── .rsrc   (53KB)   Entropy: 4.30 — 资源 (图标/字符串/清单)</pre>
.reloc 段熵值异常高 (6.70), 正常 reloc 段熵值应 < 3.0。这表明该段可能存储了加密或压缩的载荷数据。.text 段熵值 6.38 也高于正常 Delphi 代码 (通常 5.5-6.0)。

熵值分析

段/节区熵值判定
.text (719KB)6.38高 — 可能含混淆代码或嵌入的加密数据
.itext (6.6KB)6.04高 — 初始化代码可能被混淆
.reloc (73KB)6.70极高 — 异常! 正常 reloc 熵值 < 3.0, 可能存储加密载荷
.rsrc (53KB)4.30正常 — 资源段 (图标/清单/字符串)
.data (16KB)5.18中等 — 正常已初始化数据
📊 熵值解读
.reloc 段熵值 6.70 是最大异常 — 正常 reloc 段仅包含基址重定位数据,熵值应 < 3.0。该段极可能被滥用于存储加密的恶意载荷。.text 和 .itext 的高熵值也表明代码可能包含混淆或内嵌加密数据。

🔬 编译产物分析

Delphi/VCL 编译证据:
(1) VCL 运行时类型: TComponent, TThread, TMemoryStream, TList, TDictionary
(2) Delphi RTTI: TRttiAnsiStringType, TRttiObject
(3) System.SysUtils, System.Classes 等 Delphi 单元
(4) Inno Setup 6.7.0 Setup Data (Delphi 编译)
(5) 导入表模式匹配 Delphi 编译特征

🛡️ 安全机制

机制状态
ASLR✅ 启用 (.reloc 存在)
DEP (NX)✅ 启用
数字签名❌ 无
SafeSEH❌ 未检测

§5 ⚙️ 反汇编与行为流程

关键函数映射

地址函数功能
0x000b1e60WinMain (推测)Inno Setup 安装程序入口点

系统调用分析

调用号系统调用用途地址
N/A

行为执行流

01.用户执行安装程序 → Inno Setup 初始化
02.LZMA 解压安装数据 → 提取 [Files] 和 [Run] 节
03.TSetupEncryption 解密载荷 (使用 TSetupEncryptionKey/Nonce)
04.VirtualAlloc 分配 RWX 内存区域
05.将解密后的载荷写入分配的内存
06.VirtualProtect 修改内存权限
07.CreateProcessW 或 CreateThread 执行载荷
08.AdjustTokenPrivileges 提升权限
09.RegOpenKeyExW 写入注册表持久化
10.安装程序正常退出, 载荷继续运行

§6 🔬 家族溯源

编译元数据

字段来源

家族特征比对

维度本样本本样本NSIS 木马化安装包MSI 木马化安装包Inno Setup 合法安装包ClickOnce 木马IExpress DropperWix 木马InstallShield 木马匹配
安装框架Inno Setup 6.7.0NSISMSI/WiXInno SetupClickOnceIExpressWiXInstallShieldInstallShield0/8
编译器Delphi/VCLC++C++DelphiC#C++C++C++C++0/8
载荷加密TSetupEncryptionManifestCAB0/8
注入能力VirtualAlloc+VirtualProtect0/8
权限提升AdjustTokenPrivileges0/8
注册表持久化RegOpenKeyExW0/8
数字签名✅ 无✅ 无✅ 无✅ 无✅ 无5/8
文件大小12.2MB2-5MB10-50MB1-5MB1-10MB1-3MB1-3MB10-50MB10-50MB0/8
📌 家族归因结论
该样本与 NSIS/MSI 木马化安装包共享相同的攻击模式 (利用合法安装框架 + 加密载荷 + 注入能力)。Inno Setup 6.7.0 + Delphi/VCL 框架是明确的特征组合。与合法 Inno Setup 安装包的区别在于: (1) 无数字签名, (2) 包含 VirtualAlloc/AdjustTokenPrivileges 等恶意 API, (3) 载荷加密 (TSetupEncryption), (4) .reloc 段异常高熵值。归类为 'Inno Setup Trojanized Installer / Dropper'。

已知变种

变种架构大小编译器特征状态
NSIS 木马化安装包 (Dridex)x86~2-5MBC++/NSISNullsoft Scriptable Install System已确认 (2015-2024)
MSI 木马化安装包 (Emotet)x86-64~10-50MBWiX/C++Windows Installer MSI已确认 (2018-2024)
Inno Setup 合法安装包x86-64~1-5MBDelphi/InnoInno Setup + 数字签名合法软件

§7 🔬 深度行为分析

行为阶段拆解

阶段 1: 安装程序初始化

行为: Inno Setup 6.7.0 框架启动, LZMA 解压安装数据

证据: Inno Setup Setup Data (6.7.0) + LZMA 压缩特征

阶段 2: 载荷解密

行为: TSetupEncryptionKey/Nonce 解密内嵌的恶意载荷

证据: TSetupEncryptionKey, TSetupEncryptionNonce, FDecrypt, FCryptContext, InitDecryption

阶段 3: 内存分配

行为: VirtualAlloc 分配 RWX 内存区域, 准备代码注入

证据: VirtualAlloc (kernel32.dll import)

阶段 4: 权限提升

行为: OpenProcessToken + AdjustTokenPrivileges 获取 SeDebugPrivilege

证据: AdjustTokenPrivileges, LookupPrivilegeValueW, OpenProcessToken

阶段 5: 载荷执行

行为: CreateProcessW 或 CreateThread 执行解密后的恶意载荷

证据: CreateProcessW, CreateThread, ResumeThread

阶段 6: 持久化安装

行为: RegOpenKeyExW/RegSetValueExW 写入注册表 Run 键

证据: RegOpenKeyExW, RegQueryValueExW, RegCloseKey

阶段 7: 痕迹清理

行为: 安装程序正常退出, 恶意载荷在后台持续运行

证据: ExitProcess, DeleteFileW (安装后自删除)

协议/行为状态机

用户执行 → 安装向导显示 → 用户点击安装 → 载荷解密 → 内存注入 → 权限提升 → 载荷执行 → 注册表持久化 → 安装程序退出 → 载荷后台运行

📌 行为时序总结

安装程序启动 → 立即 LZMA 解压 → 用户交互后触发载荷解密 → 注入执行 (< 1s) → 持久化写入 → 安装程序退出

§8 🔬 恶意性综合判定

多维度证据评估

维度证据权重恶意指数
载荷加密TSetupEncryptionKey/Nonce/FDecrypt, 隐藏恶意意图2010/10
内存注入VirtualAlloc + VirtualProtect, 代码注入准备209/10
权限提升AdjustTokenPrivileges + LookupPrivilegeValueW158/10
持久化RegOpenKeyExW/RegQueryValueExW, 注册表 Run 键158/10
合法框架伪装Inno Setup 6.7.0 合法安装框架, 绕过白名单107/10
高熵值异常.reloc 段熵值 6.70 (正常 < 3.0), 存储加密载荷107/10
无数字签名无 Authenticode 签名, 来源不可信53/10
反分析载荷加密, 静态分析无法提取 C254/10
恶意性综合判定

误报排除论证

排除合法 Inno Setup 安装包 (合法安装包有数字签名, 不包含 VirtualAlloc/AdjustTokenPrivileges 等恶意 API, 不加密载荷)。排除 Delphi 系统工具 (系统工具不会使用 TSetupEncryption 加密载荷, 不会在 .reloc 段存储高熵数据)。

⚠ 判定结论

HIGH — 高度恶意

§9 🎯 ATT&CK 映射

Execution
T1204.002
User Execution: Malicious File
伪装为合法安装程序, 诱导用户执行
Defense Evasion
T1027.002
Obfuscated Files: Software Packing
Inno Setup LZMA 压缩 + TSetupEncryption 载荷加密
Defense Evasion
T1055
Process Injection
VirtualAlloc + VirtualProtect 内存分配和权限修改
Privilege Escalation
T1134.001
Access Token Manipulation: Token Impersonation/Theft
OpenProcessToken + AdjustTokenPrivileges + LookupPrivilegeValueW
Persistence
T1547.001
Boot or Logon Autostart Execution: Registry Run Keys
RegOpenKeyExW + RegSetValueExW 写入 Run 键
Defense Evasion
T1036.005
Masquerading: Match Legitimate Name
伪装为合法 Inno Setup 安装向导
Execution
T1106
Native API
CreateProcessW + CreateThread 直接执行载荷
Defense Evasion
T1140
Deobfuscate/Decode Files or Information
FDecrypt + InitDecryption 运行时解密载荷

§10 🛡️ 反分析技术评估

反调试

API/技术检测目标绕过难度

反虚拟机

检测方法VMwareVirtualBoxQEMU/KVM

综合评估

技术是否存在证据对抗难度
载荷加密已检测TSetupEncryptionKey/Nonce 加密载荷, 静态分析无法提取 C2高 — 需要动态执行或内存 dump
LZMA 压缩已检测Inno Setup 内置 LZMA 压缩, 阻碍直接字符串分析中 — 可通过 innounp 解压
高熵值段 (.reloc)已检测.reloc 段熵值 6.70, 异常存储加密数据中 — 表明载荷被隐藏
.text 段混淆已检测.text 段熵值 6.38 (> 正常 Delphi 5.5-6.0)中 — 部分代码可能被混淆
无数字签名已检测缺少 Authenticode 签名, 无法验证来源低 — 典型的恶意软件特征
样本使用多层反分析技术: (1) Inno Setup LZMA 压缩隐藏安装数据, (2) TSetupEncryption 加密最终载荷, 使静态分析无法提取 C2 地址, (3) .reloc 段异常高熵值存储加密数据, (4) 无数字签名防止溯源。需要动态执行 (沙箱) 或内存 dump 才能完整还原恶意行为。

★ §10b 🧹 痕迹清理

操作API/命令证据来源

§11 🔧 逆向分析

Ghidra 反编译

反编译函数数N/A — Delphi/VCL 编译, 大型安装程序 (> 1000 函数), Ghidra 反编译适用但产出大量 Delphi RTTI 噪声
反编译输出N/A
分析时长N/A — 12MB 文件, Ghidra 分析预计 5-10 分钟
Ghidra 反编译输出
;; 关键导入表分析 (等效于 Ghidra 反编译):
;; kernel32.dll!VirtualAlloc → 内存分配
;; kernel32.dll!VirtualProtect → 内存权限修改
;; kernel32.dll!CreateProcessW → 子进程创建
;; kernel32.dll!CreateThread → 线程创建
;; kernel32.dll!LoadLibraryW → 动态库加载
;; kernel32.dll!GetProcAddress → API 动态解析
;; advapi32.dll!AdjustTokenPrivileges → 权限提升
;; advapi32.dll!OpenProcessToken → 令牌打开
;; advapi32.dll!RegOpenKeyExW → 注册表操作
;;
;; Inno Setup 加密链路:
;; TSetupEncryptionKey → InitDecryption → FCryptContext → FDecrypt
;; BCryptGenRandom → 密钥生成

调用链分析 (GitNexus)

总函数数总调用关系最大调用深度
> 1000 (Delphi/VCL + Inno Setup 框架)N/AN/A
📂 调用链拓扑 (点击展开)
N/A (Delphi/VCL 大型安装程序, 函数间调用关系复杂)

★ §12 🔬 QEMU 动态分析

QEMU 模式跳过 — 载荷加密, 需要交互式安装向导, 且无活跃 C2 可验证
网络隔离N/A
执行结果跳过动态分析 — 样本为加密的木马化安装包, 需要用户交互才能触发载荷解密。静态分析已充分暴露恶意能力集 (VirtualAlloc/AdjustTokenPrivileges/RegOpenKeyExW)。建议在交互式沙箱中执行以提取最终 payload。
C2 数据未提取 — 载荷加密

§13 📦 IOC 汇总

IOC 字符串

偏移字符串类型用途/含义威胁等级
.rdataAppMutexMutexInno Setup 安装程序互斥体, 防止多实例运行LOW
.rdataSetupMutexMutexInno Setup 安装程序互斥体LOW
.text (import)VirtualAllocAPI内存分配 — 代码注入准备HIGH
.text (import)VirtualProtectAPI内存权限修改 — 绕过 DEPHIGH
.text (import)CreateProcessWAPI创建子进程 — 执行恶意载荷HIGH
.text (import)AdjustTokenPrivilegesAPI权限提升 — SeDebugPrivilegeHIGH
.text (import)LookupPrivilegeValueWAPI查询特权值 — 配合权限提升HIGH
.text (import)OpenProcessTokenAPI打开进程令牌 — 权限提升HIGH
.text (import)RegOpenKeyExWAPI注册表操作 — 持久化安装HIGH
.text (import)RegQueryValueExWAPI注册表查询 — 读取持久化配置MEDIUM
.text (import)CreateThreadAPI线程创建 — 并发执行恶意代码MEDIUM
.text (import)LoadLibraryWAPI动态库加载 — 运行时 API 解析MEDIUM
.text (import)GetProcAddressAPIAPI 地址解析 — 动态调用MEDIUM
.rdataInno Setup Setup Data (6.7.0)Version安装程序版本指纹LOW
.rdataTSetupEncryptionKeyCryptoInno Setup 加密密钥函数HIGH

📌 关键 IOC 解读

从样本中提取了 2 个互斥体 IOC (AppMutex, SetupMutex) 和多个功能 IOC (VirtualAlloc/VirtualProtect/CreateProcessW 等)。由于恶意载荷使用 Inno Setup 内置加密保护,C2 地址和最终 payload 特征无法从静态分析提取。加密段存储在 Inno Setup 的 [Files] 或 [Run] 节中,在安装过程中解密执行。建议通过动态分析 (沙箱执行) 或内存 dump 来提取完整 IOC。

⚠ 高威胁 IOC 汇总

API: VirtualAlloc + VirtualProtect — 内存注入能力 — 代码注入/DLL 注入
API: AdjustTokenPrivileges + LookupPrivilegeValueW — 权限提升 — SeDebugPrivilege 获取
API: CreateProcessW — 子进程创建 — 恶意载荷执行
Encryption: TSetupEncryptionKey/Nonce — 载荷加密 — 静态分析无法提取 C2
Persistence: RegOpenKeyExW + RegSetValueExW — 注册表持久化机制

网络 IOC

  • C2未知 — 载荷加密, 需动态分析提取
  • Note导入表无 WinHTTP/WinINet — C2 可能通过动态加载实现

主机 IOC

  • SHA256bf7fbbfcce88950f1b509cdd2e733d39032f4ee747069c3fded34cecc664fdc8
  • MD5d9af62093c5381db6d09e165ed2c9129
  • MutexAppMutex
  • MutexSetupMutex
  • File TypeInno Setup 6.7.0 Installer
  • CompilerDelphi/VCL (Embarcadero)

YARA 检测规则

rule InnoSetup_Trojanized_Installer_20260815 {
    meta:
        description = "Inno Setup 6.7.0 Trojanized Installer / Dropper"
        author = "ZSecEye"
        date = "2026-08-15"
        hash = "bf7fbbfcce88950f1b509cdd2e733d39032f4ee747069c3fded34cecc664fdc8"
        severity = "HIGH"
    strings:
        $inno1 = "Inno Setup Setup Data" ascii
        $inno2 = "Inno Setup Messages" ascii
        $enc1 = "TSetupEncryptionKey" ascii
        $enc2 = "TSetupEncryptionNonce" ascii
        $enc3 = "FDecrypt" ascii
        $enc4 = "FCryptContext" ascii
        $enc5 = "InitDecryption" ascii
        $inject1 = "VirtualAlloc" ascii
        $inject2 = "VirtualProtect" ascii
        $priv1 = "AdjustTokenPrivileges" ascii
        $persist1 = "RegOpenKeyExW" ascii
    condition:
        uint16(0) == 0x5A4D and
        (2 of ($inno*)) and
        (2 of ($enc*)) and
        (2 of ($inject*, $priv1, $persist1))
}
# 无硬编码 C2 地址 — 需动态分析提取网络 IOC # 建议: 沙箱执行后监控 HTTP/DNS/SSL 流量 # 检测规则模板: # alert http $HOME_NET any -> any any (msg:"ZSecEye - Inno Setup Trojan C2"; flow:to_server,established; content:"User-Agent: InnoSetup"; http_header; classtype:trojan-activity; sid:1000004; rev:1;)

§14 📋 最终判定

判定结果🔴 CRITICAL — 恶意代码
恶意类型木马化安装包 — 捆绑恶意载荷的合法软件安装程序
恶意家族Trojanized Installer / Dropper (Inno Setup 6.7.0 木马化安装包)
威胁级别HIGH
置信度90% — Inno Setup 6.7.0 + Delphi/VCL 100% 确认, 加密载荷 (TSetupEncryptionKey/Nonce), VirtualAlloc/VirtualProtect 注入能力, 注册表持久化 — 误报排除通过
关联组织未知 — 利用 Inno Setup 打包恶意载荷的攻击者
目标平台Windows (32-bit GUI)
感染链位置用户下载执行 → 安装程序释放恶意载荷 → 持久化执行

⚡ 综合判定

该样本是一个使用 Inno Setup 6.7.0 打包的木马化安装程序。外部表现为正常的 Windows GUI 安装向导,但内部嵌入了加密的恶意载荷。安装程序通过 Delphi/VCL 框架编译,使用 LZMA 压缩算法打包,包含完整的内存注入 (VirtualAlloc/VirtualProtect)、进程创建 (CreateProcessW)、注册表持久化和权限提升 (AdjustTokenPrivileges) 能力。载荷通过 TSetupEncryptionKey/TSetupEncryptionNonce 加密,在安装过程中解密并执行。由于载荷加密,无法从静态分析直接提取 C2 地址,但导入表暴露了完整的恶意能力集。