mcpField
S
Sn1per MCP Server: pentest, recon and attack surface scanning

Sn1per MCP Server: pentest, recon and attack surface scanning

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

关于 Sn1per MCP Server: pentest, recon and attack surface scanning

Sn1per MCP Server 让安全团队通过 AI 助手驱动已有的 Sn1per 安装,用于获授权的测试。它会限制目标范围、记录操作,并默认对结构化发现结果中的机密进行脱敏。

主要功能

  1. 01启动受范围限制的 Sn1per 扫描
  2. 02读取发现结果、端口、子域名和技术信息
  3. 03搜索扫描工作区并查看扫描状态
  4. 04在本地审计日志中记录扫描和工作区操作
  5. 05默认对结果中的机密脱敏

适用场景

  1. 01在配置的范围内进行获授权的侦察
  2. 02查看 Sn1per 工作区中的发现结果和开放端口
  3. 03审计扫描、取消、删除和导出请求

MCP 相关

这个本地 stdio MCP 服务提供启动和管理扫描、读取 Sn1per 工作区及发现数据的工具。它操作主机上已有的 Sn1per 安装,本身并不是扫描器。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"1n3-sn1per": {
"command": "uvx",
"args": [
"sn1per-mcp"
],
"env": {
"SNIPER_MCP_SCOPE": "<SNIPER_MCP_SCOPE>",
"SNIPER_MCP_SCOPE_FILE": "<SNIPER_MCP_SCOPE_FILE>",
"SNIPER_MCP_AUTHORIZATION_REF": "<SNIPER_MCP_AUTHORIZATION_REF>",
"SNIPER_MCP_ALLOW_INTRUSIVE": "<SNIPER_MCP_ALLOW_INTRUSIVE>",
"SNIPER_MCP_ENABLE_DESTRUCTIVE": "<SNIPER_MCP_ENABLE_DESTRUCTIVE>",
"SNIPER_MCP_REDACT": "<SNIPER_MCP_REDACT>",
"SNIPER_EDITION": "<SNIPER_EDITION>",
"SNIPER_BIN": "<SNIPER_BIN>",
"SNIPER_INSTALL_DIR": "<SNIPER_INSTALL_DIR>",
"SNIPER_LOOT_BASE": "<SNIPER_LOOT_BASE>",
"SNIPER_SCAN_ENABLED": "<SNIPER_SCAN_ENABLED>"
}
}
}
}
启动命令uvx sn1per-mcp
需要配置的环境变量
SNIPER_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+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypisn1per-mcp0.9.0

工具

10

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

此工具无需参数。

详细介绍

Sn1per MCP 服务

通过 AI 助手使用自托管的 Sn1per:范围受限、操作可审计,仅用于授权测试。

PyPI version of sn1per-mcp License: Apache-2.0

仅用于授权的安全测试。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 检查的内容与客户端实际运行的配置完全一致。

  1. 安装 pipx,然后以该用户身份安装服务(切勿使用 sudo 运行 pipx):

    sudo apt install pipx
    pipx ensurepath
    # open a new shell, then:
    pipx install sn1per-mcp==0.9.0
    
  2. 创建环境文件 /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>
    
  3. 检查配置。输出中包含 sudo 规则必须指定的 Sn1per CLI 实际路径:

    /home/<user>/.local/bin/sn1per-mcp --env-file /home/<user>/.config/sn1per-mcp/env --check
    
  4. 添加 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
    
  5. 将服务注册到 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
    
  6. 启动新的客户端会话,并询问:“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.111.x已于 2026-10-12 验证(11.0 以 root 身份运行,以及普通用户通过 sudo 运行;11.1 以 root 身份运行)
Sn1per Enterprise,11.3 开发版本11.x已于 2026-10-12 验证,普通用户通过 sudo 运行
其他 11.x 版本,包括 11.211.x预期可用
Sn1per Professional 202611.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),并仅向所有者授予权限。磁盘上的作业日志和导出文件不会经过脱敏处理。请将状态目录视为委托项目证据。

远程使用、升级、卸载与故障排除

支持与安全

许可证与商标

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 发布。

评论

支持 Markdown

第一次接触 MCP?

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

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