liranzoz/Malware-Analysis-Lab

GitHub: liranzoz/Malware-Analysis-Lab

在隔离虚拟机环境中对 2017 年 NotPetya wiper 恶意软件进行系统性静态与动态分析的实验项目。

Stars: 0 | Forks: 0

# 🧪 NotPetya 恶意软件分析实验室 ### 在完全隔离的 VM 环境中对 2017 年 NotPetya wiper 进行静态与动态分析 [![样本](https://img.shields.io/badge/Sample-NotPetya-critical?style=for-the-badge&logo=skull)](#) [![平台](https://img.shields.io/badge/Platform-VMware-blue?style=for-the-badge&logo=vmware)](#) [![沙箱](https://img.shields.io/badge/Sandbox-REMnux-orange?style=for-the-badge&logo=linux)](#) [![受害者](https://img.shields.io/badge/Victim-Windows%2010-lightgrey?style=for-the-badge&logo=windows)](#)
## 🔍 样本 NotPetya(2017 年 6 月)造成了约 **100 亿美元**的全球损失。它最初通过乌克兰会计软件 **M.E.Doc** 的后门更新植入,随后使用 **EternalBlue / EternalRomance**(泄露的 NSA SMB 漏洞利用程序)和 **Mimikatz** 风格的凭证窃取进行横向传播。它看起来像勒索软件,但实际上是一个 **wiper** —— 文件永远无法解密,“赎金”只是一个烟幕弹。 | 属性 | 值 | |:---|:---| | **文件** | `nopetya.dll` — 32 位 DLL,控制台子系统 | | **SHA-256** | `027CC450EF5F8C5F653329641EC1FED91F694E0D229928963B30F6B0D7D3A745` | | **语言** | C / C++ | | **编译器** | Microsoft Visual C++ — Visual Studio 2010 (Rich header) | | **Packer** | 通用 — `.rsrc` 区段已压缩(DIE 启发式扫描,非 UPX) | | **大小 / 区段** | ~362 KB · 6 个区段,均具有有效的熵 | | **执行方式** | `rundll32.exe nopetya.dll,#1`(按序号导出的入口) | | **签名** | 无效 — 被 PEStudio 标记 | ## 🏗️ 实验室架构 ``` ┌───────────────────────────────┐ ┌───────────────────────────────┐ │ Windows 10 Victim VM │ │ REMnux (Analysis VM) │ │ ────────────────────────── │ │ ────────────────────────── │ │ • PEStudio, Process Explorer │ ◄─────► │ • INetSim (fake internet) │ │ • Procmon, Regshot │ host- │ • Wireshark capture │ │ • Detonation target │ only │ • DNS / HTTP / SMTP sim │ └───────────────────────────────┘ └───────────────────────────────┘ ▲ ▲ └────────── isolated from host ──────────────┘ ``` ## 🛠️ 实验室设置 ### REMnux — 分析机 逆向工程师事实上的 Linux 发行版。在这里它充当 **模拟互联网** —— INetSim 会响应受害者发出的每一个 DNS、HTTP、HTTPS、SMTP、FTP 和 POP3 请求,从而让恶意软件*认为*自己已联网,而无需真正接触真实网络。
| 硬件 | 选项 | |:---:|:---:| | | | **INetSim 运行中 —— DNS、HTTP、SMTP、POP3、FTP、HTTPS 均已模拟**
### Windows 10 — 受害者机 引爆目标。监控工具在拍摄干净快照*之前*就已安装,因此可以触发、观察恶意软件,并在几秒钟内将 VM 恢复到干净状态。
| 硬件 | 选项 | |:---:|:---:| | | |
## 🧬 静态分析 —— *导入表揭示了真相* 静态分析意味着**在不执行**二进制文件的情况下对其进行检查。PEStudio 在运行任何一行代码之前就暴露了 **38 个指标**。仅凭导入表就揭示了其全部伎俩: | 库 | 著名的 API | 揭示的信息 | |:---|:---|:---| | **DHCPSAPI** | `DhcpEnumSubnetClients`, `DhcpEnumSubnets` | 获取 DHCP 客户端列表 → 找到局域网上的每台主机 | | **NETAPI32 / MPR** | `NetServerEnum`, `WNetAddConnection2W` | 枚举机器,挂载管理共享 | | **WS2_32** | `socket`, `connect`, `send`, `recv` | 用于网络传播的原始套接字 | | **ADVAPI32** | `AdjustTokenPrivileges`, `CreateProcessAsUserW` | 提权 | | **CRYPT32** | `CryptEncrypt`, `CryptGenKey` | “勒索软件”负载 | **结论:** 一个携带加密负载的网络蠕虫 —— 而不是简单的文件加密器。


## 💥 动态分析 —— *引爆* ### 🧷 `perfc` 标记 在几秒钟内,恶意软件会在 `C:\Windows\perfc` 处释放一个零字节文件 —— 它**自带的 kill-switch**。社区将其武器化作为一种免费的疫苗:预先放置一个只读的 `perfc` 文件,NotPetya 在启动时就会退出。
### ⏲️ 计划重启 感染后约 10-60 分钟,系统会排队执行一个 `shutdown.exe /r /f` 任务。重启会在静默加密 MFT 时触发**伪造的 CHKDSK** 界面。用户以为 Windows 正在修复磁盘;实际上磁盘正在被破坏。
### 🌐 网络行为 —— *被抓现行的横向移动* NotPetya 不会盲目猜测目标 —— 它会**建立攻击清单**。它查询本地 **DHCP 服务器**(`DhcpEnumSubnets` / `DhcpEnumSubnetClients`)以获取网络分配的每一个 IP,然后通过泛滥的 **ARP 请求**来确认哪些主机存活。Wireshark 在执行后的几秒钟内就捕获到了 ARP 风暴,随后是针对任何响应者的 SMB 流量 —— 典型的 **EternalBlue / EternalRomance** 横向移动模式。为了对这些主机进行身份验证,它使用内置的 **Mimikatz** 风格模块从 `lsass.exe` 中转储凭证,然后利用 **PsExec**(作为 `dllhost.dat` 释放)和 WMIC 重用窃取的 token 进行远程执行。INetSim 吸收了所有出站数据包,因此没有任何数据离开实验室。
### 🟦 终局状态 Windows BSOD。停止代码 `0xc0000350`。磁盘已无法恢复。
## 🎯 妥协指标 #### 🧮 哈希值 | 哈希 | 值 | |:---|:---| | **SHA-256**(分析的样本) | `027CC450EF5F8C5F653329641EC1FED91F694E0D229928963B30F6B0D7D3A745` | | **SHA-1** | `34F917AAB5AB3DD83C81E11AFE9F4D5DCE1B47E1` | | **MD5** | `71B6A493388E7D0B40C83CE903BC6B04` | #### 📁 主机痕迹 | 痕迹 | 用途 | |:---|:---| | `C:\Windows\perfc` (0 字节) | 自身 kill-switch 标记 —— 疫苗载体 | | `C:\Windows\perfc.dat` | 释放到磁盘上的 DLL 负载 | | `C:\Windows\dllhost.dat` | 重命名的 **PsExec** 二进制文件,用于横向移动 | | `C:\Windows\.tmp` | 释放的 **Mimikatz** 风格凭证转储器 | #### ⚙️ 进程与命令行 - `rundll32.exe C:\Windows\perfc.dat,#1` — 主要执行向量 - `schtasks /Create /SC once /TN "" /TR "C:\Windows\system32\shutdown.exe /r /f" /ST ` — 强制重启 - `wevtutil cl Setup & wevtutil cl System & wevtutil cl Security & wevtutil cl Application` — 擦除 Windows 事件日志 - `fsutil usn deletejournal /D C:` — 删除 NTFS USN 日志以阻碍取证 #### 🌐 网络 - **TCP/445 (SMB)** — EternalBlue (`CVE-2017-0144`) 和 EternalRomance (`CVE-2017-0145`) 漏洞利用 - **TCP/139 (NetBIOS)** — 辅助 SMB 传输 - **TCP/135 (RPC)** — 基于 WMI 的远程执行 - **ARP 广播** — 本地 /24 主机发现(在 Wireshark 中观察到) - **DHCP 枚举** — 获取相邻子网客户端列表 #### 💰 勒索痕迹(伪装) - **比特币钱包:** `1Mz7153HMuxXTuR2R1t78mGSdzaAtNbBWX` - **联系邮箱:** `wowsmith123456@posteo.net` *(在爆发后数小时内被关闭)* - **勒索要求:** 300 美元 BTC —— 支付毫无意义;加密密钥永远无法恢复 #### 💥 引爆证据 | 信号 | 值 | |:---|:---| | **BSOD 停止代码** | `0xc0000350` | | **重启后行为 (UEFI)** | 无限重启循环 —— 未找到有效的 OS | | **观察到的计划任务** | `\Microsoft\Windows\...\shutdown.exe /r /f` | ## 🧭 映射的 TTP (MITRE ATT&CK) `T1059` 命令与脚本 · `T1134` token 操作 · `T1018` 远程系统发现 · `T1210` 远程服务漏洞利用 · `T1021.002` SMB / 管理共享 · `T1003` OS 凭证转储 · `T1070.001` 清除 Windows 事件日志 · `T1486` 为造成影响而加密数据 · `T1485` 数据销毁 · `T1529` 系统关闭 / 重启 · `T1561.002` 磁盘结构擦除 ## 🧰 技能与工具
![VMware](https://img.shields.io/badge/VMware-607078?style=flat&logo=vmware&logoColor=white) ![REMnux](https://img.shields.io/badge/REMnux-FF6B00?style=flat&logo=linux&logoColor=white) ![Windows 10](https://img.shields.io/badge/Windows%2010-0078D6?style=flat&logo=windows&logoColor=white) ![PEStudio](https://img.shields.io/badge/PEStudio-1E1E1E?style=flat) ![DIE](https://img.shields.io/badge/Detect%20It%20Easy-2E7D32?style=flat) ![Ghidra](https://img.shields.io/badge/Ghidra-A41E22?style=flat) ![Wireshark](https://img.shields.io/badge/Wireshark-1679A7?style=flat&logo=wireshark&logoColor=white) ![Procmon](https://img.shields.io/badge/Procmon-005A9E?style=flat) ![INetSim](https://img.shields.io/badge/INetSim-0F4C81?style=flat) ![MITRE ATT&CK](https://img.shields.io/badge/MITRE%20ATT%26CK-CC0000?style=flat)
**实验室工程** · **PE 静态分析** · **反汇编 / 逆向 (Ghidra)** · **Packer 与编译器识别 (DIE)** · **行为 / 动态分析** · **网络取证** · **IOC 提取与 ATT&CK 映射** · **威胁情报报告**
**Liran Zozulya** · [LinkedIn](LINKEDIN_URL_HERE) · [GitHub](GITHUB_URL_HERE)
标签:DAST, Web报告查看器, XXE攻击, 云资产清单, 威胁情报, 开发者工具, 恶意软件分析, 虚拟化环境, 逆向工程