016、远控木马的防御性逆向分析
返回:全书总览 · 上一章:OllyDbg 原理 · 下一章:WannaCry 分析
本章只用于授权环境中的防御研究、取证和检测。不要在宿主机运行未知样本,不连接真实互联网,不复现控制端、传播或持久化功能。
分析目标
面对远程控制类恶意程序,防御分析的目标不是“把每条指令都读完”,而是尽快回答:
- 样本如何进入与启动?
- 如何保持驻留?
- 与哪些进程、文件、注册表、服务交互?
- 是否建立外部通信,通信证据是什么?
- 能执行哪些能力?
- 如何检测、隔离和修复?
安全实验环境
最低要求:
- 使用专用虚拟机并在分析前创建快照。
- 与个人文件、密码、浏览器会话和生产网络隔离。
- 默认断网;需要观察网络时使用可控的模拟服务。
- 禁用宿主机共享目录、共享剪贴板和自动挂载。
- 记录样本哈希、来源、时间、分析人员和授权范围。
样本本身永远视为不可信输入,分析工具、脚本和转储文件也要放在受控环境中处理。
静态初筛
先建立不运行样本也能取得的证据:
| 项目 | 观察内容 |
|---|---|
| 哈希 | SHA-256 为主,保留文件大小 |
| PE 头 | 架构、时间戳可信度、节区与入口点 |
| 签名 | 数字签名是否存在、是否有效 |
| 导入 | 进程、网络、文件、服务、注册表相关 API |
| 字符串 | 路径、域名、互斥体、命令名称、错误文本 |
| 资源 | 嵌入配置、图标、压缩或附加数据 |
| 壳与混淆 | 只记录证据和置信度,不凭熵值定性 |
字符串既可能是有效配置,也可能是诱饵,需要交叉引用确认是否被代码使用。
行为观察
动态阶段重点记录“发生了什么”,不急于猜动机:
- 新建、修改和删除的文件。
- 进程树、命令行、父子关系与句柄。
- 注册表启动项、服务和计划任务变化。
- 互斥体、命名管道、事件和共享内存。
- DNS、连接目标、端口、证书和流量时序。
- 内存权限变化、模块加载和线程入口。
每条行为要保留时间、进程、对象、结果和原始证据位置。
能力矩阵
远控类样本可能包含多种能力,分析报告可按“证据强度”记录:
| 能力类别 | 可验证证据 |
|---|---|
| 系统信息收集 | 查询系统、用户、网络和进程信息的调用与输出 |
| 文件管理 | 路径枚举、读取、写入与删除行为 |
| 进程控制 | 创建、终止、枚举或注入相关行为 |
| 屏幕/输入 | 图形、剪贴板或输入设备 API 的实际调用 |
| 持久化 | 启动项、服务、计划任务的写入记录 |
| 网络通信 | 连接目标、握手、消息边界和重试策略 |
“导入了某 API”只能说明可能性;只有数据流或动态行为才能提高置信度。
通信协议分析
以检测为目的,记录:
- 客户端还是监听端发起连接。
- 消息是否有固定头、长度、类型与校验字段。
- 是否压缩或加密,以及发生在通信流程的哪个阶段。
- 心跳、重连、超时和错误处理特征。
- 稳定的域名、证书、User-Agent 或字节模式。
不要连接真实控制基础设施。使用离线流量、回放或受控模拟环境验证解析结论。
从分派函数恢复命令语义
样本常把收到的消息类型映射到多个处理函数。逆向时可以:
1 | 定位消息读取点 |
这里只恢复能力分类和证据,不重建可操作的控制端。
IOC 与行为检测
IOC 报告应分层:
- 强特征:样本 SHA-256、稳定证书指纹、独特互斥体。
- 中等特征:特定路径组合、服务名称、协议字段。
- 弱特征:单独域名、常见 API、宽泛字符串。
哈希易变化,长期检测更适合围绕进程链、持久化动作、网络行为和内存特征建立关联规则。
报告模板
1 | 样本标识: |
学习检查清单
| 检查项 | 状态 |
|---|---|
| 能搭建与宿主和生产网络隔离的分析环境 | 待复盘 |
| 能先做静态初筛再决定动态观察范围 | 待复盘 |
| 能用证据区分“可能能力”和“已观察行为” | 待复盘 |
| 能整理进程、文件、注册表和网络时间线 | 待复盘 |
| 能输出 IOC、行为检测与恢复建议 | 待复盘 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Ruiqy~!





















