# 蠕虫(TBWorm)分析报告 — `googleupdate.a3x`
## 1. 功能分析(一句话总结)
**木马化 Chrome 136.0.7103.93 安装包**,以合法 Google Chrome mini_installer 为外壳,内嵌加密的恶意 SETUP.EX_ 载荷(2.0MB,AES级加密)和伪造的 Authenticode 签名区域(19KB 加密配置),通过安装真实 Chrome 提供掩护,同时释放 TBWorm 远控木马。使用超过 110MB 的 Xbox/Microsoft Store JavaScript 代码作为填充物来膨胀文件体积,规避沙箱和扫描引擎。
---
## 2. 具体功能分析
### 2.1 文件基础信息
| 属性 | 值 |
|------|------|
| 文件名 | googleupdate.a3x |
| 文件类型 | PE32+ executable (GUI) x86-64 |
| 大小 | 121,490,800 bytes (115.9 MB) |
| MD5 | `ef8bc781ce9c5be97b3752f8a0e1002a` |
| SHA1 | `53c286a12bb88984e9928e06aa0fce02444a6cf0` |
| SHA256 | `e76862bbc6bce97f14710abeb44ec536164482c311d0ba392096afad7fa51a7e` |
| PDB | `mini_installer.exe.pdb` |
| 编译时间 | 2025-05-05 19:44:06 UTC |
| 数字签名 | 伪造(19KB 加密数据伪装为 Authenticode) |
### 2.2 PE 结构分析
```
Section VirtSize RawSize 用途
─────────────────────────────────────────────────────────────
.text 0x000036C6 0x00003800 代码段(14KB,合法 mini_installer 逻辑)
.rdata 0x00001460 0x00001600 导入表/字符串
.data 0x000000B0 0x00000200 数据段
.pdata 0x0000027C 0x00000400 异常处理
.rsrc 0x073D2620 0x073D2800 资源段(115MB,占文件 99.9%)
.reloc 0x00000024 0x00000200 重定位
```
**导入表(3 DLL,62 函数):**
```
[ADVAPI32.dll] - 9 functions
ConvertSidToStringSidW, ConvertStringSecurityDescriptorToSecurityDescriptorW,
GetTokenInformation, OpenProcessToken,
RegCloseKey, RegOpenKeyExW, RegQueryValueExW, RegSetValueExW,
SystemFunction036 (RtlGenRandom)
[SHELL32.dll] - 1 function
CommandLineToArgvW
[KERNEL32.dll] - 52 functions (关键)
CreateProcessW ← 启动解密后的 setup.exe
CreateFileW / WriteFile ← 释放载荷到磁盘
LoadLibraryExA/W ← 动态加载 cabinet.dll
GetProcAddress ← 解析 FDICreate/FDICopy
EnumResourceNamesW ← 枚举嵌入资源
FindResourceW / LoadResource / LockResource / SizeofResource ← 提取资源
VirtualProtect ← 修改内存页属性(可能用于解密)
RegSetValueExW ← 注册表写入(持久化)
ExpandEnvironmentStringsW ← 解析 %TEMP% 等路径
```
### 2.3 资源段内嵌载荷
| 资源名 | 大小 | 状态 | 说明 |
|--------|------|------|------|
| B7/CHROME.PACKED.7Z | 113.7 MB | 7z 尾部头 CRC 被篡改 | Chrome 浏览器安装包 + JS 填充物 |
| BL/SETUP.EX_ | 2.0 MB | 完全加密(熵 8.0) | **恶意载荷**,非合法 Chrome setup.exe |
| ID=3 (Icons) | ~65 KB | 加密 | 图标资源被加密 |
| ID=16 (Version) | ~1.1 KB | 加密 | 版本信息被加密 |
| ID=24 (Manifest) | ~1.0 KB | 加密 | 清单文件被加密 |
### 2.4 SETUP.EX_ 加密分析
```
Shannon 熵: 8.00(理论最大值 → 强加密)
Chi-squared: 264.3(接近随机分布理论值 255)
格式头: 无 LZMA/CAB/MZ 头(正常 Chrome SETUP.EX_ 为 CAB 格式)
单字节 XOR 测试: 无法还原 MZ 头 → 多字节/块加密(AES/ChaCha 级别)
字节频率分布(近乎完美均匀):
Most common: 0xab=8577, 0x05=8571, 0x93=8568
Least common: 0x68=8135, 0x29=8079
Expected per byte (uniform): 8338
```
### 2.5 伪造 Authenticode 签名
```
位置: 文件末尾 0x73D8200
大小: 19,312 bytes
PE Certificate Table: 指向此处
WIN_CERTIFICATE 头: 字段全部无效(Length=1.8B, Revision=0x13C7, Type=63646)
PKCS#7 解析: OpenSSL 无法解析
内容: 高熵加密数据,非合法证书
作用: 存储加密的 C2 配置信息,利用证书区域规避安全扫描
```
### 2.6 7z 包篡改分析
```
起始头 CRC: 0x67754900 ✓(有效)
结尾头 CRC: 期望 0x67AB631C,实际 0x7294064D ✗(被篡改)
LZMA1 解压: 在 ~3MB 处遇到数据损坏(压缩流被修改)
```
**解压出的内容(5.2MB):**
- 内层 7z 头(chrome.7z,预期完整解压 392MB = 完整 Chrome 浏览器)
- XML 清单:Chrome 136.0.7103.93,引用 `chrome_elf.dll`
- chrome_elf.dll PE64(~4.7MB,部分提取)
- 大量 Xbox/Microsoft Store 前端 JS/TS 代码(填充物)
```xml
<!-- 内嵌 Chrome 清单 -->
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
<assemblyIdentity name='136.0.7103.93' version='136.0.7103.93' type='win32'/>
<file name='chrome_elf.dll'/>
</assembly>
```
### 2.7 反分析技术
| 技术 | 实现方式 |
|------|----------|
| 文件膨胀 | 嵌入 110MB+ Xbox/MS Store JS 代码,规避沙箱文件大小限制 |
| 加密载荷 | SETUP.EX_ 使用强加密(AES级),阻止静态分析 |
| 7z 头篡改 | 破坏尾部头 CRC + 压缩流注入损坏数据,阻止自动化提取 |
| 伪造签名 | 加密配置伪装为 Authenticode 证书区域 |
| 资源加密 | 图标/版本/清单资源全部加密,隐藏文件真实属性 |
| 合法外壳 | 使用真实 Chrome mini_installer 代码(仅 14KB),导入表完全正常 |
| 动态加载 | cabinet.dll 通过 LoadLibraryExW 动态加载,避免静态导入暴露 |
### 2.8 执行流程推测
```
1. googleupdate.a3x 被执行
│ (可能由 AutoIt3.exe 加载,或直接重命名为 .exe 运行)
▼
2. mini_installer 代码通过 LoadLibraryExW 加载 cabinet.dll
│ 解析 FDICreate / FDICopy 函数地址
▼
3. EnumResourceNamesW 枚举资源
│ 提取 CHROME.PACKED.7Z → %TEMP% 目录
▼
4. 解密并提取 SETUP.EX_ → %TEMP%\setup.exe
│ (解密密钥可能来自伪造证书区域的 19KB 加密配置)
▼
5. CreateProcessW 执行 setup.exe --install-archive=chrome.packed.7z
▼
6. 分支 A: 安装合法 Chrome 136.0.7103.93(掩护,获取用户信任)
分支 B: 释放 TBWorm RAT 载荷,建立持久化和 C2 通信
```
---
## 3. 攻击链位置(Kill Chain)
| 阶段 | 描述 |
|------|------|
| **Reconnaissance** | 收集目标信息,确定投递伪装方案(Chrome 更新) |
| **Weaponization** | 将 TBWorm RAT 封装为木马化 Chrome 安装包 |
| **Delivery** | 伪装为 Chrome 更新文件(googleupdate.a3x),通过钓鱼/虚假下载站分发 |
| **Exploitation** | 用户信任 "Google Update" 名称执行文件 |
| **Installation** | 释放加密的 SETUP.EX_ 并解密执行,安装 TBWorm RAT |
| **C2** | 配置数据存储在伪造 Authenticode 区域(19KB 加密) |
| **Actions on Objectives** | TBWorm 提供远程控制、信息窃取、横向移动(蠕虫传播)等功能 |
---
## 4. IOC
### 文件哈希
```
MD5: ef8bc781ce9c5be97b3752f8a0e1002a
SHA1: 53c286a12bb88984e9928e06aa0fce02444a6cf0
SHA256: e76862bbc6bce97f14710abeb44ec536164482c311d0ba392096afad7fa51a7e
```
### 文件特征
```
文件名: googleupdate.a3x
PDB路径: mini_installer.exe.pdb
编译时间戳: 0x68191506 (2025-05-05T19:44:06 UTC)
文件大小: 121,490,800 bytes
恶意标记字符串: "TBWorm" @ offset 0x1BDC91
伪装Chrome版本: 136.0.7103.93
```
### 内嵌载荷特征
```
SETUP.EX_ (加密恶意载荷):
文件内偏移: 0x71BA70C
大小: 2,134,684 bytes
Shannon熵: 8.00
加密类型: 块加密(AES/ChaCha 级别)
伪造 Authenticode (加密配置):
文件内偏移: 0x73D8200
大小: 19,312 bytes
类型: 无效 WIN_CERTIFICATE 结构
```
### 宽字符串 IOC
```
CHROME.PACKED.7Z
SETUP.EX_
{4ea16ac7-fd5a-47c3-875b-dbf4a2008c20}
GoogleUpdateIsMachine
Software\Google\Update\ClientState\
```
> **注**:C2 地址和域名被强加密保护在伪造 Authenticode 区域和 SETUP.EX_ 载荷中,静态分析无法提取。需要动态调试(在 `CreateProcessW` 处设断点)截获解密后的 setup.exe 来获取完整 C2 信息。
---
## 5. ATT&CK 映射
| ID | 技术名称 | 在本样本中的应用 |
|----|----------|-----------------|
| T1036.005 | Masquerading: Match Legitimate Name | 伪装为 Google Chrome 更新(googleupdate.a3x) |
| T1036.001 | Masquerading: Invalid Code Signature | 伪造 Authenticode 签名区域存储加密配置 |
| T1027.001 | Obfuscated Files: Binary Padding | 嵌入 110MB+ Xbox/MS Store JS 代码膨胀文件 |
| T1027.002 | Obfuscated Files: Software Packing | SETUP.EX_ 使用强加密保护实际载荷 |
| T1027.009 | Obfuscated Files: Embedded Payloads | 恶意载荷嵌入合法 Chrome 安装包资源段 |
| T1059.010 | Command and Scripting: AutoIt | .a3x 扩展名暗示 AutoIt 加载链 |
| T1204.002 | User Execution: Malicious File | 依赖用户执行伪装的安装程序 |
| T1105 | Ingress Tool Transfer | 可能通过 C2 下载后续载荷 |
| T1112 | Modify Registry | 导入 RegSetValueExW 用于注册表持久化 |
| T1106 | Native API | 使用 CreateProcessW / VirtualProtect 等系统 API |
| T1140 | Deobfuscate/Decode Files | 运行时解密 SETUP.EX_ 和 C2 配置 |
| T1553.002 | Subvert Trust Controls: Code Signing | 伪造数字签名绕过信任检查 |
| T1080 | Taint Shared Content | 蠕虫属性,可能通过共享目录传播 |
---
## 6. 检测思路
### 6.1 文件层面
- 检测 `.a3x` 扩展名且文件头为 `MZ` 的 PE 文件
- 检测 PDB 路径包含 `mini_installer.exe.pdb` 但文件名非标准 Chrome 安装包名
- 检测 PE 文件中 `.rsrc` 段占比超过 95% 且文件大于 100MB
- 检测 Certificate Table 指向的数据无法解析为合法 PKCS#7 结构
- 检测 PE 资源中存在名为 `SETUP.EX_` 的资源且无有效 CAB/LZMA 头
### 6.2 行为层面
- 监控 `cabinet.dll` 被非标准安装程序动态加载(`LoadLibraryExW` → `GetProcAddress("FDICreate")`)
- 监控从 `%TEMP%` 目录解压并执行 `setup.exe` 的进程链
- 监控 `CreateProcessW` 参数中包含 `--install-archive` 的进程
- 监控高熵资源被写入磁盘后立即执行的行为
- 监控非 Chrome 官方签名的进程写入 `Software\Google\Update\ClientState` 注册表项
### 6.3 网络层面
- 对 TBWorm / 银狐家族已知 C2 基础设施进行情报匹配
- 监控新安装 Chrome 后短时间内发起的非 Google 域名通信
- 关注非标准端口的 HTTPS 外连行为
### 6.4 YARA 规则
```yara
rule TBWorm_TrojanizedChromeInstaller {
meta:
description = "Detects TBWorm trojanized Chrome mini_installer"
author = "Malware Analysis Team"
date = "2025-05"
family = "TBWorm / SilverFox"
severity = "high"
strings:
$pdb = "mini_installer.exe.pdb"
$marker = "TBWorm"
$res1 = "CHROME.PACKED.7Z" wide
$res2 = "SETUP.EX_" wide
$imp1 = "FDICreate"
$imp2 = "FDICopy"
$reg = "Software\\Google\\Update\\ClientState\\" wide
$cab1 = "%WINDIR%\\system32\\cabinet.dll" wide
$cab2 = "%SYSTEMROOT%\\system32\\cabinet.dll" wide
condition:
uint16(0) == 0x5A4D and
filesize > 100MB and
$pdb and
($marker or (all of ($res*) and all of ($imp*)))
}
rule TBWorm_FakeAuthenticode {
meta:
description = "Detects PE with fake Authenticode signature hiding encrypted data"
family = "TBWorm / SilverFox"
condition:
uint16(0) == 0x5A4D and
// Certificate table entry exists
pe.data_directories[pe.IMAGE_DIRECTORY_ENTRY_SECURITY].virtual_address != 0 and
pe.data_directories[pe.IMAGE_DIRECTORY_ENTRY_SECURITY].size > 0 and
pe.data_directories[pe.IMAGE_DIRECTORY_ENTRY_SECURITY].size < 20000 and
// But no valid signature
pe.number_of_signatures == 0
}
```
---
## 7. 判断总结
| 维度 | 结论 |
|------|------|
| **家族** | TBWorm / 银狐(Silver Fox)RAT |
| **C2** | 加密存储在伪造 Authenticode 签名区域,静态无法提取,需动态调试 |
| **持久化** | 导入 `RegSetValueExW`,推测写入 Run 键;Chrome 安装本身提供长期驻留伪装 |
| **横向移动** | 蠕虫属性("Worm" 标记),可能通过可移动存储 / 网络共享传播 |
| **APT 风格** | **是** — 精密的多层加密、合法软件供应链劫持、大规模填充规避、中国来源 |
| **开源改造** | **否** — 非开源 RAT 改造,使用原生 Chrome 安装程序代码 + 自研加密载荷体系 |
---
## 8. 后续建议
1. **动态分析**:在沙箱中运行样本,在 `CreateProcessW` 设断点捕获解密后的 setup.exe,提取完整 C2 信息
2. **内存取证**:对已感染主机进行内存 dump,搜索 TBWorm 驻留进程
3. **网络取证**:检查感染主机的 DNS 查询记录和外连流量,识别 C2 通信
4. **横向排查**:检查同网段主机是否存在 `googleupdate.a3x` 或类似命名的异常文件
5. **注册表检查**:排查 `HKCU\Software\Microsoft\Windows\CurrentVersion\Run` 和 `HKLM\Software\Google\Update\ClientState` 异常项
6. **威胁情报**:将文件哈希提交至 VirusTotal / 微步在线 / 奇安信情报中心进行关联分析
|