[实践] 深入探究勒索软件!🕵️‍♂️ 通过头部、IAT和字符串提取学习静态分析基础

大家好,各位学习安全的同学们!🛡️

今天,我准备了一个有点刺激又危险(?)的实践。我们将近距离解剖一个真实的(但为教育目的而安全的)勒索软件样本。

恶意软件分析主要有两种方法。

  1. 动态分析 (Dynamic Analysis): 在虚拟环境中实际运行并观察其行为(存在风险)
  2. 静态分析 (Static Analysis): 不运行文件,只查看文件内部信息(相对安全)

今天我们将打下“静态分析”的基础。这就像医生在手术前给病人拍X光片一样,我们在运行勒索软件之前,先检查一下它隐藏了哪些功能,看看它的骨架和“器官”。

准备好了吗?那么,让我们小心翼翼地进入勒索软件的世界吧!🚀


🛑 0步: [非常重要] 安全守则及准备工作

本次实践针对的是为教育目的制作的“勒索软件模拟样本”或已失效的样本。但习惯很重要。

⚠️ 警告: 绝不可以在您自己的主机PC(实际使用的电脑)上进行实践!务必在断网的虚拟机(VMware, VirtualBox等)环境中进行。如果意外双击运行,后果将不堪设想!😱

🛠️ 准备工具(免费分析工具) 请在虚拟机中提前安装以下工具。

  1. PE-bear: 一个方便可视化查看PE头部的工具
  2. Pestudio: 恶意软件初步分析的终极工具(一目了然地显示IAT、字符串、哈希等)
  3. Strings (Sysinternals): 一个从二进制文件中提取文本的命令行工具

1步: 亮出你的身份证! – PE头部(Header)分析 🆔

Windows可执行文件(.exe, .dll等)遵循一种名为PE(Portable Executable)的特定格式。该文件的前部(头部)包含重要的身份信息,例如“我是什么文件,何时创建,应该加载到内存的哪个位置”。

[实践步骤]

  1. 运行PE-bear并将勒索软件样本文件拖放到其中。
  2. 查看‘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请求“我运行时需要这些工具(函数)!”的“借用申请列表”。仅凭这个列表,我们就能知道勒索软件在密谋什么。

[实践步骤]

  1. 这次运行Pestudio并加载样本文件。
  2. 点击左侧菜单中的‘imports’。(Pestudio会用红色标记可疑的API!👍)

👉 观察点: 查找勒索软件的3个必备API

寻找勒索软件必须具备的可疑工具。

  1. 搜索文件的工具 (File System)
    • 它需要找到我PC上珍贵的文档才能加密,对吧?
    • FindFirstFile, FindNextFile (文件搜索)
    • SetFileAttributes (更改文件属性,隐藏文件等)
    1. 加密文件的工具 (Cryptography) 🔐
      • 这是最决定性的证据。它会导入Windows的加密库。
      • CryptAcquireContext (开始加密操作)
      • CryptGenKey (生成加密密钥)
      • CryptEncrypt (执行实际加密) 👈 如果看到这个,那就没跑了!
      1. 操作文件的工具 (File I/O)
        • 它需要读取原始文件,用加密内容覆盖,或者删除原始文件。
        • ReadFile, WriteFile (文件读写)
        • MoveFile, DeleteFile (文件移动/删除 – 用于破坏原始文件)

        您的样本中发现了多少个?当这些函数组合在一起时,“查找文件 -> 加密 -> 删除原始文件”的场景就完成了。


        3步: 告诉我你的心声! – 字符串(Strings)提取 💬

        可执行文件大部分是机器码,但其中也隐藏着许多人类可读的字符串(文本)。黑客留下的消息、C&C服务器IP、攻击目标文件扩展名等有时会以明文形式暴露。

        [实践步骤] 有两种方法。

        • 方法A (Pestudio): 点击左侧菜单中的’strings’。Pestudio会自动过滤出可疑字符串。
        • 方法B (命令行): 在终端(cmd/PowerShell)中输入 `strings -n 8 sample.exe` 命令。(表示只提取至少8个字符的字符串)

        👉 观察点: 寻找决定性线索

        这是一场在无数乱码中寻找有意义词语的寻宝游戏。🕵️‍♀️

        1. 勒索信(威胁信息)内容 📜
          • Your files have been encrypted!
          • readme_restore.txt (勒索信文件名)
          • bitcoin, wallet 等与金钱要求相关的词语
          1. 攻击目标扩展名列表
            • 勒索软件不会加密任何文件。它会挑选重要的文档。
            • 如果看到.doc, .xls, .jpg, .pdf, .zip等扩展名以列表形式出现,那就确定无疑了。
            1. 可疑路径或IP
              • C:UsersHackerDesktopRansomProject… 等PDB信息(开发者路径)可能仍然存在。
              • 用于传输密钥的外部服务器IP或域名地址。

              🎉 实践结束: X光扫描完成!

              辛苦了!👏👏👏

              今天,我们没有运行文件,而是通过X光(静态分析工具)科学地证明了该文件极有可能是勒索软件。

              今日总结:

              • ✅ PE头部: 确认是以MZ开头的Windows可执行文件。
              • ✅ IAT: 它正在借用可疑工具来查找文件(FindNextFile)并加密它们(CryptEncrypt)。
              • ✅ 字符串: 发现了“Your files encrypted”等勒索信息和目标扩展名列表(.doc, .pdf)。

              有了这些证据,足以立即隔离该文件,对吧?

              静态分析是恶意软件分析的基础中的基础。希望大家能以今天所学为基础,未来挑战更深入的分析(逆向工程、动态分析)!

              下次我们再带来有益又安全(?)的安全实践。再见!👋



Comments

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注