mcpField
B
BeVigil OSINT

BeVigil OSINT

本地服务
github.com安全211 周前更新

关于 BeVigil OSINT

BeVigil OSINT 是面向安全研究人员的 MCP 服务,用于查询 BeVigil 已索引 Android 应用中提取的基础设施数据。工具可查找主机、子域名、URL、存储桶和模糊测试字典。

主要功能

  1. 01查询主机和子域名
  2. 02获取应用引用的 URL 与 S3 存储桶
  3. 03反查使用某主机的应用
  4. 04生成端点和参数字典
  5. 05汇总查询并生成应用报告
  6. 06对大量结果分页

适用场景

  1. 01梳理移动应用引用的基础设施
  2. 02查找域名的测试环境子域名
  3. 03识别使用某主机的应用
  4. 04整理用于模糊测试的 API 路径

MCP 相关

通过 BeVigil OSINT API 向 MCP 客户端提供七种只读 OSINT 工具。结果来自已索引的 Android 应用,列表查询支持分页。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"santhosh-005-bevigil": {
"command": "npx",
"args": [
"-y",
"bevigil-mcp-server"
],
"env": {
"BEVIGIL_API_KEY": "<BEVIGIL_API_KEY>"
}
}
}
}
启动命令npx -y bevigil-mcp-server
需要配置的环境变量
BEVIGIL_API_KEY密钥BeVigil OSINT API key. Get one free at https://bevigil.com/osint-api

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmbevigil-mcp-server1.1.0

工具

7

收录的工具列表 · 更新于 4 周前

参数类型必填说明
limitinteger否要返回的最大结果数(默认值为 100,最大值为 500)。
offsetinteger否返回一页结果前要跳过的结果数(默认值为 0)。使用此参数获取第一页之后的结果。
package_idstring是Android 包 ID(例如 "com.whatsapp"、"com.instagram.android")。这是 Android 应用的唯一标识符。

详细介绍

BeVigil MCP Server

npm CI License: MIT M8ven Score bevigil-mcp-server MCP server

通过 AI 助手绘制公司的移动攻击面。

BeVigil 已扫描数百万款 Android 应用,并提取出其中隐藏的基础设施信息——后端主机、预发布子域名、S3 存储桶、API 路径和查询参数,这些信息从未出现在 DNS 或搜索引擎中。此服务通过七个 MCP 工具提供这些数据,让你可以用日常语言提问,而不必拼接 curl 调用。

专为进行侦察的漏洞赏金猎人、渗透测试人员、红队成员和应用安全工程师打造。

已在 Claude Code、Claude Desktop、Codex、Cursor 和 VS Code 中测试。


快速开始(2 分钟)

1. 获取免费 API 密钥

在 bevigil.com/osint-api 注册。免费账户可获得 25 个额度,使用工作邮箱注册则可获得 200 个额度。每次查询消耗 1 个额度。

2. 添加服务

无需克隆,无需构建——npx 会获取并运行它。

Claude Code
claude mcp add bevigil -e BEVIGIL_API_KEY=your_key_here -- npx -y bevigil-mcp-server

使用 claude mcp list 检查是否已注册。

Claude Desktop

编辑 claude_desktop_config.json(Settings → Developer → Edit Config):

{
  "mcpServers": {
    "bevigil": {
      "command": "npx",
      "args": ["-y", "bevigil-mcp-server"],
      "env": { "BEVIGIL_API_KEY": "your_key_here" }
    }
  }
}

重启 Claude Desktop。

Codex
codex mcp add bevigil --env BEVIGIL_API_KEY=your_key_here -- npx -y bevigil-mcp-server

使用 codex mcp list 检查是否已注册。

Cursor

添加到 ~/.cursor/mcp.json(全局)或 .cursor/mcp.json(项目):

{
  "mcpServers": {
    "bevigil": {
      "command": "npx",
      "args": ["-y", "bevigil-mcp-server"],
      "env": { "BEVIGIL_API_KEY": "your_key_here" }
    }
  }
}
VS Code (Copilot)

添加到 VS Code 的 MCP 设置中:

{
  "mcp": {
    "servers": {
      "bevigil": {
        "command": "npx",
        "args": ["-y", "bevigil-mcp-server"],
        "env": { "BEVIGIL_API_KEY": "your_key_here" }
      }
    }
  }
}
3. 提出你的第一个问题

使用 BeVigil 调查 com.whatsapp,并总结它暴露的基础设施。

你应该会得到类似这样的结果——从应用代码中提取出的真实主机名:

# Investigation Report: com.whatsapp
Source: BeVigil OSINT API

## Hosts / Domains (155 found)
• osaka.nyc3.cdn.digitaloceanspaces.com
• s3.getstickerpack.com
• logger.instagram.com
• dev503.prn2.facebook.com
...

就是这样——你现在可以在聊天窗口中进行 OSINT 了。


你可以提出的问题

侦察公司的移动端足迹

哪些 Android 应用会连接到 api.acme.com?然后提取每个应用中的主机。

查找预发布和内部端点

从 BeVigil 获取 acme.com 的子域名,并标记任何看起来像 dev、staging 或 internal 的条目。

搜寻暴露的存储

com.acme.mobile 引用了哪些 S3 存储桶?

构建针对目标的模糊测试词表

获取 com.acme.mobile 的 BeVigil 词表,并将 API 路径保存到 paths.txt。

从单个域名进行关联调查

查找引用 acme.com 的应用,然后调查其中最有意思的三个,并告诉我它们共用了哪些后端。

最后一个场景最能体现 Agent 的价值——它需要调用十几个 API 并进行关联分析,而这些工作原本都得手动完成。


工具

工具输入返回内容
bevigil_get_hosts包 ID在应用代码中发现的主机名
bevigil_get_subdomains域名在已索引应用中发现的子域名
bevigil_get_urls域名应用引用的完整 URL
bevigil_get_s3_buckets包 ID应用中引用的 S3 存储桶
bevigil_get_app_packages主机名反向查询——使用该主机的应用
bevigil_get_wordlist包 ID用于模糊测试的路径、端点和参数
bevigil_investigate_app包 ID一份报告汇总主机、S3、参数和词表
分页

每个返回列表的工具都接受可选的 limit 和 offset(默认值为 100,最大值为 500)。结果被截断时,响应会说明这一点,并给出继续获取结果的确切偏移量:

Hosts for com.whatsapp (155 found)
Source: BeVigil OSINT (package: com.whatsapp)
Showing 1-100 of 155.
For the next page, call this tool again with offset=100.
额度

响应不会缓存。每次工具调用(包括每个额外分页)都算作一次 API 请求和一个额度。bevigil_investigate_app 每次运行会调用四次,因此会消耗四个额度。额度用完时,系统会给出明确提示,而不是静默返回空结果。

尚未编入索引的应用

BeVigil 只会针对已扫描的应用提供结果。如果某个软件包尚未编入索引,工具会告诉你如何处理:

"com.acme.mobile" is not in BeVigil's index, so there is no data to return.

To add it, upload the APK at https://bevigil.com/scanApp. BeVigil scans the app
and indexes the assets it finds, after which this tool will return them.

系统会特意将这种情况与“应用已编入索引,但没有 S3 存储桶”区分开来——只有前一种情况可以采取后续操作。


配置参考

API 密钥

推荐:在 MCP 客户端配置中设置(如快速入门所示),该配置会将密钥作为环境变量传递给服务。若要在 Shell 中使用:

export BEVIGIL_API_KEY=your_api_key_here

软件包根目录中的 .env 文件也可使用。请注意,该文件的解析位置相对于已安装的软件包,而非你的工作目录,因为 MCP 客户端可能会从任意位置启动服务。实际环境变量的优先级始终高于 .env,且 .env 已加入 gitignore——切勿提交该文件。

从源代码运行

用于本地开发或固定到特定提交:

git clone https://github.com/santhosh-005/bevigil-mcp-server.git
cd bevigil-mcp-server
npm install
npm run build

然后将客户端指向构建后的入口点,而不是 npx:

claude mcp add bevigil -e BEVIGIL_API_KEY=your_key_here -- node /absolute/path/to/bevigil-mcp-server/build/index.js

要求: Node.js 20.12+、BeVigil API 密钥,以及兼容 MCP 的客户端。


工作原理

MCP Client  →  BeVigil MCP Server  →  osint.bevigil.com
              · Zod input validation
              · pagination + truncation
              · error normalisation

该服务是一层精简且防护周全的中间层:它会验证输入,将响应控制在合理的上下文预算内,并将 API 表示“没有结果”的各种方式统一转换为一致且可采取行动的提示。

值得了解的设计决策:

  • 七个面向任务的工具,而非原始端点封装——每个工具都对应研究人员实际需要完成的任务。
  • 分页结果带有下一个偏移量提示,便于获取大型结果集,同时避免撑满上下文窗口。
  • 调查工作流中的并发查询。
  • 部分失败处理——某项查询出错不会影响整份报告。
  • 发现结果均标记为观测数据,绝不会直接断言为漏洞。存储桶名称只是线索,而非发现结论。

局限性

  • 仅包含移动应用数据——数据反映的是 Android 应用代码中包含的内容,而非 DNS 枚举或全网扫描。请将其与常用工具配合使用,而非替代常用工具。
  • 仅覆盖索引中的应用——仅包含 BeVigil 已扫描的应用。可通过 bevigil.com/scanApp 提交尚未编入索引的应用。
  • 不支持应用搜索——你需要预先提供软件包 ID 或域名;没有按名称查找应用的端点。
  • 应用元数据有限——反向主机名查询会返回应用名称和版本;除此之外,仅提供与安全相关的资产。
  • 数据时效性——结果反映 BeVigil 对各应用的最近一次扫描,可能不是最新数据。
  • 基于额度——请参阅上文的额度。

安全

  • API 密钥从环境变量(或项目根目录下的 .env)读取——绝不硬编码,也绝不记录到日志中
  • 错误消息绝不会泄露凭据,且有测试对此进行断言
  • 服务只与已知的 BeVigil 端点通信——不会获取任意 URL
  • 路径参数会进行 URL 编码,因此精心构造的包 ID 无法绕过预期端点
  • 所有工具输入均使用 Zod 模式进行验证
  • 请求超时可防止连接挂起
  • 页面大小设有上限(最多 500),以防上下文溢出
  • 预提交钩子和 CI 任务都会检查是否有凭据进入代码仓库
  • 每个工具都标注为只读且非破坏性——此服务公开的任何内容都无法修改数据
  • 不进行遥测、不做分析、不存储查询——请参阅 PRIVACY.md

请负责任地使用。 此工具会查询公开的 OSINT 数据库。如何使用查询结果由你负责——只能测试你获准测试的系统。


开发

npm install
npm test        # typecheck + full suite
npm run lint    # typecheck only
npm run build

测试使用 Node 内置的运行器和模拟的 API 响应——不会发起实时调用,也不会消耗额度。覆盖范围包括 API 客户端(身份验证标头、所有 HTTP 错误路径、超时、格式错误及带信封的响应,以及错误不会泄露密钥的检查)和全部七个工具处理程序,包括调查工作流的部分失败行为。注册契约测试还会断言每个工具都声明了输入模式和全部四项 MCP 行为提示。

若要启用用于阻止提交凭据的预提交钩子:

git config core.hooksPath .githooks

如果提交中包含 .env 文件,或 .env.example 中有非占位符值,钩子就会拒绝提交;如果已安装 gitleaks,还会对暂存的更改运行该工具。

项目结构
├── src/
│   ├── index.ts              # MCP server entry point
│   ├── bevigil-client.ts     # API client (auth, errors, timeouts, envelopes)
│   ├── types.ts              # Shared types, pagination, output helpers
│   └── tools/                # One file per MCP tool
├── tests/
│   ├── bevigil-client.test.ts
│   ├── tools.test.ts
│   └── fixtures/responses.ts
├── .github/workflows/ci.yml  # Typecheck, build, test, secret scan
├── .githooks/pre-commit      # Blocks committing credentials
└── server.json               # MCP Registry metadata

贡献

欢迎提交问题和 PR——错误报告、新的 BeVigil 端点,以及适用于上述未列出的 MCP 宿主的客户端配置都很有帮助。

许可证

MIT——请参阅 LICENSE。隐私政策:PRIVACY.md。

与 CloudSEK 无关联,也未获得其认可。BeVigil 是 CloudSEK 的产品;这是一个独立的开源客户端,用于访问其公开的 OSINT API。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。