工具
box.js 恶意 JavaScript 分析工具
用于研究恶意 JavaScript 的 Node.js 工具:在模拟的 Windows JScript 环境中运行样本,模拟 WScript、ActiveX、文件系统、注册表、WMI 和 HTTP 对象,并通过改写源码暴露 eval 调用和条件编译代码。每次分析都会生成结果文件夹,记录请求过的 URL 及其中导致可执行载荷的 URL、执行过的每段代码(JavaScript、cmd.exe 和 PowerShell 命令)、写入的文件及其类型和哈希,以及 IOC 列表;默认情况下,下载请求会收到模拟的 404 错误,以暴露样本的备用站点。支持批量分析、可选预置的浏览器对象桩代码文件、Docker 镜像、REST API,以及导出到 VirusTotal 或 Cuckoo,便于大规模初筛。
- 目标
- 网站
- 类别
- 网站分析工具
- 关联
- 基础工具
- 来源复核于
使用条件与局限
- 审阅时 npm 最新版本为 1.9.29,于 2026-07-02 与所审 master 提交同时发布;该提交使沙箱适配最新的 vm2 包。RELEASE_NOTES.txt 将同一批版本编号为 1.19.x。近期开发由 Kirk Sayre 通过拉取请求进行。可用 npm install box-js --global 安装;package.json 声明需要 Node.js 6 或更高版本,依赖 vm2 >=3.9.19、jsdom 16、acorn 和 escodegen;README 列出 REMnux 与 BlackArch 软件包,以及 Cuckoo、CAPE 和 IntelOwl 集成。
- 输入是分析者自己的样本文件或样本文件夹;仓库不含恶意软件样本,只有模拟器代码、生成的 Windows 进程列表(emulator/processes.json)、源码改写补丁和一个 mocha 测试文件。编码过的 .jse 文件需先用随附的 decoder.c(MrBrownstone 于 2000–2005 年编写的 Script Encoder 解码器,用 C 编译器编译)解码;不支持以 VBScript 作为输入。
- 样本在 vm2 中运行,默认超时 10 秒;--dangerous-vm 会改用 Node 的 vm 模块,README 称该沙箱可被突破。--download 会向样本访问的 URL 发出真实请求,除非网络已隔离,否则不要启用。README 建议在临时 Docker 容器中运行以进一步隔离;integrations/docker/Dockerfile 基于 node:8-alpine,REST API 服务器要求运行用户能够启动 Docker 容器。
- 模拟本身并不完整:遇到尚未支持的 ActiveX 对象或方法时,分析会停止,直到有人实现它们;带有环境或日期检查的样本可能不表现出任何行为。MIT 许可;decoder.c 保留其作者的声明。本次审阅未安装或运行任何内容,也未分析任何样本;所审来源未确立与 REA 的关联。
关于此条目
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · CapacitorSet/box-js · 修订 f4bb994
- package.json GitHub · CapacitorSet/box-js · 修订 f4bb994
- RELEASE_NOTES.txt GitHub · CapacitorSet/box-js · 修订 f4bb994
- integrations/README.md GitHub · CapacitorSet/box-js · 修订 f4bb994
- integrations/docker/Dockerfile GitHub · CapacitorSet/box-js · 修订 f4bb994
- decoder.c GitHub · CapacitorSet/box-js · 修订 f4bb994
- emulator GitHub · CapacitorSet/box-js · 修订 f4bb994
- LICENSE GitHub · CapacitorSet/box-js · 修订 f4bb994
- https://www.npmjs.com/package/box-js/v/1.9.29