银狐样本分析系列 · 第 1 篇
🦊 银狐 WPS 安装包样本分析
伪装、隐写与多层加载的技术演进
📌 关于本系列
「银狐样本分析」是一个持续的学习项目。我们不定期获取银狐家族的真实样本,通过静态/动态分析理解其技术原理,从中提取可用于 EDR 检测的特征(IoC、行为模式、代码特征)。
📌 核心发现
一个 289MB 的"WPS安装包",内部藏着 4 层攻击结构:
•第1层:Inno Setup 打包的真实安装界面
•第2层:eZOh.exe 初始化加载器
•第3层:B1prkVq.bRV 解密执行器
•第4层:1Re6oHei.Go PNG隐写(14.5MB加密载荷)
📖 样本概述
项目 | 内容 |
原始样本 | win-64-wps.exe(伪装 WPS 安装包) |
打包工具 | Inno Setup 6.0.0 |
分析样本 | eZOh.exe / B1prkVq.bRV / 1Re6oHei.Go |
架构 | x86-64 (PE64) |
恶意家族 | 银狐(Silver Fox) |
分析方法 | IDA Pro 静态分析 + Python 辅助 |
🔍 攻击链全景
win-64-wps.exe (Inno Setup 诱饵安装包,289MB)
├─ 运行 Setup_25225.exe → 显示假 WPS 安装界面
└─ 部署并执行 eZOh.exe (9KB 初始化加载器)
├─ 等待系统自启动完成
├─ 写入注册表持久化
└─ 加载 B1prkVq.bRV (1.4MB DLL)
├─ PEB遍历 → API哈希解析
├─ 读取 1Re6oHei.Go (PNG图片)
└─ 从 IDAT 块提取隐写载荷 (14.5MB)
📌 第一层:Inno Setup 诱饵安装包
文件特征
属性 | 值 |
文件名 | win-64-wps.exe |
文件大小 | 289.43 MB |
文件类型 | PE32 (x86) |
打包工具 | Inno Setup 6.0.0 (Unicode) |
编译器 | Embarcadero Delphi 10.3 Rio |
打包检测结果:
•Packer: Inno Setup Module(6.0.0)[unicode]
•附加特征: Overlay 数据包含安装脚本和资源

提取文件清单
文件名 | 大小 | 真实类型 | 角色 |
Setup_25225.exe | 273 MB | PE32 | 诱饵:伪造WPS安装程序 |
eZOh.exe | 9 KB | PE64 | 初始化加载器 |
B1prkVq.bRV | 1.41 MB | PE64 DLL | Payload解密执行器 |
1Re6oHei.Go | 13.9 MB | PNG图像 | 隐写载体 |
5u49Y.ico | 175 KB | 图标 | 伪造WPS图标 |

⚠️ 注意:1Re6oHei.Go 文件头为 89 50 4E 47(PNG magic),并非Go语言二进制。.Go / .bRV 等非标准扩展名是银狐规避检测的惯用手法。
📌 第二层:eZOh.exe 初始化加载器
属性 | 值 |
文件大小 | 9 KB |
架构 | x86-64 (PE64) |
编译器 | MSVC |
PDB路径 | secinit.pdb |
代码混淆 | 垃圾代码插入(Junk Code) |
关键字符串:
字符串 | 用途 |
Global\SC_AutoStartComplete | 等待Windows自启动服务完成 |
\SAM_SERVICE_STARTED | 等待SAM服务就绪 |
Administrator | 本地管理员账户名 |
HKLM\SYSTEM\Setup | 持久化注册表键路径 |
GCTL | 疑为内部控制标识 |
📌 第三层:B1prkVq.bRV 解密执行器
属性 | 值 |
文件大小 | 1.41 MB |
架构 | x86-64 (PE64 DLL) |
编译时间戳 | 2009-10-19(伪造) |
MD5 | 60a1da2607c413af94173c66e58d8493 |
导出表(19个混淆导出):
CMtLBgQXKVWWlRKdFjTlKfWiEwFtGqpDYOXfDOIXuHMeuHuVB
STaazqlsBzEZJLYxjcdNlCjboDYRoRuaUlzDQAkEgkNhQx
yjlqaRRKvaHskMXg...(共19个随机字符串命名)
📌 第四层:1Re6oHei.Go PNG 隐写分析
属性 | 值 |
文件大小 | 13.90 MB |
实际格式 | 有效 PNG 图像 |
PNG尺寸 | 800 × 600,RGB 24-bit |
隐藏载荷大小 | 14,526,105 bytes (~13.9 MB) |
载荷熵值 | 8.000(满熵,对称加密) |
隐写手法:IDAT 块填充
IDAT 块布局:
┌─────────────────────────────────────────┐
│ IDAT #1 (32,937 bytes) │ 真实图像数据│
│ IDAT #2 (44 bytes)│ 加密payload始 │
│ IDAT #3~N (8,192 bytes)│ 加密payload续 │
│ IEND│ 正常结束标记│
└─────────────────────────────────────────┘
💡 核心发现:所有IDAT块的CRC均重新计算为合法值,可通过所有PNG格式校验。图像查看器可正常打开显示。
🛡️ 检测要点
文件层面
检测点 | 特征 |
大文件安装包 | >100MB 的"WPS"、"搜狗"等安装程序 |
非标准扩展名 | .bRV、.Go、.tmp 等伪装 |
PNG异常 | 图像文件大小 >10MB(正常 <2MB) |
熵值检测 | .text 节熵值 >7.9(加密特征) |
行为层面
检测点 | 特征 |
命名事件等待 | SC_AutoStartComplete、SAM_SERVICE_STARTED |
注册表操作 | HKLM\SYSTEM\Setup\CmdLine 修改 |
DLL导出 | 大量随机字符串命名的导出函数 |
API解析 | 仅导入 LocalAlloc/LocalFree 的 DLL |
📚 IoC 清单
类型 | 指标 |
文件名 | eZOh.exe, B1prkVq.bRV, 1Re6oHei.Go, win-64-wps.exe |
MD5 | 60a1da2607c413af94173c66e58d8493 (B1prkVq.bRV) |
SHA256 | 5017723f0dd6f9bf3bb4c0b9a035f352fcefa14e79cf3a924c84948f20e21d45 |
PDB路径 | secinit.pdb |
命名事件 | Global\SC_AutoStartComplete, \SAM_SERVICE_STARTED |
注册表 | HKLM\SYSTEM\Setup(Upgrade、CmdLine) |
PNG特征 | 800×600 RGB,IDAT 总数据量 > 14 MB |
—
EDR实战派 | 专注终端安全与威胁检测的技术实战号
🛡️ 终端安全 · EDR · 威胁检测 · 安全运营
夜雨聆风