poc_scout 是一个物联网固件漏洞情报工具,以 MCP server 形式供 AI agent 使用。输入固件型号名(可带组件和版本),返回相关 CVE、按危险评分排序、自动下载 PoC 到本地。实现是纯 API + 规则匹配,核心不依赖大模型。
它解决什么
AI agent 解析固件之后,缺一层"查询":这个固件有哪些已知漏洞?PoC 在哪?poc_scout 就是这一层——上游 agent 负责解析固件,它负责查漏洞、下 PoC。
|
|
核心功能
- 多源检索:cve.org 主源 + NVD 兜底 + OSV 组件漏洞,provider 顺序可配、失败自动降级
- 版本精化:组件带版本时(如
openssl 1.0.1f),按受影响版本范围匹配,明确不受影响的剔除、命中的加分 - 危险评分:EPSS 野外利用概率加权 + CVSS 严重等级(NVD → cve.org → OSV 权威序,缺的并发补查)
- PoC 自动下载:GitHub(列文件树→挑代码→下 raw)、exploit-db、社区 PoC 补充;死链如实标注
- 供应链安全:GitHub 下载 pin 死 commit SHA,仓库后续改动不会偷换已存文件;社区 PoC 默认关闭,下载后过静态风险扫描(curl|sh 管道执行、混淆加载等),通过或进白名单才把内容嵌进输出 JSON,否则只记元数据
- 缓存与健壮性:结果缓存按查询 hash 存
cache/,24h 内同输入不重查重下;并发下载、限速预检;Hypothesis fuzz 保证畸形输入不崩,79 个测试
用法
作为 MCP server:
|
|
注册后 agent 直接调 search_cve_by_firmware:
| 参数 | 说明 |
|---|---|
firmware_name |
固件型号名;也支持 CVE 编号 |
component |
组件名(字符串/列表,可带版本),信息增强 |
download_poc |
下载 PoC 到本地 |
community_poc |
额外搜 GitHub 社区 PoC(默认关,安全考量) |
top_n |
返回条数,0 = 全部 |
force_refresh |
强制绕过缓存 |
竞品对比
同类工具定位差异明显:
| 工具 | 定位 | 数据源 | PoC | 部署 |
|---|---|---|---|---|
| poc_scout | 查询层,服务 AI agent | cve.org + NVD + OSV | 自动下载 + 安全校验 | MCP server |
| cve-bin-tool | 扫描二进制识别漏洞 | 6+ 源 | 不下载 | CLI |
| cve-search | 本地 CVE 库搜索 | NVD + RedHat | 不下载 | web/API |
| POC-in-GitHub | PoC 数据索引 | GitHub | 仅索引链接 | 数据仓库 |
| pyExploitDb | CVE↔exploit-db 映射 | exploit-db | 仅编号映射 | Python 库 |
poc_scout 的差异点:少数直接下载 PoC 落盘的工具之一,且下载做了 pin SHA + 风险扫描;接入形态是 MCP server,agent 原生调用;定位查询层,不做固件二进制扫描——那交给上游 agent。
下载链接
仓库:https://github.com/kaf6rim/poc_scout
代码、测试、使用文档都在里面。有什么想法或踩到坑,欢迎提 issue。