vulhunt-re/vulhunt

GitHub: vulhunt-re/vulhunt

VulHunt 是由 Binarly 开发的二进制与 UEFI 固件漏洞检测框架,通过可扩展的规则引擎帮助研究人员识别软件和固件中的安全漏洞。

Stars: 1 | Forks: 0

# VulHunt 社区版 VulHunt 是由 Binarly 研究团队开发的漏洞搜寻框架。它旨在帮助安全研究人员和从业者识别软件二进制文件和 UEFI 固件中的漏洞。VulHunt 构建于 Binarly 的二进制分析和检查系统 (BIAS) 之上,该系统为分析和理解二进制文件提供了强大而灵活的环境。VulHunt 与 Binarly 透明度平台 (BTP) 的功能集成,可实现大规模的漏洞管理、搜寻和分类功能。 VulHunt 社区版是 BTP 内 VulHunt 引擎的免费开源版本,旨在促进社区开发的规则包和集成。 ## 构建 (使用 cargo-make) ### 前置条件 ``` cargo install cargo-make ``` ### 构建 ``` cargo make --profile build ``` 包含 Binary Ninja 支持: ``` cargo make --profile build --features=bndb ``` ### 安装 ``` cargo make --profile install ``` 包含 Binary Ninja 支持: ``` cargo make --profile install --features=bndb ``` ## 构建 (不使用 cargo-make) ### 前置条件 ``` git submodule update --init ``` 安装带有必要补丁的 LuaJIT: ``` git clone https://github.com/LuaJIT/LuaJIT.git -b v2.1 cd LuaJIT git apply /path/to/vulhunt-ce/patches/luajit-vulhunt.patch ``` 对于 macOS: ``` export MACOSX_DEPLOYMENT_TARGET=$(sw_vers -productVersion) ``` 对于 macOS 和 Linux: ``` make BUILDMODE='static' export LUA_LIB=/path/to/LuaJIT/src/ export LUA_LIB_NAME=luajit export LUA_LINK=static ``` 对于 Windows: ``` cd src msvcbuild.bat BUILDMODE='static' set LUA_LIB=C:\path\to\LuaJIT\src\ set LUA_LIB_NAME=lua51 set LUA_LINK=static ``` ### 构建 ``` cargo build --release ``` 包含 Binary Ninja 支持: ``` cargo build --release --features=bndb ``` ### 打包 前置条件: ``` cargo install cargo-make ``` 为当前平台构建包: ``` cargo make prepare-package --features=... ``` ## 用法 ### 扫描二进制文件 ``` vulhunt-ce scan -o -d -r [OPTIONS] ``` 选项: - ``:要扫描的二进制文件、BA2 归档或 BNDB 文件的路径 - `-o, --output `:写入输出 JSON 的路径 - `-d, --data `:包含辅助数据(处理器规范等)的目录。也可以通过 `BIAS_DATA` 环境变量设置 - `-r, --rules `:包含 VulHunt 规则的目录。也可以通过 `BIAS_VULHUNT_RULES` 环境变量设置 - `-m, --modules `:包含 VulHunt 模块的目录(可选)。也可以通过 `BIAS_VULHUNT_MODULES` 环境变量设置 - `--loader `:配置要使用的加载器(默认:`component`)。可用加载器: - `component`:扫描单个二进制文件 - `ba2`:扫描包含多个组件的 BA2 (Binarly Archive 2) 归档 - `bndb`:扫描 Binary Ninja 数据库(构建时需要 `--features=bndb`) - `--pretty`:格式化输出以便于阅读,并将问题渲染到标准输出 - `--stream`:将输出格式化为 JSONL 消息流 - `--compress`:使用 Zstandard 压缩输出 JSONL 流 示例: ``` vulhunt-ce scan lib.so -o results.json -d /path/to/bias-data -r /path/to/rules --pretty vulhunt-ce scan firmware.ba2 --loader ba2 -o results.json -d /path/to/bias-data -r /path/to/rules --pretty vulhunt-ce scan project.bndb --loader bndb -o results.json -d /path/to/bias-data -r /path/to/rules --pretty ``` ### 启动 MCP 服务器 VulHunt 可以作为 MCP (Model Context Protocol) 服务器运行,以便与 AI 助手集成。默认情况下,它会在 `http://127.0.0.1:8080` 启动一个带有 SSE (Server-Sent Events) 传输的流式 HTTP 服务器: ``` vulhunt-ce mcp -d [OPTIONS] ``` 选项: - `-d, --data `:包含辅助数据的目录(必需)。也可以通过 `BIAS_DATA` 环境变量设置 - `-m, --modules `:包含 VulHunt 模块的目录(可选)。也可以通过 `BIAS_VULHUNT_MODULES` 环境变量设置 - `--stdio`:使用 stdio 传输代替 HTTP - `--host `:要绑定的主机地址(默认:`127.0.0.1`) - `--port `:监听的端口(默认:`8080`) ### BA2 归档工具 列出 BA2 归档中的组件: ``` vulhunt-ce ba2 list-components ``` 从 BA2 归档中提取组件: ``` vulhunt-ce ba2 extract-component -o --component-id ``` 选项: - ``:BA2 归档的路径 - `-o, --output `:提取组件的输出路径 - `--component-id `:要提取的组件的 UUID ### BTP 集成 与 Binarly 透明度平台 (BTP) 交互。所有命令都需要身份验证: 通用选项: - `-u, --username `:BTP 用户名(或 `BTP_USERNAME` 环境变量) - `-p, --password `:BTP 密码(或 `BTP_PASSWORD` 环境变量) - `-s, --instance-slug `:实例 slug,例如 `your-org.prod`(或 `BTP_INSTANCE_SLUG` 环境变量) 可用命令: ``` vulhunt-ce btp push-rules -r [-t ] [--name ] [--platform ] [--modules ] [--deploy-to-product | --deploy-to-org ] vulhunt-ce btp list-products vulhunt-ce btp create-product --name [--description] vulhunt-ce btp upload --product-id --name --version [--scan] vulhunt-ce btp list-images --product-id vulhunt-ce btp list-scans --product-id --image-id vulhunt-ce btp create-scan --product-id --image-id vulhunt-ce btp get-scan --product-id --image-id --scan-id vulhunt-ce btp get-findings --product-id --image-id vulhunt-ce btp download-ba2 --product-id --image-id [--scan-id ] [-o ] ``` ## 许可证 本项目根据 GNU General Public License v3.0 授权 - 详见 [LICENSE](LICENSE) 文件。 版权所有 (c) 2026 Binarly Inc. 和 VulHunt 开发者。
标签:BIAS, Binary Ninja, Fuzzing, LuaJIT, Rust, UEFI 固件, VulHunt, 二进制分析, 云安全监控, 云安全运维, 云资产清单, 可视化界面, 固件安全, 多包管理, 时序数据库, 社区版, 网络流量审计, 逆向工程, 静态分析