Anastasia-hub-dot/malware-analysis-portfolio
GitHub: Anastasia-hub-dot/malware-analysis-portfolio
对 Xworm 家族 .NET 隐写多阶段 Loader 恶意软件样本的完整静态与动态分析报告。
Stars: 1 | Forks: 0
# Xworm .NET 隐写多阶段 Loader 分析





## 概述
对一个复杂的 .NET 恶意软件样本进行了完整的静态和动态分析,该样本利用**图像隐写术**将 payload 隐藏在 bitmap 资源中。该恶意软件实现了一个**四阶段的反射式 Loader 链**,在每一层都伪装成不同的虚假身份。
**样本:** `unknown.exe` (1.59 MB, 32 位 .NET Assembly)
**SHA-256:** `6a0bf1dba11b61b4b53e78ccb483a7aea4ec3cfa81d2e7f9de55376c9fdef7ec`
## 主要发现
| 发现 | 描述 |
|---------|-------------|
| **隐写 Loader** | 从 King bitmap 资源的像素数据(RGB 通道)中提取隐藏的 .NET assembly |
| **四阶段架构** | Wrapper → SystemPuzzle.dll → 未知 assembly → 最终 payload |
| **自我复制的持久化** | 将自身复制到 AppData\Roaming,并使用随机生成的 Run 键 |
| **反分析** | 19 秒休眠、控制流平坦化、Unicode 混淆 |
| **诱饵分层** | WinChess Pro → SystemPuzzle → MindGrid Games(每个阶段使用不同的身份) |
## Loader 链架构
阶段 1:unknown.exe (Wrapper)
- 伪装为 "WinChess Pro"
- 通过 King bitmap 进行隐写 → Assembly.Load()
阶段 2:SystemPuzzle.dll(提取的 Payload)
- 伪装为 "AdvancedPuzzleGame"
- 19 秒反分析延迟
- bitmap 资源 + XOR 解密 → Assembly.Load()
阶段 3:未知 assembly (type20)
- 通过反射索引动态调用
- 释放持久化组件
阶段 4:最终 payload(未恢复)
- 由阶段 3 加载
- 具体能力未知
## 使用的工具
| 类别 | 工具 | 用途 |
|----------|------|---------|
| PE 分析 | CFF Explorer | 头部、节区、导入表、.NET metadata |
| 熵 | Detect It Easy | 壳检测、熵分析 |
| 字符串 | FLOSS | 静态/去混淆字符串提取 |
| 反编译 | dnSpy | IL 代码分析、资源检查 |
| 提取 | Python (stdlib) | 隐写 payload 提取 |
| 注册表 | Regshot | 注册表差异比较 |
| 进程 | Procmon | 文件/注册表/进程监控 |
| 检测 | YARA | 基于特征签名的检测规则 |
## 攻陷指标 (IOC)
**文件哈希:**
- MD5: `D9E04615243862922124434734E44619E`
- SHA-1: `8B0954A8E13C1086945B93E9E967786E86BD0F2A`
**持久化路径:**
- 注册表:`HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\fSmFLvrjkQfOLb`
- PowerShell: `AppData\Local\Temp\qfeot4fnozp.ps1`
- 二进制文件:`AppData\Roaming\fSmFLvRjkQfOLb.exe`
标签:DAST, DNS 反向解析, 云安全监控, 云资产清单, 多人体追踪, 威胁情报, 开发者工具, 恶意软件分析, 逆向工具, 逆向工程, 静态分析