乐于分享
好东西不私藏

拆开一个289MB的"WPS安装包",我发现了银狐的4层攻击套娃

拆开一个289MB的"WPS安装包",我发现了银狐的4层攻击套娃

银狐样本分析系列 · 第 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 · 威胁检测 · 安全运营