KingMike77/Malware-Sandbox
GitHub: KingMike77/Malware-Sandbox
一个基于 Proxmox 和双虚拟机隔离架构的个人恶意软件分析沙箱实验室,用于在完全隔离的环境中安全地触发、观察和记录恶意软件行为。
Stars: 0 | Forks: 0
# 🧪 恶意软件分析沙箱
## 💡 灵感
该项目源于我在休斯顿大学的网络安全硕士项目。2024 年秋季,作为 **CIS 6321:网络安全原理** 课程的一部分,我与一位同学合作,对 WannaCry 勒索软件攻击进行了深入的研究展示,涵盖了它的起源、如何利用未修补的系统、其全球影响以及为安全社区带来的经验教训。你可以[在此](https://www.linkedin.com/in/michael-mensah-/overlay/Project/1105716250/treasury/?profileId=ACoAADeTMNIBszJdIur4aP9-WmVCq1Xn1BYoN0Q)查看原始的展示文稿和视频。
那次展示激发了我的灵感。从学术层面理解 WannaCry 很有价值,但我想更进一步,亲眼看它运行,观察它实时加密文件,捕获其网络行为,并像专业的恶意软件分析师那样将其记录下来。正是关于“当它被触发时实际会发生什么”的好奇心,促使我构建了这个沙箱。
这个项目就是答案。
## 📌 目的
该项目记录了作为我更广泛的家庭网络安全生态系统一部分的专用恶意软件沙箱实验室的设计和构建过程。目标是培养动手实践的恶意软件分析技能——静态分析、动态行为分析、网络流量检查以及 MITRE ATT&CK 映射——以支持我在威胁检测和安全运营方面的职业发展。
真实的恶意软件样本在完全隔离的环境中被触发(运行),使用专业级工具进行观察,并在详细的分析报告中进行记录。
## 🏗️ 实验室架构
### 宿主机
| 组件 | 详情 |
|---|---|
| **硬件** | HP EliteDesk G5 SFF |
| **内存 (RAM)** | 32GB DDR4 |
| **Hypervisor** | Proxmox VE |
| **角色** | 专用恶意软件沙箱宿主机 |
### 网络设计

**安全边界:**
- **FlareVM 零互联网访问** — 仅连接到 vmbr1,没有通往 vmbr0 或真实互联网的路由
- **Remnux 是互联网和隔离网络之间唯一的桥梁**,其两块 NIC 之间保持严格的隔离
- **Remnux 上的 INetSim** 模拟 DNS、HTTP、SMTP 和其他互联网服务,使恶意软件认为自己已联网 — 所有流量都是虚假的并被记录下来
- **FlareVM 上的 Wireshark** 在触发(运行)期间捕获所有网络流量,以全面了解恶意软件行为
- **每次触发前都会创建 Proxmox 快照** — FlareVM 可以立即回滚到干净状态
- **FlareVM 上禁用了 Windows Defender**,以防止干扰恶意软件的执行
- **分析人员通过 Tailscale VPN 远程访问 Proxmox** — 不直接暴露于恶意软件环境中
Proxmox 宿主机上配置了两个网桥:
- **vmbr0** — 具有互联网访问权限的外部网桥(仅限 Remnux,用于下载样本和更新 INetSim)
- **vmbr1** — 没有外部路由的完全隔离内部网桥(`10.10.10.0/24`) — 这是进行恶意软件触发的地方
### 虚拟机
#### 🔬 FlareVM (Windows 10) — 触发(运行)机
| 设置 | 值 |
|---|---|
| **Proxmox 节点** | pve-sandbox (受 Tailscale 保护) |
| **角色** | 恶意软件触发宿主机 |
| **内存 (RAM)** | 8GB |
| **网络** | 仅限 vmbr1 (隔离,无互联网) |
| **目的** | 恶意软件执行和行为分析 |
| **关键工具** | Process Monitor (ProcMon)、Task Manager、Wireshark、PEStudio 以及 50+ 种额外的 FlareVM 工具 |
FlareVM 是通过在干净的 Windows 10 安装上运行 Mandiant 的 PowerShell bootstrap 脚本来安装的,该脚本会通过 Chocolatey 自动安装 50+ 种恶意软件分析工具。**在每次执行样本之前都会创建触发前快照。**
#### 🛡️ Remnux (Linux) — 样本暂存与模拟互联网
| 设置 | 值 |
|---|---|
| **Proxmox 节点** | pve-sandbox (受 Tailscale 保护) |
| **角色** | 分析网关 |
| **内存 (RAM)** | 4GB |
| **网络** | 双 NIC — vmbr1 上的 ens18 (`10.10.10.2`),vmbr0 上的 ens19 (互联网) |
| **目的** | 样本下载、通过 HTTP 服务器进行暂存,以及 INetSim 模拟互联网 |
| **关键工具** | INetSim、Python HTTP 服务器 |
Remnux 充当两个角色:通过其外部 NIC 从互联网下载恶意软件样本,然后通过基于隔离的 vmbr1 网络的 Python HTTP 服务器将其暂存以传输给 FlareVM。INetSim 模拟互联网服务(DNS、HTTP、SMTP),使恶意软件在触发期间认为它具有真实的互联网连接。
## 🔧 设置过程
### 1. Proxmox 安装
- 在 G5 SFF 裸机上安装了 Proxmox VE
- 在 `/etc/network/interfaces` 中配置了两个网桥:
- `vmbr0` — 桥接到物理 NIC 以连接互联网
- `vmbr1` — 仅限内部的网桥 (`10.10.10.1/24`),无 bridge-ports
### 2. Remnux 部署
- 下载 QCOW2 磁盘镜像格式的 Remnux
- 导入 Proxmox:`qm importdisk [ID] remnux.qcow2 local-lvm`
- 添加双 NIC:vmbr1 上的 net0,vmbr0 上的 net1
- 在 ens18 上配置静态 IP:`10.10.10.2/24`
### 3. FlareVM 部署
- 将 Windows 10 ISO 上传到 Proxmox 本地存储
- 创建具有 8GB RAM 的虚拟机,仅在 vmbr1 上配置单个 NIC
- 安装 Windows 10,禁用 Windows Defender 和自动更新
- 运行 FlareVM 安装程序:`IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/mandiant/flare-vm/main/install.ps1')`
- 安装完成后拍摄**触发前快照**
### 4. 样本获取与传输
恶意软件样本来源于 [MalwareBazaar](https://bazaar.abuse.ch/),并且专门在具有受控互联网访问权限的 Remnux 上下载。然后 Remnux 通过本地 HTTP 服务器,基于隔离的 vmbr1 网络将样本提供给 FlareVM — 确保 FlareVM 始终与互联网保持完全的物理隔离。按照标准的恶意软件处理规范,样本以密码保护的形式存储。完整的传输命令和方法记录在每份单独的分析报告中。
## 🦠 分析报告
| # | 样本 | 家族 | 日期 | 报告 |
|---|---|---|---|---|
| 01 | WannaCry 勒索软件 | 勒索软件 / 蠕虫 | 2026-06-20 | [查看报告](./reports/01-WannaCry-Analysis.md) |
## 🛠️ 使用工具
| 类别 | 工具 |
|---|---|
| 静态分析 | PEStudio |
| 动态分析 | Process Monitor (ProcMon)、Task Manager |
| 网络分析 | Wireshark、INetSim |
| 沙箱环境 | FlareVM (Windows 10)、Remnux |
| 样本来源 | MalwareBazaar |
## ⚠️ 免责声明
本仓库中分析的所有恶意软件样本均在完全隔离的环境中处理,绝无可能逃逸到生产网络中。样本来源于合法的威胁情报平台,仅供教育和研究使用。构建此实验室是为了在网络安全威胁检测和分析方面进行职业发展。
*由 [Michael Mensah](https://www.linkedin.com/in/michael-mensah-/) 构建*
标签:AI合规, AMSI绕过, DAST, Proxmox, 云资产清单, 威胁检测, 安全, 恶意软件分析, 沙箱, 虚拟化, 超时处理, 逆向工具, 逆向工程