# malware-jail JavaScript 恶意代码沙箱

> 用于半自动分析 JavaScript 恶意代码的 Node.js 沙箱：在 Node 的 vm 模块中运行样本，并模拟 Windows Script Host 与 ActiveX 对象，例如 WScript.Shell、MSXML2.XMLHTTP、ADODB.Stream、Scripting.FileSystemObject 和 WMI，另有可选择浏览器配置的部分浏览器环境。它记录创建的对象和调用的方法，保留每次 eval() 的参数以辅助去混淆，记下请求的 URL 和 WMI 查询，并保存投放器试图写入的文件，便于检查载荷。运行结束时，整个沙箱上下文会导出为 JSON 供复查。

- 类型：工具
- 目标：二进制 · 网站
- 类别：调试与动态分析
- 关联：基础工具
- 来源复核于：2026-10-20
- 收录于：2026-11-02
- 原始资源：<https://github.com/HynekPetrak/malware-jail>
- 一手来源：<https://github.com/HynekPetrak/malware-jail/blob/ec370f1433652fdd346995f1d6f00b26368aa611/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/malware-jail/>
- 记录 JSON：<https://awesomerea.org/resources/malware-jail/record.json>
- 英文版：[English](https://awesomerea.org/resources/malware-jail/index.md)

## 使用条件与局限

- 没有发布版本或标签，README 称 npm 包尚未提供。所审阅的 master 提交日期为 2023-06-16，只修改了 README；最后一次代码改动在 2019-08-08，新增了已分析的恶意样本和若干 ADODB 方法。各处版本号并不一致：package.json 为 0.18.0，README 为 0.19，jailme.js 为 0.20。
- 需要 Node.js 和 npm：package.json 声明需 Node 6 或更高版本，README 称该工具在 Linux 上以 Node.js v6.6.0 开发和测试。npm install 会获取 minimist、iconv-lite、entities 和 sync-request，npm test 运行针对 WScript 模拟的小型 tap 测试，native_test 目录中的脚本则用于在 Windows 的 cscript 下运行以作对照。模拟范围限于作者见到恶意代码使用的 WScript 与 ActiveX 功能，浏览器环境也只实现了一部分，因此样本可能提前中止，或与真实 Windows 上的行为不同；日志和导出内容是供分析人员解读的执行记录，而非判定结论。
- Node 的 vm 模块并非安全边界：README 警告，能识别该沙箱的恶意代码可能尝试逃逸，建议在无特权的 Linux 账户或虚拟化的 Windows 机器中运行。默认情况下不会真正发送 HTTP 请求，而是返回虚拟响应；--down 允许样本联系远程服务器并下载载荷，--h404 与 --t404 则对所有请求返回 HTTP 404，以便列出全部远程 URL。除非用 -t 另设时限，执行 60 秒后即被终止。
- malware 目录收录了真实的恶意样本，README 称多数下载自 malwr.com，并附有对应的日志和导出文件。除脚本和 HTML 页面外，其中还有两个提取出的 Windows 载荷文件，即 malware/20171004 下的一个 .exe 和 malware/20190808 下的一个 .tmp；README 还说明 Angler 相关文件未经解除威胁处理，因此克隆仓库即会获得活体恶意代码。
- 依据 LICENSE 文件与 README，采用 MIT 许可。

## 一手来源

1. <https://github.com/HynekPetrak/malware-jail/blob/ec370f1433652fdd346995f1d6f00b26368aa611/README.md>
2. <https://github.com/HynekPetrak/malware-jail/blob/ec370f1433652fdd346995f1d6f00b26368aa611/jailme.js#L10-L40>
3. <https://github.com/HynekPetrak/malware-jail/blob/ec370f1433652fdd346995f1d6f00b26368aa611/jailme.js#L184-L192>
4. <https://github.com/HynekPetrak/malware-jail/blob/ec370f1433652fdd346995f1d6f00b26368aa611/env/wscript.js>
5. <https://github.com/HynekPetrak/malware-jail/blob/ec370f1433652fdd346995f1d6f00b26368aa611/env/browser.js>
6. <https://github.com/HynekPetrak/malware-jail/blob/ec370f1433652fdd346995f1d6f00b26368aa611/config.json>
7. <https://github.com/HynekPetrak/malware-jail/blob/ec370f1433652fdd346995f1d6f00b26368aa611/package.json>
8. <https://github.com/HynekPetrak/malware-jail/blob/ec370f1433652fdd346995f1d6f00b26368aa611/test/wscript_test.js>
9. <https://github.com/HynekPetrak/malware-jail/blob/ec370f1433652fdd346995f1d6f00b26368aa611/LICENSE>

## 同分区更多条目：原生二进制

- [gxpc XPC 通信嗅探工具](https://awesomerea.org/zh/resources/gxpc/index.md) · 工具
- [Manticore 符号执行工具](https://awesomerea.org/zh/resources/manticore/index.md) · 工具
- [Ghidra Ninja Ghidra 脚本合集](https://awesomerea.org/zh/resources/ghidra-ninja-scripts/index.md) · 工具
- [FindCrypt Ghidra 版密码常量识别脚本](https://awesomerea.org/zh/resources/findcrypt-ghidra/index.md) · 工具
- [Binary Refinery 二进制数据转换工具集](https://awesomerea.org/zh/resources/binary-refinery/index.md) · 工具
- [AngryGhidra Ghidra 符号执行插件](https://awesomerea.org/zh/resources/angryghidra/index.md) · 工具

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
