大家好,各位学习安全的同学们!🛡️
今天,我准备了一个有点刺激又危险(?)的实践。我们将近距离解剖一个真实的(但为教育目的而安全的)勒索软件样本。
恶意软件分析主要有两种方法。
- 动态分析 (Dynamic Analysis): 在虚拟环境中实际运行并观察其行为(存在风险)
- 静态分析 (Static Analysis): 不运行文件,只查看文件内部信息(相对安全)
今天我们将打下“静态分析”的基础。这就像医生在手术前给病人拍X光片一样,我们在运行勒索软件之前,先检查一下它隐藏了哪些功能,看看它的骨架和“器官”。
准备好了吗?那么,让我们小心翼翼地进入勒索软件的世界吧!🚀

🛑 0步: [非常重要] 安全守则及准备工作
本次实践针对的是为教育目的制作的“勒索软件模拟样本”或已失效的样本。但习惯很重要。
⚠️ 警告: 绝不可以在您自己的主机PC(实际使用的电脑)上进行实践!务必在断网的虚拟机(VMware, VirtualBox等)环境中进行。如果意外双击运行,后果将不堪设想!😱
🛠️ 准备工具(免费分析工具) 请在虚拟机中提前安装以下工具。
- PE-bear: 一个方便可视化查看PE头部的工具
- Pestudio: 恶意软件初步分析的终极工具(一目了然地显示IAT、字符串、哈希等)
- Strings (Sysinternals): 一个从二进制文件中提取文本的命令行工具
1步: 亮出你的身份证! – PE头部(Header)分析 🆔
Windows可执行文件(.exe, .dll等)遵循一种名为PE(Portable Executable)的特定格式。该文件的前部(头部)包含重要的身份信息,例如“我是什么文件,何时创建,应该加载到内存的哪个位置”。
[实践步骤]
- 运行PE-bear并将勒索软件样本文件拖放到其中。
- 查看‘DOS Header’选项卡。
👉 观察点1: 魔术数字 (Magic Number) 最开始是否看到MZ (4D 5A)这两个字符?这是“我是一个Windows可执行文件”的证明。如果文件扩展名是.jpg,但头部以MZ开头呢?那100%是伪装的恶意软件!
👉 观察点2: 编译时间 (Time Date Stamp) 切换到‘File Header’选项卡,会看到Time Date Stamp。这会告诉你文件是何时创建的。
- 提示: 攻击者有时会篡改这个时间(Timestumping),但有时它也是非常重要的线索。如果显示为1990年代,则可能是被篡改的;如果是最近的日期,则可能是新型勒索软件。
2步: 你的工具箱里有什么? – 导入地址表(IAT)分析 🧰
这部分是今天实践的核心!⭐⭐⭐
程序无法独自完成所有事情。要读取文件、加密文件或进行网络通信,它需要借用Windows操作系统提供的函数(API)。
IAT(Import Address Table)是程序向Windows请求“我运行时需要这些工具(函数)!”的“借用申请列表”。仅凭这个列表,我们就能知道勒索软件在密谋什么。
[实践步骤]
- 这次运行Pestudio并加载样本文件。
- 点击左侧菜单中的‘imports’。(Pestudio会用红色标记可疑的API!👍)
👉 观察点: 查找勒索软件的3个必备API
寻找勒索软件必须具备的可疑工具。
- 搜索文件的工具 (File System)
- 它需要找到我PC上珍贵的文档才能加密,对吧?
- FindFirstFile, FindNextFile (文件搜索)
- SetFileAttributes (更改文件属性,隐藏文件等)
- 加密文件的工具 (Cryptography) 🔐
- 这是最决定性的证据。它会导入Windows的加密库。
- CryptAcquireContext (开始加密操作)
- CryptGenKey (生成加密密钥)
- CryptEncrypt (执行实际加密) 👈 如果看到这个,那就没跑了!
- 操作文件的工具 (File I/O)
- 它需要读取原始文件,用加密内容覆盖,或者删除原始文件。
- ReadFile, WriteFile (文件读写)
- MoveFile, DeleteFile (文件移动/删除 – 用于破坏原始文件)
- 方法A (Pestudio): 点击左侧菜单中的’strings’。Pestudio会自动过滤出可疑字符串。
- 方法B (命令行): 在终端(cmd/PowerShell)中输入 `strings -n 8 sample.exe` 命令。(表示只提取至少8个字符的字符串)
- 勒索信(威胁信息)内容 📜
- Your files have been encrypted!
- readme_restore.txt (勒索信文件名)
- bitcoin, wallet 等与金钱要求相关的词语
- 攻击目标扩展名列表
- 勒索软件不会加密任何文件。它会挑选重要的文档。
- 如果看到.doc, .xls, .jpg, .pdf, .zip等扩展名以列表形式出现,那就确定无疑了。
- 可疑路径或IP
- C:UsersHackerDesktopRansomProject… 等PDB信息(开发者路径)可能仍然存在。
- 用于传输密钥的外部服务器IP或域名地址。
- ✅ PE头部: 确认是以MZ开头的Windows可执行文件。
- ✅ IAT: 它正在借用可疑工具来查找文件(FindNextFile)并加密它们(CryptEncrypt)。
- ✅ 字符串: 发现了“Your files encrypted”等勒索信息和目标扩展名列表(.doc, .pdf)。
您的样本中发现了多少个?当这些函数组合在一起时,“查找文件 -> 加密 -> 删除原始文件”的场景就完成了。
3步: 告诉我你的心声! – 字符串(Strings)提取 💬
可执行文件大部分是机器码,但其中也隐藏着许多人类可读的字符串(文本)。黑客留下的消息、C&C服务器IP、攻击目标文件扩展名等有时会以明文形式暴露。
[实践步骤] 有两种方法。
👉 观察点: 寻找决定性线索
这是一场在无数乱码中寻找有意义词语的寻宝游戏。🕵️♀️
🎉 实践结束: X光扫描完成!
辛苦了!👏👏👏
今天,我们没有运行文件,而是通过X光(静态分析工具)科学地证明了该文件极有可能是勒索软件。
今日总结:
有了这些证据,足以立即隔离该文件,对吧?
静态分析是恶意软件分析的基础中的基础。希望大家能以今天所学为基础,未来挑战更深入的分析(逆向工程、动态分析)!
下次我们再带来有益又安全(?)的安全实践。再见!👋
发表回复