🎨 颜色标记说明

  • 粉色:特别重要、主线必掌握、优先复盘的内容。
  • 蓝色:核心概念、术语、分类名。
  • 橙色:需要关注的边界、易错点、注意事项。
  • 绿色:解释类内容、帮助理解知识点。

返回:全书总览 · 上一章:远控样本分析 · 下一章:代码重建

本章是历史事件的防御性复盘,不提供漏洞利用、传播或加密破坏的实现细节。样本分析必须在获得授权的隔离实验室中进行。

事件定位

WannaCry 是 2017 年大规模爆发的勒索蠕虫事件。分析时应把它拆成几个问题:

  • 初始执行与环境检查。
  • 勒索组件的部署和文件处理。
  • 服务与进程行为。
  • 基于 SMBv1 漏洞面的横向传播。
  • 赎金界面、说明文件和恢复影响。

案例学习的重点是“组件如何协作、证据如何关联、事件如何遏制”,而不是复现传播链。

组件化观察

样本可能释放或启动多个文件与进程。阅读反汇编时先建立组件表:

组件 记录内容
初始载荷 入口、环境检查、释放或启动动作
服务组件 服务名称、命令行、启动与停止行为
勒索组件 文件枚举、扩展名筛选、密钥与界面逻辑
传播组件 网络扫描和 SMB 相关证据,仅做行为定性
辅助资源 语言、壁纸、说明文件和配置数据

不要仅凭文件名判定角色,需通过父子进程、调用关系和文件哈希交叉验证。

环境与网络检查

历史分析中广为人知的网络检查曾影响部分样本的执行路径。逆向这类逻辑时要记录:

  • 检查发生在何时。
  • 成功与失败分别走向哪个基本块。
  • 它影响的是整个程序还是某个组件。
  • DNS、HTTP 或网络错误如何被解释。

这类“开关”可能因样本变种而变化,不能作为唯一防线。

文件处理链

防御分析关注:

1
2
3
4
5
6
枚举目录和文件
-> 按扩展名或路径过滤
-> 读取原文件
-> 生成或写入转换后的内容
-> 重命名、删除或保留原文件
-> 写入说明和界面资源

需要记录哪些目录被排除、哪些文件类型被选择、失败如何处理,以及是否保留可恢复临时文件。

密码学部分怎么读

不必一开始就陷入所有算法细节。先识别:

  • 调用了哪些系统或第三方密码 API。
  • 对称密钥与非对称密钥分别用于什么层次。
  • 密钥材料何时生成、导入、导出和销毁。
  • 文件头或元数据保存了哪些恢复所需信息。
  • 随机数来源是否可靠。

加密算法名称不能单独说明实现正确,也不能说明文件可恢复;必须结合具体数据流与样本版本判断。

传播面与 MS17-010

WannaCry 的大规模传播与未及时修补的 SMBv1 漏洞面密切相关。防守端应把分析结果转成资产问题:

  • 哪些系统未安装相关安全更新。
  • 哪些主机仍启用 SMBv1。
  • 445 端口是否跨网段暴露。
  • 工作站之间是否缺乏横向隔离。
  • 是否存在无法打补丁的遗留系统。

关闭外网 445 端口并不足够。若内部网络平坦、旧系统未修补,感染仍可能在内网横向扩散。

事件响应顺序

1
2
3
4
5
6
7
确认告警与影响范围
-> 隔离受影响主机和高风险网段
-> 阻断横向传播路径
-> 保全内存、日志和样本证据
-> 识别未修补资产
-> 从可信备份恢复
-> 全网验证补丁与配置

不要在证据尚未保全时仓促清理所有文件;也不要为了观察行为让感染主机继续连接生产网络。

检测思路

建立多层检测:

  • 文件层:已知哈希、说明文件、异常扩展名和释放路径。
  • 进程层:异常服务创建、父子进程与批量文件操作。
  • 网络层:异常 SMB 扫描、连接爆发和跨网段访问。
  • 资产层:SMBv1、补丁状态、遗留操作系统。
  • 恢复层:备份是否离线、不可变且定期演练。

复盘模板

1
2
3
4
5
6
7
8
9
10
11
12
样本与变种:
受影响主机:
初始发现时间:
组件关系:
文件行为:
服务与进程:
网络行为:
传播条件:
加密影响:
遏制措施:
恢复结果:
长期整改:

学习检查清单

检查项 状态
能把样本拆成启动、勒索与传播组件 待复盘
能从控制流判断网络检查影响的执行路径 待复盘
能建立批量文件处理的行为链 待复盘
能说明补丁、SMBv1 与网络分段的防御价值 待复盘
能给出隔离、取证、恢复和长期整改顺序 待复盘