关于 Sn1per MCP Server: pentest, recon and attack surface scanning
Sn1per MCP Server 让安全团队通过 AI 助手驱动已有的 Sn1per 安装,用于获授权的测试。它会限制目标范围、记录操作,并默认对结构化发现结果中的机密进行脱敏。
主要功能
- 01启动受范围限制的 Sn1per 扫描
- 02读取发现结果、端口、子域名和技术信息
- 03搜索扫描工作区并查看扫描状态
- 04在本地审计日志中记录扫描和工作区操作
- 05默认对结果中的机密脱敏
适用场景
- 01在配置的范围内进行获授权的侦察
- 02查看 Sn1per 工作区中的发现结果和开放端口
- 03审计扫描、取消、删除和导出请求
MCP 相关
这个本地 stdio MCP 服务提供启动和管理扫描、读取 Sn1per 工作区及发现数据的工具。它操作主机上已有的 Sn1per 安装,本身并不是扫描器。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx sn1per-mcpSNIPER_MCP_SCOPEComma-separated domains, IPs and CIDR ranges you are authorized to test (prefix ! to exclude). Scans outside it are refused.SNIPER_MCP_SCOPE_FILEOptional absolute path to a scope file with one or more entries per line and # comments.SNIPER_MCP_AUTHORIZATION_REF密钥Optional authorization reference, such as a statement-of-work or ticket id, recorded in the audit log.SNIPER_MCP_ALLOW_INTRUSIVESet to true to offer scan modes that run brute force, exploitation or injection testing. Off by default.SNIPER_MCP_ENABLE_DESTRUCTIVESet to true to add the workspace delete and export tools; they ask the human to confirm. Off by default.SNIPER_MCP_REDACTRedaction of secrets in results. On by default; turn off only with a local model when raw values are required.SNIPER_EDITIONOptional override of the auto-detected Sn1per edition.SNIPER_BINOptional absolute path to the sniper CLI. Detected automatically on standard installs.SNIPER_INSTALL_DIROptional Sn1per install directory. Read from the CLI or /usr/share/sniper by default.SNIPER_LOOT_BASEOptional directory that contains the loot workspace tree. Defaults to the install directory's loot folder.SNIPER_SCAN_ENABLEDSet to false for a read-only deployment that never launches scans.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
10收录的工具列表 · 更新于 1 周前
此工具无需参数。
详细介绍
Sn1per MCP 服务
通过 AI 助手使用自托管的 Sn1per:范围受限、操作可审计,仅用于授权测试。
仅用于授权的安全测试。Sn1per MCP 服务仅可用于测试你拥有或已获得明确书面许可的系统,并且必须遵守许可范围。
状态: beta(0.9.x)。工具名称、参数和输出字段遵循 0.x 版本的兼容性承诺。
功能
Sn1per MCP 服务将你已在使用的 AI 助手连接到自己 Linux 主机上的 Sn1per 安装。它与 Sn1per 一起在本地通过 stdio 运行,拒绝针对超出你所配置范围的目标发起扫描请求(查看限制),在本地审计日志中记录它执行的每项扫描、取消、删除和导出请求,并以结构化数据返回 Sn1per 的发现结果、开放端口、子域名和技术信息,默认会对机密内容进行脱敏。它支持 Sn1per Community Edition 9.x 和 SE、Professional、Enterprise 使用的 11.x 引擎;版本矩阵列出了已验证的版本。它基于 Apache-2.0 许可,免费且开源,仅供授权的安全测试使用。
该服务与 Sn1per 一起运行在你的主机上:扫描数据保留在本机,工具结果只会通过你的 MCP 客户端及其使用的模型服务离开主机。请阅读数据处理和隐私,了解哪些数据会离开主机。
Sn1per 负责扫描。Sn1per MCP 服务让你已在使用的 AI 助手能够驱动它。通用工具运行器 MCP 服务会公开单个命令,而 Sn1per MCP 服务则驱动 Sn1per 的编排扫描模式,并返回其结构化结果,同时实施范围限制并记录审计日志。
它不是什么
- 它本身不是扫描器,而是启动并读取主机上已有的 Sn1per 安装。
- 它不包含 Sn1per。请先安装 Sn1per(Sn1per Community Edition,或根据许可证使用 Professional 或 Enterprise 安装程序)。
- 它不适用于共享的多用户主机。请在专用的单用户扫描 VM 或容器中运行。
要求
- Linux 主机,安装有 Sn1per Community Edition 9.x 或 11.x 引擎(Sn1per SE、Sn1per Professional 或 Sn1per Enterprise)。
- Python 3.11 或更高版本。Ubuntu 22.04 和 Kali 2022.x 自带 Python 3.10,需要使用 uv 管理的 Python(安装指南)。
- Root 权限,或适用于 Sn1per CLI 的无密码 sudo 规则。该规则等同于授予指定用户完整的 root 访问权限;添加前请阅读安全模型。
- 支持运行本地 stdio 服务的 MCP 客户端。0.9.0 版本不支持 Web、移动端和远程连接器客户端(仅支持 stdio)。
快速开始
将 <user> 替换为运行 MCP 客户端的用户。环境文件是规范配置,因此 --check 检查的内容与客户端实际运行的配置完全一致。
-
安装 pipx,然后以该用户身份安装服务(切勿使用
sudo运行 pipx):sudo apt install pipx pipx ensurepath # open a new shell, then: pipx install sn1per-mcp==0.9.0 -
创建环境文件
/home/<user>/.config/sn1per-mcp/env,并将权限设为 0600:mkdir -p /home/<user>/.config/sn1per-mcp install -m 0600 /dev/null /home/<user>/.config/sn1per-mcp/env在文件中写入以下行,然后将占位符替换为你获准测试的目标。占位符本身会被拒绝(
scope_invalid),因此在替换之前不会扫描任何内容。SNIPER_MCP_SCOPE=<authorized-targets> -
检查配置。输出中包含 sudo 规则必须指定的 Sn1per CLI 实际路径:
/home/<user>/.local/bin/sn1per-mcp --env-file /home/<user>/.config/sn1per-mcp/env --check -
添加 sudoers 配置文件,并填入该实际路径(标准安装为
/usr/share/sniper/sniper)。如果客户端以 root 身份运行,则跳过此步骤。完整步骤见:docs/install.md。sudo visudo -f /etc/sudoers.d/sn1per-mcp<user> ALL=(root) NOPASSWD: /usr/share/sniper/sniper -
将服务注册到 Claude Code(其他客户端请参阅:docs/clients.md):
claude mcp add sn1per -s user -- /home/<user>/.local/bin/sn1per-mcp --env-file /home/<user>/.config/sn1per-mcp/env -
启动新的客户端会话,并询问:“Run sniper_status”。
客户端设置
这里只列出了通过 0.9.0 客户端测试(2026-10-12)的客户端。配置路径、审批设置和各客户端的备注见 docs/clients.md。
| 客户端 | 状态 | 删除和导出工具(需要 MCP elicitation) |
|---|---|---|
| Claude Code (2.1.284) | 已验证 | 是,在交互式会话中可用;不带 SDK 主机的 claude -p 会取消确认,因此不会删除或导出任何内容 |
| Codex CLI (0.125.0) | 仅在 codex exec 中已验证 | 在 codex exec 中不可用,因为它会拒绝确认;交互式 Codex 界面尚未测试 |
| Web、移动端和远程连接器客户端 | 0.9.0 不支持(仅限 stdio) | 不适用 |
**Claude Code:**使用快速开始(步骤 5)中的单行命令。Codex CLI:config.toml 条目以及 export_workspace 在其中所需的审批设置,见 docs/clients.md。其他可启动本地 stdio 服务的客户端尚未使用 0.9.0 进行测试。
Sn1per 是否位于另一台机器上,或者你的客户端是否运行在 macOS 或 Windows 上?请参阅 docs/remote.md,了解 SSH 配置方法(已通过 Linux OpenSSH 客户端验证;Windows 和 macOS 客户端已有文档说明,尚未验证)、WSL2(已有文档说明,尚未验证)以及 Docker 配置方法(已有文档说明,尚未验证)。
版本
服务器会从主机上的 Sn1per CLI 检测版本和引擎。“已验证”表示已在 2026-10-12 的 0.9.0 验证运行中测试;“预期可用”表示目前没有已知阻碍,但尚未测试。各工具的验证结果、已运行的扫描模式以及验证后所做的修复,均列于 docs/editions.md,其中还包括模式表和各版本说明。
| 版本 | 引擎方言 | 状态 |
|---|---|---|
Sn1per Community Edition 9.2(仓库 master,提交 a5450bc) | 9.x | 已于 2026-10-12 验证,服务器以 root 身份运行 |
| 后续 Sn1per Community Edition 9.x 版本 | 9.x | 预期可用 |
| Sn1per SE 11.0 和 11.1 | 11.x | 已于 2026-10-12 验证(11.0 以 root 身份运行,以及普通用户通过 sudo 运行;11.1 以 root 身份运行) |
| Sn1per Enterprise,11.3 开发版本 | 11.x | 已于 2026-10-12 验证,普通用户通过 sudo 运行 |
| 其他 11.x 版本,包括 11.2 | 11.x | 预期可用 |
| Sn1per Professional 2026 | 11.x | 使用与 SE 和 Enterprise 相同的 11.x 引擎;尚未在 Professional 安装环境中运行 |
| 低于 9.2 的 Sn1per Community Edition | - | 不支持 |
**平台:**仅限 Linux。已在 Kali Rolling(amd64)上验证。Ubuntu 24.04:已验证安装和 MCP 会话(未在 Ubuntu 上运行扫描)。Debian 12 和 13 以及 Parrot:预期可用。Ubuntu 22.04 和 Kali 2022.x:仅在使用 uv 管理的 Python 或单独安装 Python 3.11 或更高版本时预期可用;不接受其系统自带的 Python 3.10。BlackArch:预期可用;需要在 PATH 上配置 sniper 符号链接。arm64:预期可用。不支持将 macOS 和 Windows 用作服务器主机;可通过 SSH 将它们用作客户端主机(docs/remote.md)。
工具
完整参数、示例结果和错误代码见:docs/tools.md。
| 工具 | 功能 | 只读或会更改状态 | 可用性 |
|---|---|---|---|
sniper_status | 报告检测到的版本、可用扫描模式、配置的范围以及扫描可能不可用的原因 | 只读 | 始终可用 |
list_workspaces | 列出主机上的 Sn1per 收集数据工作区 | 只读 | 始终可用 |
scan_status | 报告扫描状态和脱敏后的日志尾部,或说明工作区中是否有任务正在运行 | 只读 | 始终可用 |
get_findings | 读取发现结果,包括严重程度、标题、位置和主机 | 只读 | 始终可用 |
get_ports | 读取开放端口,包括协议、服务和版本 | 只读 | 始终可用 |
get_subdomains | 读取发现的子域名 | 只读 | 始终可用 |
get_technologies | 读取检测到的 Web 技术 | 只读 | 始终可用 |
grep_loot | 在一个工作区中搜索收集数据文件;操作员要求时,也可在所有工作区中搜索指定字符串或扩展正则表达式 | 只读 | 始终可用 |
sniper_scan | 以 root 身份启动对单个目标的 Sn1per 扫描,并返回任务句柄 | 会更改状态:向目标发送流量 | 始终注册;在配置范围之前会拒绝所有目标 |
cancel_scan | 停止由此服务器启动的扫描 | 会更改状态 | 始终可用 |
delete_workspace | 在用户输入工作区名称后,以 root 身份永久删除一个工作区及其扫描数据 | 会更改状态:不可逆 | 仅当设置 SNIPER_MCP_ENABLE_DESTRUCTIVE=1 且客户端支持 MCP elicitation 时可用 |
export_workspace | 在用户输入工作区名称后,将一个工作区打包为 tar.gz 归档文件并写入服务器状态目录 | 会更改状态:写入文件 | 仅当设置 SNIPER_MCP_ENABLE_DESTRUCTIVE=1 且客户端支持 MCP elicitation 时可用 |
配置
所有设置、范围语法和命令行标志:docs/configuration.md。
- 范围(扫描必需):
SNIPER_MCP_SCOPE和/或SNIPER_MCP_SCOPE_FILE列出你获准测试的域名、IPv4 和 IPv6 地址及 CIDR 网段,并支持使用!排除项。未设置范围时,所有扫描请求都会被拒绝。任何一项无效都会导致整个范围无效。 - 侵入式模式: 执行凭据暴力破解、漏洞利用或注入测试的模式默认关闭,除非你将
SNIPER_MCP_ALLOW_INTRUSIVE=1设为启用。默认模式为stealth。 - 破坏性工具: 只有设置
SNIPER_MCP_ENABLE_DESTRUCTIVE=1后,delete_workspace和export_workspace才会启用;这两项操作都会要求人工输入工作区名称。 - 脱敏: 默认会对结果中的机密信息进行脱敏(
SNIPER_MCP_REDACT)。脱敏基于模式匹配,并非数据丢失防护。
安全模型
该服务是一组围绕具备 root 权限的引擎运行的控制措施,并非安全边界。部署前请阅读 docs/security-model.md。简而言之:
- Sn1per CLI 的免密码 sudo 规则等同于授予该用户完整的 root 访问权限。
- 范围会在启动时应用于 Agent 请求的目标。Sn1per 会在扫描期间重新解析名称,可能会联系第三方服务,且某些模式会扫描发现的主机。请在扫描主机上使用出口流量过滤器。
- 这些控制措施无法阻止同时拥有 shell 或文件写入权限的 Agent 以同一用户身份执行操作。请将范围和环境文件保存在
/etc/sn1per-mcp/下,由 root 所有,并禁止 Agent 使用这些工具访问它们。 - 从战利品、日志和搜索结果中读取的所有内容都会作为不可信数据返回,因为扫描系统可以控制这些内容。
负责任地使用
Sn1per MCP Server 可让 AI Agent 启动主动安全扫描。扫描会向目标发送流量,可能具有侵入性,并通过 sudo 以 root 权限运行。
- 仅可扫描你拥有或已获得明确书面授权进行测试的系统,并且只能在该授权的范围和交战规则内进行。未经授权的扫描在许多司法管辖区属于违法行为。
- 你作为操作者,要对 Agent 执行的每项操作负责,包括由 Agent 读取的内容触发的操作(例如网页或扫描输出中的提示词注入)。
- 使用扫描工具前,请配置目标范围(
SNIPER_MCP_SCOPE或SNIPER_MCP_SCOPE_FILE)。对于范围之外的目标,服务会拒绝扫描请求(参见限制)。 - 暴力破解和漏洞利用模式以及破坏性工具默认关闭。只有在交战规则允许凭据暴力破解和漏洞利用时,才启用侵入式模式(
SNIPER_MCP_ALLOW_INTRUSIVE=1)。 - 服务会将其执行的每项扫描、取消、删除和导出请求记录在本地审计日志中。请将该日志与项目证据一并保存。
- Sn1per Community Edition 受其自身 EULA 约束,该协议也禁止未经许可进行扫描。
本软件依据 Apache License 2.0 提供,不附带任何形式的保证。
数据处理与隐私
- MCP 服务本身不会发送遥测数据。它唯一的网络活动是进行 DNS 查询,以检查主机名目标是否在你的范围内。
- 每次扫描启动时,Sn1per 都会执行自己的更新和许可证检查,包括通过此服务启动的扫描。Sn1per Community Edition 会发送主机 machine-id。Sn1per SE、Professional 和 Enterprise 会发送许可证密钥、machine-id 和使用统计信息,并以 root 身份运行更新服务器的响应;Professional 的许可证检查可能会停止所有正在运行的扫描或移除安装。MCP 服务绝不会抑制这些检查。各版本详情:docs/editions.md。
- 扫描会向目标发送流量,并根据模式向第三方服务(OSINT API、网络档案、证书和 DNS 数据集、whois)及带外交互服务器发送流量。
- 工具结果(发现项、主机名、端口和搜索匹配项,其中可能包含已收集的电子邮件地址等个人数据)会返回给你的 MCP 客户端,再由客户端发送到其使用的模型服务。部分客户端会通过客户端供应商自己的后端转发模型流量,且对话记录可能会存储或同步到供应商的云端。请确保你的委托合同和数据保护义务允许这样做,或使用本地托管的模型。
- 服务会将作业记录、作业日志、导出文件和审计日志写入其状态目录,默认路径为
/home/<user>/.local/state/sn1per-mcp(root 用户为/root/.local/state/sn1per-mcp),并仅向所有者授予权限。磁盘上的作业日志和导出文件不会经过脱敏处理。请将状态目录视为委托项目证据。
远程使用、升级、卸载与故障排除
- 在另一台机器(macOS、Windows、另一台 Linux 主机)上运行客户端、WSL2 和 Docker:docs/remote.md。
- 升级、回滚和卸载(包括移除 sudoers 规则):docs/install.md。
- 常见问题和错误代码:docs/troubleshooting.md。
支持与安全
- 问题与帮助:SUPPORT.md。
- 请通过 GitHub Private Vulnerability Reporting 私下报告漏洞,或按照 SECURITY.md 中的说明操作。请勿公开提交漏洞相关的问题。
- 欢迎根据 Developer Certificate of Origin 进行贡献:请参阅 CONTRIBUTING.md。
- 本项目遵循行为准则。
许可证与商标
Apache License 2.0(LICENSE、NOTICE)仅适用于此 MCP 服务,不适用于 Sn1per。Sn1per Community Edition 根据其自身的 EULA 提供源代码。Sn1per Professional 和 Sn1per Enterprise 是 Sn1perSecurity LLC 的商业产品,须单独取得许可。“Sn1per”和 Sn1per 徽标是 Sn1perSecurity LLC 的商标;请参阅 TRADEMARKS.md。
获取通知
每条安装命令都会固定到一个确切版本,因此只有升级后才能获取修复。PyPI 撤回版本不会影响使用 == 固定版本的安装。要及时了解新版本和安全修复:
Sn1per MCP Server 由 Sn1perSecurity LLC 发布。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。