OrbitalFirefly/MalwareSandbox

GitHub: OrbitalFirefly/MalwareSandbox

一个轻量级的本地恶意软件沙箱分析工具,通过VirtualBox自动化运行样本并基于Procmon和PCAP数据进行行为评分。

Stars: 0 | Forks: 0

# 恶意软件沙箱(本地实验环境) 围绕 **VirtualBox** 的小型 Python 辅助工具集,用于在 Windows 虚拟机中运行样本,等待一段时间后拉取日志,然后根据 **Procmon CSV** 和可选的 **PCAP** 数据对行为进行评分。**Flask** 仪表板会列出 `analysis_results/` 下的运行记录。 **请仅在隔离的实验硬件上使用**,并配备专用的分析虚拟机。请勿将其指向生产系统,也不要将仪表板暴露给不受信任的网络。 ## 仓库包含内容 | 文件 | 作用 | |------|------| | `sandbox_controller.py` | 恢复快照,启动虚拟机,将样本复制到客户机,运行样本,休眠 `analysis_timeout` 时长,将 Sysmon EVTX 导出到客户机临时目录并将其复制回主机,停止虚拟机。写入 `analysis_results//metadata.json`。 | | `behavior_analyzer.py` | 读取运行文件夹下的 `procmon.csv` / `capture.pcap`,生成 `behavior_report.json` 和可选的 HTML 报告。 | | `quick_start.py` | 命令行工具:建立目录及默认配置,检查 VBox 及 Python 依赖,验证虚拟机/快照,执行单个/批量分析,启动仪表板。 | | `web_dashboard.py` | 运行在端口 **5000** 的 Flask 网页界面(通过 `quick_start.py --dashboard` 或 `python web_dashboard.py` 运行)。 | | `config.json` | 虚拟机名称、快照、超时时间、客户机凭据(通过 `--setup` 创建或手动编辑)。 | ## 环境要求 - **Python 3**(3.8+ 版本即可) - **Oracle VirtualBox**,并且 `VBoxManage` 已添加到您的 `PATH` 环境变量中 - **Windows** 分析客户机需满足: - 安装了 Guest Additions(用于 `guestcontrol` 复制/运行操作) - 拥有一个与 `config.json` 匹配的**干净快照**(例如 `CleanState`) - 存在 `C:\Temp` 目录(如果您的目录结构不同,请修改 `sandbox_controller.py` 中的路径) - 可选:若需导出 EVTX,需安装 **Sysmon**;要让分析器发挥真正作用,需将 **Procmon** 导出的 `procmon.csv` 放在运行文件夹中 - Python 软件包: ``` pip install flask scapy ``` 可选:如果您后续要在 `behavior_analyzer.py` 中接入真正的 EVTX 解析功能,需安装 `python-evtx`。 ## 快速开始 在项目目录下执行: ``` # 创建 samples/、analysis_results/、reports/ 以及默认的 config.json(如果缺失) python quick_start.py --setup # 检查 VBox + flask/scapy,以及 VM + 快照是否存在 python quick_start.py --verify ``` 编辑 **`config.json`**,使 `vm_name`、`snapshot_name`、`guest_username` 和 `guest_password` 与您的虚拟机相匹配。 运行单个样本(主机路径 → 复制到客户机中并执行): ``` python quick_start.py --sample samples/your_sample.exe ``` 批量运行: ``` python quick_start.py --batch samples/ ``` 网页界面(绑定 `0.0.0.0:5000` —— 请相应地配置防火墙): ``` python quick_start.py --dashboard ``` 或者: ``` python web_dashboard.py ``` ## 配置说明(`config.json`) | 键 | 含义 | |-----|---------| | `vm_name` | VirtualBox 虚拟机名称 | | `snapshot_name` | 每次运行前要恢复的快照 | | `analysis_timeout` | 启动样本后休眠的秒数(收集时间窗口) | | `results_directory` | 运行文件夹的创建位置(默认为 `./analysis_results`) | | `guest_username` / `guest_password` | 用于 `VBoxManage guestcontrol` 的账户信息 | 对于您省略的任何配置项,`sandbox_controller.py` 会将其与内部默认值合并。 ## 运行输出 每次运行都会生成一个类似于 `analysis_results/_/` 的文件夹: - `metadata.json` — 运行 ID、路径、状态、时间戳 - `sysmon.evtx` — 如果导出/复制成功 - 在执行 `quick_start` / 分析器之后:`behavior_report.json`、`behavior_report.html` 仪表板会读取 `metadata.json`,并在存在时读取 `behavior_report.json`。 ## 限制与说明 - 除非您添加了 `python-evtx`(或预先转换了日志),否则分析器中的 **Sysmon EVTX** 解析基本上是个存根。 - **威胁评分**是基于启发式计算的(根据文件/注册表/进程/网络信号计数得出),并非杀毒软件的判定结论。 - 控制器假定使用的是 **Windows** 客户机路径(如用于 Sysmon 的 `C:\Temp\...`、`wevtutil`)。若使用 Linux 客户机则需要修改代码。 - `sandbox_controller.py` 的 `main()` 可以生成新的 `config.json` 以供临时测试使用;对于常规配置,建议使用 **`quick_start.py --setup`**。 ## 许可证 本仓库未包含许可证文件。如果您重新分发此项目,请自行添加许可证。
标签:AMSI绕过, DAST, EVTX解析, Flask框架, HTML报告生成, meg, PCAP解析, Procmon, Python 3, Scapy, Sysmon, VBoxManage, VirtualBox, Web仪表盘, Windows VM, 信息安全, 威胁检测, 快照恢复, 恶意软件分析, 恶意软件沙箱, 本地实验室, 沙箱评分, 生成式AI安全, 系统日志, 网络安全, 网络流量分析, 自动化沙箱, 虚拟机, 逆向工具, 隐私保护