# MSUpdate_Dropper IOC 清单

> 来源样本：`C:\Users\Jun\Desktop\4444\{1,2}\`
> 生成时间：2026-06-11
> 配套：YARA 规则 `defense/yara/MSUpdateUEMS_Dropper.yar`、检测规则 `defense/detections/`、ATT&CK 映射 `defense/killchain/ATTACK_Mapping.md`

## 1. 攻击活动概览

两套互相演化的 VBS 投递链，目标都是把 **ManageEngine Endpoint Central Agent**（合法的 UEMS / DCEE 产品）以"白加黑"方式安装到受害机器，并把 C2 信任锚替换为自签根证书，最终使被控机器"主动回连"到 `202.61.160.189:8383`（位于 `junjun888.ccwu.cc`）。

| 维度 | 套 1 (1/) | 套 2 (2/) |
|---|---|---|
| 入口 VBS | `B_6.vbs` / `A_8.vbs` | `A2_11.vbs` (=B_11) + `C_1.vbs` + `f3a1.vbs` + `f3a1.pdf` |
| 大小 | 6880 字节（**膨胀**到 ~65KB 内存） | 6552–6938 字节（**不膨胀**） |
| 字符串编码 | 无（明文 + 注释伪装） | XOR-90（`XD()` 函数） |
| 下载链路 | 五路（curl/bitsadmin/powershell/certutil/copy） | 四路（curl/bitsadmin 各两路，伪名 `sinhttp.dll`/`sininet.dll`） |
| 解压 | `Shell.Application CopyHere &H14` | `Shell.Application CopyHere &H614` |
| UAC 绕过 | `ShellExecute runas`（**会弹 UAC**） | `elevate.exe`（**ICMLuaUtil COM 静默**） |
| 反睡眠 | 无 | 4 项 `powercfg` 关睡眠 |
| 投递方式 | 单 zip（`c2b8.zip` ≈ 33MB 含 MSI） | 拆分：`elevate.exe` 单独拉、`C_1.vbs` 单独拉、zip 单独拉 |
| C2 URL | `https://junjun888.ccwu.cc/4444/1/c2b8.zip` | `https://junjun888.ccwu.cc/4444/2/{c2b8.zip,elevate.exe,C_1.vbs}` |

## 2. 网络层指标

### 2.1 域名 / IP / 端口

- **域名**：`junjun888.ccwu.cc`（C2 解析到此域名下；ccwu.cc 可能是攻击者控制的隐私域）
- **IP**：`202.61.160.189`（在 `DCAgentServerInfo.json` 中明文 `SERVERIPADDRESS` / `SERVERSECIPADDRESS`）
- **端口**：`8383`（同时是 `SERVERPORT` 与 `SERVERSECUREPORT`，HTTPS）

### 2.2 URL 模板

```
https://junjun888.ccwu.cc/4444/1/c2b8.zip
https://junjun888.ccwu.cc/4444/2/c2b8.zip
https://junjun888.ccwu.cc/4444/2/elevate.exe
https://junjun888.ccwu.cc/4444/2/C_1.vbs
https://junjun888.ccwu.cc/4444/*/c2b8.zip?v=<Timer> # 缓存破坏后缀
```

### 2.3 网络层握手指纹（深检 / JA3+）

- `manageengine` TLS 客户端指纹（Agent 2s 一次心跳，可在流量元数据中识别）
- 同一主机在 60s 内对 `202.61.160.189:8383` 出现 ≥2 次 HTTPS 短连接 = 心跳模式

## 3. 文件层指标（SHA256）

> 完整列表见 `ioc.csv`。这里只列**核心**与**有差异的**。

### 3.1 套 1（1/）

| 文件 | SHA256 | 备注 |
|---|---|---|
| `1/B_6.vbs` = `1/A_8.vbs` | `272ff5d37c70d086ca4d00e3be9492400ea4f356f4cd5616e02c633992573c24` | 体积膨胀主入口 |
| `1/c2b8.zip` | `dd075089c8e3c8cba2c74403146af31b4461303cbe0260927e33c6641f035b8e` | 整套 MSI 投递包 |
| `…\UEMSAgent.msi` (zip 内) | `92f68fc7f6d0f544a750bf67b4903d1a4062d1372b7f98ab5c2f698eb61359bb` | 33MB ManageEngine 主安装包 |
| `…\UEMSAgent.mst` (zip 内) | `180195558475b32abedb88b3103c06ee464148809986b78de32d8fdba897c516` | 自定义 MST 转换（注入证书参数） |
| `…\setup1.vbs` (zip 内) | `33633ef8abb63a5ed8bcd1cf78e90f80438bb0236afe59714bfff83d73410428` | 自提权 + 静默安装脚本 |
| `…\setup.bat` (zip 内) | `fe27ac5a7a72e2f380ecd90367eccec418f87dd7cabb3d3a19ba27f38871b13e` | 同 setup1.vbs 行为 |
| `…\RemCom.exe` (zip 内) | `7a1dcf22a67c194367d4ef65304cf69c11df0b14c3d08215b7ee81373a3cefba` | 3.2MB 合法 RCE 工具（psexec 类） |
| `…\dcremagentinstaller.exe` (zip 内) | `927837f0b31d20c0ed7948cf6170b57b28bfd4bd118aa21853611062ed2678b2` | DC 远程安装器 |

### 3.2 套 2（2/）

| 文件 | SHA256 | 备注 |
|---|---|---|
| `2/A2_11.vbs` (≈B_11) | `5cf9fda1ad7356fc1c3d58f2ae34c7ac2eaf25295ce4336947fca83d8fbd9a2d` | 主入口（XOR-90 编码） |
| `2/C_1.vbs` | `9a34b7e28cd2047eec614fee4c4b7e0e8f42c7aea52ffceb3ed68880cc13bc8e` | 二阶段安装器（XOR-90 编码） |
| `2/f3a1.vbs` | `cdfc3124a212a530d934f95cdca13384efffbc1119a36fadf314b56e754d88ee` | 独立提权入口（命令行参数控制目标） |
| `2/f3a1.pdf` (实际 vbs) | `7a5e5aa1ff2576677658979273854f0ee5444d93d937ae4d6a5bb63825aa26e2` | 独立 powercfg 关睡眠模块 |
| `2/elevate.c` | `3ae024f1c41e5963880cf0af038188875d676e3142e6a8dfa93fe6d0d80e2c7c` | ICMLuaUtil COM 提权 C 源码 |
| `2/elevate.exe` | `149816fb51d263b5f0350c8d8f228f550e9cc0e760b537dbe52140d47508e340` | 103936 字节 PE32+ x64 |
| `2/c2b8.zip` | `3e292f3566bdb734b626e8591501bafc0cfa6a0336f594d1f70abbf544568dae` | 套 2 zip（MSI 主体相同，证书重签） |

### 3.3 套 1 vs 套 2 差异（同一 MSI 主体，仅换证书 / JSON）

| 文件 | 套 1 SHA256 | 套 2 SHA256 | 差异说明 |
|---|---|---|---|
| `UEMSAgent.msi` | `92f68fc7...` | `92f68fc7...` | **完全相同** |
| `UEMSAgent.mst` | `1801955584...` | `1801955584...` | **完全相同** |
| `setup1.vbs` | `33633ef8...` | `33633ef8...` | **完全相同** |
| `setup.bat` | `fe27ac5a...` | `fe27ac5a...` | **完全相同** |
| `RemCom.exe` | `7a1dcf22...` | `7a1dcf22...` | **完全相同** |
| `DMRootCA.crt` | `240cdf9e...` | `57a4fe67...` | **重签** |
| `DMRootCA-Server.crt` | `3d9431a4...` | `e432024b...` | **重签** |
| `DCAgentServerInfo.json` | `0566815d...` | `f4ccdda1...` | **重配**（customerID / agent version 可能不同） |

> **战术含义**：攻击者保留合法 MSI 主体以通过 AV 白名单；只换证书和 JSON 是为了对每套投递通道独立撤销。

## 4. 证书指标（自签，非官方 ManageEngine CA）

> 提取命令：`openssl x509 -in <file> -noout -subject -issuer -serial -dates -fingerprint`
> 全部都是 **自签 root**（Issuer == Subject），与 ManageEngine 公开 CA **不匹配**。

### 4.1 套 1 — `1/c2b8.zip` 内

| 用途 | 字段 | 值 |
|---|---|---|
| **根 CA** `DMRootCA.crt` | Subject / Issuer | `C=US, ST=CA, OU=ManageEngine, O=Zoho Corporation, CN=ManageEngineCA, CN=ManageEngineCA-DS-CA, OU=ManageEngine-DS-CA` |
| | Serial | `7B7C9525F964634A` |
| | Validity | `2026-06-11 08:26:00 GMT` → `2126-06-11 08:26:00 GMT` |
| | SHA1 | `F0:FF:46:6E:7A:9C:A9:AA:E5:9D:BC:95:07:09:08:89:B4:F7:DA:21` |
| **服务器 CA** `DMRootCA-Server.crt` | Subject / Issuer | `C=US, ST=CA, OU=ManageEngine, O=Zoho Corporation, CN=ManageEngineCA` |
| | Serial | `7F8550312F533E53` |
| | Validity | `2026-06-11 08:23:51 GMT` → `2126-06-11 08:23:51 GMT` |
| | SHA1 | `AA:BA:AE:76:59:85:C3:E8:4D:C8:3C:86:E3:57:04:16:57:F7:4D:37` |

### 4.2 套 2 — `2/c2b8.zip` 内（重签）

| 用途 | 字段 | 值 |
|---|---|---|
| **根 CA** `DMRootCA.crt` | Subject / Issuer | `C=US, ST=CA, OU=ManageEngine, O=Zoho Corporation, CN=ManageEngineCA, CN=ManageEngineCA-DS-CA, OU=ManageEngine-DS-CA` |
| | Serial | `536E0214FF42133D` |
| | Validity | `2026-05-25 07:00:10 GMT` → `2126-05-25 07:00:10 GMT` |
| | SHA1 | `0D:9C:9C:52:66:52:EA:97:3F:A5:E6:55:B1:F6:64:0F:F8:7B:42:59` |
| **服务器 CA** `DMRootCA-Server.crt` | Subject / Issuer | `C=US, ST=CA, OU=ManageEngine, O=Zoho Corporation, CN=ManageEngineCA` |
| | Serial | `197012613B19FE93` |
| | Validity | `2026-05-25 06:57:06 GMT` → `2126-05-25 06:57:06 GMT` |
| | SHA1 | `99:23:ED:AC:06:BD:EF:6F:FA:BE:C3:3B:A5:63:70:79:9F:E5:6C:C9` |

### 4.3 检测要点

- **不是 hash，而是 (Subject CN 模板 + OU 模板 + 100 年长有效期 + 自签)** —— 这 4 个特征都是合法 ManageEngine 部署**不会**出现的组合
- `ManageEngineCA-DS-CA` / `ManageEngine-ServerCA-DS-CA` 是攻击者私有 CN；**Zoho 公开 ManageEngine 部署中不出现 `OU=ManageEngine-DS-CA` 这种深嵌 OU 模板**
- 长有效期（100 年）= 攻击者想让根 CA 长期有效，避免反复重签

## 5. 远控元数据（来自 `DCAgentServerInfo.json`）

| 字段 | 值 | 含义 |
|---|---|---|
| `RemoteOfficeProps.REMOTEOFFICENAME` | `远控A组` | 远控组名（中文 UTF-8） |
| `RemoteOfficeProps.REMOTEOFFICEID` | `301` | 远控组 ID |
| `RemoteOfficeProps.CUSTOMERID` | `1` | 客户 ID |
| `RemoteOfficeProps.CUSTOMERNAME` | `DC_CUSTOMER` | 客户名 |
| `ServerInfoProps.MSPNAME` | `DC_MSP` | MSP 名称 |
| `ServerInfoProps.SERVERFLATNAME` | `WIN-JO8D189SO5T` | C2 主机名 |
| `ServerInfoProps.SERVERIPADDRESS` | `202.61.160.189` | C2 IP |
| `ServerInfoProps.SERVERSECIPADDRESS` | `202.61.160.189` | C2 备份 IP（与主 IP 相同） |
| `ServerInfoProps.SERVERPORT` | `8383` | C2 端口 |
| `ServerInfoProps.SERVERSECUREPORT` | `8383` | C2 安全端口（与主端口相同） |
| `ServerInfoProps.productcode` | `DCEE` | 产品码（与 MSI 中 `UEMSProductCode` 一致） |
| `DSAuthProps.VALUE1` | `05d59ee10b619588cbb318bc96b87e3c827cb4ecd4dfd9fc878cdd20d62de0d1efe958893f448fdde94ae91df2aee7fd` | 32 字节 hex 握手指纹 |
| `DSAuthProps.VALUE2` | `9b60bd304ca54f99cb52767711dd1ef7` | 共享对称 key（与 `REMOTEOFFICEAUTHKEY` 相同） |
| `DSAuthProps.branchID` | `301` | 分支 ID（与 `REMOTEOFFICEID` 相同） |
| `AgentProps.AGENTVERSION` | `11.3.2400.33.W` | Agent 版本 |
| `AgentProps.AGENTPOLLINGINTERVAL` | `2` | 轮询间隔（秒） |
| `AgentProps.ProductVersion` | `11.3.2400.33.W` | 与 AGENTVERSION 相同 |
| `AgentProps.UNIQUE_ID_PARAM` | `SERVICE_TAG` | 唯一 ID 来源（BIOS Service Tag） |
| `AgentProps.ENABLESILENT` | `YES` | 静默安装 |
| `AgentProps.ENABLEREMOTEOFFICEMGMT` | `yes` | 启用远控 |
| `AgentProps.PERFORMASSETSCAN` | `yes` | 启用资产扫描 |
| `AgentProps.UEMSProductCode` | `[DCEE]` | 与 productcode 一致 |

## 6. 落盘与文件层行为

### 6.1 落盘路径

- **套 1**：`C:\Users\Public\Documents\MSUpdate_<5位随机数>\`，子文件 `Lo.zip`、`shlwapi.dll`（=curl.exe）、`urlmon.dll`（=bitsadmin.exe）、`setup1.vbs`
- **套 2**：vbs 父目录 = vbs 自身所在目录，落地 `elevate.exe`、`C_1.vbs`、`c2b8.zip`、伪名 `sinhttp.dll`/`sininet.dll`

### 6.2 文件属性

所有拉取 / 落地的文件执行 `.Attributes = 3`（`Hidden` + `System`），形成 `Hidden+System` 双属性。

### 6.3 进程链

```
wscript.exe → wscript.exe （VBS 套娃启动 setup1.vbs / C_1.vbs）
 → msiexec.exe /i UEMSAgent.msi … （静默安装）
 → powercfg.exe /change … 0 ×4 （关睡眠，仅套 2）
 → curl.exe / bitsadmin.exe （下载，套 1 也用 powershell/certutil）
 → certutil.exe -urlcache -split -f （仅套 1）
 → powershell.exe -ExecutionPolicy Bypass -Command "Net.WebClient" （仅套 1）
```

### 6.4 MSI 安装命令行（最强行为指纹）

```
msiexec.exe /i UEMSAgent.msi TRANSFORMS=UEMSAgent.mst ENABLESILENT=yes REBOOT=ReallySuppress INSTALLSOURCE=Manual SERVER_ROOT_CRT="<path>\DMRootCA-Server.crt" DS_ROOT_CRT="<path>\DMRootCA.crt" /qn /lv Agentinstalllog.txt
```

> 合法 ManageEngine 安装**不携带** `SERVER_ROOT_CRT=` 与 `DS_ROOT_CRT=` 两个 MSI 属性。出现这两个属性 = 高度可疑。

### 6.5 注册表

- `HKLM\SOFTWARE\_elevtest_` —— `2/C_1.vbs` 的 `IsAdmin()` 探测：写入空 REG_SZ 试探，失败说明非管理员；立即删除。**注意**：这不是持久化机制，是**权限判定探针**。

## 7. 代码层指标

### 7.1 套 1 体积膨胀（攻击者自述"深度体量加固"）

```vbscript
G_PADD_CONTENT = G_PADD_CONTENT & String(30000, "W")
G_PADD_CONTENT = G_PADD_CONTENT & String(20000, "M")
G_PADD_CONTENT = G_PADD_CONTENT & String(15000, "S")
```
5 个伪造 Microsoft Update 标签 `TRUSTED_INSTALLER_POLICY_ENFORCEMENT_NODE_VALIDATION_` 等，循环 1500 次后追加 65KB 的 W/M/S 字符串。文件 ~6.9KB，但运行时 `G_PADD_CONTENT` 内存占用超 200KB。

### 7.2 套 2 XOR-90 解码器

```vbscript
Function XD(s)
 Dim p, r, i
 p = Split(s, ",")
 r = ""
 For i = 0 To UBound(p)
 r = r & Chr(CInt(p(i)) Xor 90)
 Next
 XD = r
End Function
```
- 常量 `90` 是攻击者私有选择；变体可换，但**`Split(s,",") + CInt + Chr + Xor` 三件套 + 命名 `XD` 的函数**是高置信特征
- 已解码串：`WScript.Shell`、`Scripting.FileSystemObject`、`Shell.Application`、`wscript.exe`、`runas`、`c2b8.zip`、`sinhttp.dll`、`sininet.dll`、`curl.exe`、`bitsadmin.exe`、`UEMSAgent.msi`、`UEMSAgent.mst`、`DMRootCA-Server.crt`、`DMRootCA.crt`、完整 C2 URL

### 7.3 ICMLuaUtil COM 提权（`elevate.c`）

```c
wchar_t pfx[] = L"Elevation:Administrator!new:";
wchar_t cls[] = L"{3E000D72-A845-4CD9-BD83-80C07C3B881F}";
/* IID: {6EDD6D74-C007-4E75-B76A-E5740995E24C} */
```

- `CMSTPLUA` + `ICMLuaUtil!ShellExec` 是经典的 UAC bypass 模式
- 编译为 PE 后 GUID 不会原样出现（运行时拼接），所以 PE 检测靠 **CoGetObject + 动态 ole32 加载 + vtable[9] 调用**这一组合

## 8. Stable Indicators（攻击者改起来最贵的 3 个信号）

> 这些是"防御侧能长期依赖"的指标；其他 (URL 路径、字符串、文件名) 攻击者改一次成本极低，不应作为唯一信号。

### 8.1 自签 ManageEngine 根证书模板

- Subject 含 `C=US, ST=CA, OU=ManageEngine, O=Zoho Corporation, CN=ManageEngineCA, CN=ManageEngineCA-DS-CA, OU=ManageEngine-DS-CA` 这种**双 CN + 多 OU 嵌套**结构
- Validity **100 年**（合法 CA 是 5–25 年）
- 与 ManageEngine 公开 CA 的指纹 / 主题不一致

→ 攻击者每改一次就要重签所有 MSI + MST + Agent 升级包。**改造成本：高**

### 8.2 `DSAuthProps.VALUE1`（32 字节 hex 握手指纹）

`05d59ee1...d62de0d1` 是 32 字节对称 token，Agent 启动后用它与服务端握手。

→ 攻击者改一次 = 所有已部署的 Agent 断连 + 全部重生成 MSI 中的 `DCAgentServerInfo.json`。**改造成本：极高**

### 8.3 MSI 安装命令 5 元组

```
ENABLESILENT=yes
REBOOT=ReallySuppress
INSTALLSOURCE=Manual
SERVER_ROOT_CRT=<path>
DS_ROOT_CRT=<path>
```

→ 这 5 个串同时出现于 msiexec 命令行 = 唯一性强（合法安装不出现 CERT 参数）。即便 MSI 主体被改，这 5 元组仍是强指纹。**改造成本：中等**（攻击者可改 MSI 内部逻辑，但 CERT 参数注入点必须保留）

## 9. 不在 IOC 列表但建议主动搜索的"周边"指标

> 这些不在样本里直接出现，但与本次活动强相关，可在 SIEM / EDR 告警后用作扩展狩猎。

- `WindowsDefender` / `DefenderATP` 注册表项的 `DisableAntiSpyware=1` 写入（攻击者后续可能会做）
- 计划任务 / 服务项中出现 `ME*` / `ManageEngine*` / `UEMS*` 前缀（Agent 装上后会注册这些）
- `%ProgramData%\ManageEngine\DesktopCentral*` 目录创建
- `winrm quickconfig` 被同 vbs 进程链调用
- `netsh advfirewall` 添加 `RemoteOffice` 相关规则的写入

## 10. 不交付 / 不主动扫描

- 不主动对 `202.61.160.189` 做端口扫描或指纹（属攻击者基础设施；如需取证建议走威胁情报平台自动化收集）
- 不解压 `1/*.rar` `2/*.rar`（每包 ~2.6KB，可能是历史备份；无 unrar 工具；ROI 低；如确需取证单独发起）
- 不对 `UEMSAgent.msi` 做深度逆向（33MB，深度逆向超本任务范围；如需建议用 `msiinfo` / `lessmsi` 解出 Property table 对比官方版）
