勒索软件分析(加密识别 / 勒索信 / 解密恢复)

SkillDev tools

勒索软件分析:加密识别、勒索信、解密恢复思路。 触发词:勒索、ransomware、加密文件、勒索信、解密恢复

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the 勒索软件分析(加密识别 / 勒索信 / 解密恢复) skill

What this skill tells your AI

The instructions your AI receives, as published by dslsdzc/rev-skills in .claude/skills/re-ransomware/SKILL.md and read by ahel’s review.

何时使用 / 何时不用

  • 用:受害者文件被加密(扩展名变化、文件头损坏、熵升高)、出现勒索信(README/DECRYPT)的样本
  • 用:需要判断"能不能恢复"并给出解密恢复路线(密钥提取 → 解密脚本 / 社区解密工具)
  • 用:勒索样本的加密算法、密钥管理、C2 交互还原
  • 不用:样本还没确认是勒索(先 [[re-triage]] 初勘 + [[re-behavior]] 行为确认)
  • 不用:只分析加密算法本身(直接走 [[re-crypto-id]] / [[re-crypto-keys]])
  • 注意:运行样本 = 会真实加密文件,必须在沙箱快照内([[re-sandbox]] 强制前置,[[re-analyze/platform-tips]] 最高原则);静态分析可免沙箱

工具准备

所有工具先验证再使用。加密三件套与沙箱的完整装法见各技能,本技能直接复用;本技能独有的是文件系统快照工具(防样本加密破坏分析环境,坑 1)。

加密分析三件套(复用 crypto 域)

  • [[re-crypto-id]]:算法识别(常量表指纹、自定义加密)
  • [[re-crypto-keys]]:密钥提取(硬编码/内存/资源)
  • [[re-crypto-decrypt]]:解密脚本(pycryptodome 装法见该技能)
  • 验证: python3 -c "from Crypto.Cipher import AES; print('ok')"(见 [[re-crypto-decrypt]])

沙箱环境(运行前置)

  • [[re-sandbox]]:VM 快照 + 网络隔离(INetSim / fake DNS);勒索样本动态分析默认 VM 快照级别(加密行为破坏性强)
  • 验证: 快照 VBoxManage snapshot <vm> list 有 clean;网络 ping 8.8.8.8 不通

文件系统快照工具(加密前状态留底)

  • Linux: btrfs 快照 snapper——Debian/Ubuntu apt install snapper / Fedora dnf install snapper / Arch pacman -S snapper;验证: snapper --version。非 btrfs 用 tar/rsync(自带)备份观察目录
  • Windows: 卷影复制 vssadmin(系统自带)——vssadmin list shadows 验证;快照也是解密恢复途径之一(步骤 5)
  • macOS: Time Machine tmutil(自带)——tmutil listbackups 验证
  • 哈希/枚举: sha256sum / find(coreutils 自带)

家族识别与解密工具调研(在线,无需安装)

  • ID Ransomware(id-ransomware.malwarehunterteam.com):上传勒索信/加密文件头识别家族
  • No More Ransom(nomoreransom.org):官方解密器集合(坑 4 时效性)
  • [[re-ti]]:样本哈希查 VT / 社区报告,确认家族与已有分析结论

操作步骤

按顺序执行,每步记录证据(路径 + sha256,见 [[re-triage]])。静态优先([[re-analyze/platform-tips]] 静态优先原则):先在宿主机做 1-2,需要运行时才进沙箱。

  1. 初始判断(扩展名变化 / 加密头特征 / 勒索信)

    sha256sum sample.exe 被加密文件            # 存证([[re-triage]])
    file 被加密文件                            # 文件头是否被改写/替换
    xxd -l 64 被加密文件                       # 头部特征:固定前缀=感染 ID/密钥块,尾部特征同理
    find / -xdev -iname "*README*" -o -iname "*DECRYPT*" -o -iname "*RECOVER*" 2>/dev/null
    find . -type f -mmin -60 -size +1k | head  # 加密时间窗内被改动的文件
    
    • 判定信号:扩展名批量变化(.crypt/.locker/.encrypted)、原文件被删/被覆盖、目录出现勒索信、桌面壁纸被换
    • 先给受害者文件整体哈希/目录清单留底(与快照互为备份)
  2. 加密算法识别(走 crypto 域)

    • 对样本静态分析: [[re-crypto-id]]——常量表指纹(AES S-box / RSA 公钥 DER / CRC 表)、XOR/ROL/ROR 变换、是否混合加密(RSA 包 AES key 最常见)
    • 对密文观察: 头部/尾部固定块(感染 ID、密钥块)、密文长度对齐(AES 块长 16)、熵(>7.0 → 加密/压缩/高随机性候选,需结合文件头与上下文佐证——高熵本身不是加密判定)
    • 判定三选一:对称(AES 整文件)→ 找对称密钥;非对称(RSA 直接加密)→ 几乎不可恢复;混合(RSA 加密 AES key)→ 密钥块随文件保存则看步骤 3
    • 结论(算法假设 + 证据)传给步骤 3/5
  3. 密钥管理还原(本地 / 网络 / C2 分发)

    • 本地: [[re-crypto-keys]] 静态优先(strings/硬编码/资源/导入表)→ 没有再上内存([[re-memdump]] 默认转储 gcore;转储时机 = 加密循环执行中,密钥已派生未销毁)
    • 网络/C2 下发: 沙箱内 [[re-sandbox]](INetSim/fake DNS)+ [[re-netcap]] 抓包,[[re-protocol]] 重建——密钥可能只在运行时由 C2 下发,静态拿不到
    • 混合模型: 样本内含 RSA 公钥、AES key 被加密写进文件头 → 无私钥不可恢复(诚实告知,见 [[re-crypto-keys]] 坑)
    • 每枚候选密钥记录来源证据(偏移/函数名/转储路径),供 [[re-crypto-decrypt]] 使用
  4. 勒索信与 C2 交互(走 [[re-protocol]])

    • 读勒索信: 提取邮箱 / URL(Tor/暗网)/ BTC 地址 / 感染 ID → 记入 IOC([[re-ioc]])
    • C2 交互: [[re-protocol]] 编排——[[re-netcap]] 抓包 → [[re-crypto-id]] 判定密文 → [[re-crypto-keys]] 取密钥 → [[re-crypto-decrypt]] 解密流量 → [[re-proto-rev]] 重建交互(密钥上传/状态上报/感染 ID 注册)
    • 重点关注: 加密前是否先上传数据(双重勒索,坑 2)、密钥是否回传 C2
  5. 恢复思路(密钥提取 → 解密脚本;无密钥 → 社区工具)

    • 有密钥: [[re-crypto-decrypt]] 写批量解密脚本(算法/模式/IV 按 [[re-crypto-id]] 结论重放)→ 先小样本验证出明文 → 全量执行
    • 部分加密/头部加密: 只加密头部几 KB 或部分块 → 截掉头部/重建文件头即可恢复多数文件(先检查密文长度是否 = 原长,是最便宜的路径)
    • 无密钥: ID Ransomware 识别家族 → No More Ransom / 厂商解密器(必须匹配变体,坑 4)→ 失效则诚实报告"当前不可恢复"
    • 快照/备份恢复优先: vssadmin / snapper / Time Machine 回滚(注意样本可能先删卷影,检查是否被删)
    • 产出: 恢复可行性结论 + 解密脚本 + 证据链([[re-ioc]] 报告结构)

跨域联合

  • [[re-crypto-id]] / [[re-crypto-keys]] / [[re-crypto-decrypt]]:步骤 2/3/5 分别引用,构成加密识别→密钥→解密主链
  • [[re-sandbox]] / [[re-behavior]]:动态分析强制前置([[re-analyze/platform-tips]] 最高原则)与加密/外传行为观察
  • [[re-protocol]]:勒索信背后的 C2 交互(netcap / crypto-* / proto-rev),步骤 4
  • [[re-ti]]:样本哈希/家族识别(VT、ID Ransomware)
  • [[re-ioc]]:勒索信邮箱/URL/钱包地址、密钥与密文指纹出 IOC
  • [[re-malware]]:本技能由 re-malware 网关引用(勒索样本分支);行为分析/报告走网关全流程
  • [[re-analyze/platform-tips]] 相关分支:默认沙箱(加密行为破坏性强)、静态优先、平台分支(Linux 用 snapper、Windows 用 vssadmin)

常见坑与陷阱

  • 样本在沙箱内加密所有文件:现象——样本一跑,沙箱里全盘文件被加密,包括样本自身与行为日志,取证产物被毁;原因——未做文件系统快照/蜜罐隔离就运行,或分析完没恢复快照;对策——[[re-sandbox]] 快照 + 蜜罐文件夹(放假文档/假密钥,观察加密目标选择)+ 只读传入样本,分析完立即恢复快照(坑清单见 [[re-sandbox]]);原始样本与密文副本在宿主机独立备份
  • 双重勒索(数据泄露 + 加密):现象——勒索信同时威胁"加密文件 + 公开泄露数据",只盯加密会漏掉外传阶段;原因——双重勒索模式:先窃取数据(C2 上传)再加密,赎金诉求双份;对策——[[re-behavior]] / [[re-netcap]] 优先观察网络外传(泄露影响面大于加密),分两阶段记录行为与 IOC,报告分开陈述
  • RaaS 变体差异:现象——同家族不同样本加密扩展名/算法/密钥方案都不一样,套用家族通用结论出错;原因——RaaS(勒索软件即服务)向攻击者出租可定制变体,每租户可配置;对策——以手头样本实测为准([[re-crypto-id]] 重新确认),记录样本级特征(样本哈希/密钥块指纹)而非家族级结论
  • 解密工具时效性:现象——No More Ransom 解密器报"不是此变体"或解出乱码;原因——解密器只覆盖特定变体/旧版本,新变体算法或密钥方案已变;对策——先用 ID Ransomware + 样本哈希精确匹配变体再选工具;失效就走密钥提取路线(步骤 3/5)或诚实报告不可恢复;工具随 C2 密钥泄漏更新,可定期复查

Signals

GitHub stars
57
Forks
8
Last commit
Sep 2026

ahel review

  • K1binfo
    installs-packages

Automated review, not a security audit. Ruleset v1+k2.

Advanced
Catalog kind
skill
Gateway key
re-ransomware
Source
github.com/dslsdzc/rev-skills