第 75 章 勒索软件深度分析(加密实现与解密研究)
勒索软件是影响最大的恶意软件类别。本章深入三个层次:行为链(感染→加密→勒索)、加密实现(算法/密钥管理——解密研究的关键)、解密研究(如何恢复数据)。这是恶意软件逆向中"研究价值最高"的领域。
📍 知识点地图 | 主题:勒索软件 | 前置:第17章 | 后续:— | 核心概念:行为链、混合加密、解密研究、密钥管理
75.1 勒索软件行为链(六阶段模型)
1. 初始感染: 钓鱼附件/漏洞/RDP 爆破/供应链
2. 提升权限: 横向移动 + 提权(第 62/60-61 章)
3. 侦察: 找目标数据(文件服务器/共享/数据库)
4. 破坏备份:
vssadmin delete shadows /all(删卷影)
wbadmin delete catalog(删备份目录)
PowerShell: Remove-Item *vss*
5. 加密: 批量加密目标文件
6. 勒索: 勒索信(HTML/TXT)+ 计时器 + 联系方式
分析价值: 每阶段都有可提取的行为特征(检测规则)
75.2 加密实现分析(解密研究的关键)
勒索软件加密的通用架构
混合加密(几乎所有现代勒索软件):
1. 生成"会话密钥"(对称密钥,每个文件/会话随机)
2. 用会话密钥快速加密文件(AES/XChaCha20/自研)
3. 用"攻击者公钥"(RSA/ECC)加密会话密钥
4. 会话密钥密文写入文件(头部/尾部/伴生文件)
攻击者不需要存密钥: 只有攻击者的私钥能解会话密钥
受害者不付钱 → 数据不可恢复(设计目标)
逆向要点(哪些决定能否解密)
□ 会话密钥生成: 是否真随机?(弱 RNG → 可预测!)
□ 密钥管理:
- 会话密钥是否删除?(内存擦除?)
- 密钥加密流程(RSA? 是否含"恢复密钥"后门?)
□ 加密算法: 标准(AES)还是自研?(自研 = 可能有弱点)
□ 文件处理:
- 覆盖 vs 写新文件(覆盖 = 无恢复可能;写新文件+删原文件 = 可能恢复)
- 大文件只加密头部?(部分加密 → 部分恢复)
□ 加密范围: 排除列表(系统文件不加密)
□ 解密器是否存在(某些样本带"解密后门")
75.3 解密研究流程(最硬核的部分)
1. 拿到样本 + 被加密的文件样本(明文对)
2. 分析加密实现(75.2)→ 画出密钥流图
3. 找弱点:
□ 密钥可预测(种子固定/时间戳/文件内容派生)
□ 会话密钥重复使用
□ 密钥保留在文件里(明文/可提取)
□ 加密算法实现错误(可数学攻击)
□ 有"解密器"或"恢复密钥"机制
4. 写解密脚本(还原密钥 → 批量解密)
5. 验证: 用明文对验证解密正确性
6. 发布: 解密工具/研究论文(社区共享)
工具: 逆向(第 35-38 章)+ 密码分析(第 34 章)+ 自写 Python
75.4 家族案例分析(模式感)
| 家族 | 加密特点 | 解密可能 |
|---|---|---|
| Ryuk | AES + RSA,密钥随机 | 需私钥(难) |
| Conti | 定制 AES,密钥在内存 | 早期版本可提取 |
| REvil | 密钥加密流程有缺陷 | 曾发布通用解密器 |
| GandCrab | 密钥派生可逆 | 可解密(早期版本) |
| LockBit | 参数化(可配置) | 部分版本可解 |
| 自研加密家族 | 弱实现常见 | 分析后常可解 |
规律:攻击者用的标准算法越规范,越难解密;实现越"DIY",越可能有弱点。
75.5 分析环境与安全
□ 绝对隔离(VM 快照/无网络/无共享盘)
□ 用"诱饵文件"环境(加密的是测试数据)
□ 监控: Process Monitor/API Monitor 记录文件操作
□ 模拟 C2(inetsim)防回连
□ 样本只读,改动在副本
□ 不真实支付/联系(研究场景)
75.6 检测与防御(蓝队视角)
检测信号:
□ 大量文件重命名/写入(.locked/.encrypted 后缀)
□ vssadmin delete shadows(破坏备份命令)
□ 批量文件枚举(FindFirstFile 循环)
□ 高熵写入(加密文件)
□ 勒索信创建(RESTORE_*.txt/README*.html)
□ 进程横向移动迹象
防御:
□ 备份策略(3-2-1 原则 + 离线备份)
□ 最小权限(防横向)
□ 监控关键命令(vssadmin/wbadmin)
□ 文件活动基线(异常加密模式告警)
□ 补丁+邮件防护(阻断初始感染)
75.7 勒索软件分析检查清单
□ 行为链还原(六阶段,每阶段证据)
□ 初始感染向量确认
□ 备份破坏动作确认
□ 加密实现逆向(算法/密钥流)
□ 密钥管理弱点分析(可解密?)
□ 文件处理方式(覆盖/部分加密/删除原文件)
□ 解密可行性评估
□ 解密脚本(如可行)
□ IOC + 检测规则产出
□ 报告: 行为+加密+解密+防御
动手练习
- 在隔离环境运行一个开源"演示勒索软件"(GitHub 有教学项目),用 Process Monitor 记录它的完整行为链。
- 逆向一个"弱 RNG 密钥"的示例勒索软件,写出密钥恢复+解密脚本。
- 分析加密文件结构:被加密文件头部/尾部的元数据(会话密钥密文在哪)。
- 写一份"家族分析报告":行为链+加密实现+解密评估(对照 75.7 清单)。
深入阅读
- 仓库:
skills/malware-analysis/SKILL.md(六阶段框架) - 仓库:
CTF-Sandbox-Orchestrator/competition-malware-config/(配置提取) - 仓库:
skills/reverse-engineering/crypto-decode-tools.md(密码工具) - 仓库:
skills/llm-security/references/(AI 辅助分析) - 外部: NoMoreRansom(官方解密器平台)、勒索软件家族研究报告