Token导航 LogoToken导航TokenDH.com
Pentest Toolbox logo
安全风控stdio官方级别未说明来源级核验

Pentest Toolbox

MCP Server

Electric Blue MCP Server是一个基于Docker的网络安全评估工具包,提供多种渗透测试工具,适用于授权安全测试和漏洞扫描。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
安全漏洞扫描PythonVS Code渗透测试VS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

abhishek0412

提供方

abhishek0412

最后核验

2026/5/17 20:21

运行时

Docker

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

docker run --rm -it \

详细介绍

电蓝MCP服务器(防御重点评估工具包)

该项目提供了一个模型上下文协议(MCP)服务器,在一个隔离的基于Kali的Docker容器中公开了常见的web渗透测试实用程序。它仅用于针对您拥有或明确授权评估的系统进行道德测试。

为什么是“电蓝”?

蓝色让人联想到防御性网络安全(“蓝队”)。Electric Blue MCP服务器重新构建了用于受控、授权侦察和漏洞暴露映射的工具集,并进行了输入净化和能力最小化。

包含的工具

  • 扫描器
  • sqlmap
  • wpscan
  • dirb(当提供像/login.php这样的文件路径时,会自动进行URL规范化)
  • searchsploit(exploitdb)
  • dnsrecon
  • grype(漏洞扫描)
  • syft(SBOM一代)

环境变量

变量目的默认值
PENTEST_TIMEOUT工具可以运行的最长秒数300
PENTEST_MAX_OUTPUT捕获输出的最大字节数60000
PENTEST_DEFAULT_THREADS保留供将来使用4
WPSCAN_API_TOKENWPScan API令牌(可选)(空)

构建与运行

# Build image
docker build -t electric-blue-mcp .

# Run container (no privileged mode; network tools need raw sockets which we set via setcap)
docker run --rm -it \
  -e PENTEST_TIMEOUT=2000 \
  -e PENTEST_MAX_OUTPUT=60000 \
  electric-blue-mcp

服务器会自动启动,并根据MCP的期望通过stdio进行监听。

使用预构建映像(Docker Hub)

如果您不想在本地构建,请拉取已发布的映像(替换 latest 如果可用,则带有版本标签):

docker pull abhishekchoudharry/electric-blue-mcp:latest

然后像以前一样运行它,但要引用远程映像名称:

docker run --rm -it \
  -e PENTEST_TIMEOUT=300 \
  -e PENTEST_MAX_OUTPUT=60000 \
  abhishekchoudharry/electric-blue-mcp:latest

使用注册表映像的好处:

  • 在构建过程中没有本地构建工具链或大型基础映像下载。
  • 一致、可复制的环境(每个人都拉相同的层)。
  • 加快新用户的入职流程。

当您在本地更新并希望发布时:

docker build -t electric-blue-mcp .
docker tag electric-blue-mcp:latest abhishekchoudharry/electric-blue-mcp:0.1.0
docker tag electric-blue-mcp:latest abhishekchoudharry/electric-blue-mcp:latest
docker push abhishekchoudharry/electric-blue-mcp:0.1.0
docker push abhishekchoudharry/electric-blue-mcp:latest

(可选)扫描推送的图像是否存在漏洞:

docker pull abhishekchoudharry/electric-blue-mcp:latest
grype abhishekchoudharry/electric-blue-mcp:latest

要强制更新(绕过本地缓存):

docker pull --quiet --disable-content-trust=false abhishekchoudharry/electric-blue-mcp:latest

如果您需要在MCP配置中固定特定版本(建议用于稳定性),请使用标签: abhishekchoudharry/electric-blue-mcp:0.1.0 而不是 latest.

MCP客户端集成(示例)

配置支持MCP的客户端(例如支持模型上下文协议的AI助手)以启动容器。您可以使用本地构建的映像或已发布的Docker Hub映像。

选项A:本地图像

command: docker
args: ["run","--rm","-e","PENTEST_TIMEOUT=300","-e","PENTEST_MAX_OUTPUT=60000","electric-blue-mcp"]

选项B:Docker Hub镜像(固定或最新)

command: docker
args: ["run","--rm","-e","PENTEST_TIMEOUT=300","-e","PENTEST_MAX_OUTPUT=60000","abhishekchoudharry/electric-blue-mcp:latest"]

为可重复性固定一个特定版本:

args: ["run","--rm","-e","PENTEST_TIMEOUT=300","-e","PENTEST_MAX_OUTPUT=60000","abhishekchoudharry/electric-blue-mcp:0.1.0"]

可用工具功能

使用 tool_info 查看运行时列表。

工具描述关键参数
nmap_scan基本nmap扫描目标、标志、超时秒数
nikto_scanWeb服务器扫描目标,超时秒数
sqlmap_scanSQL注入测试目标(URL)、标志、超时秒数
wpscan_siteWordPress扫描url、api_token、timeout_seconds
dirb_scan目录暴力破解(自动将文件url标准化到目录)url、单词表、超时秒数
search_exploit搜索exploitdb查询,超时秒数
dnsrecon_scanDNS枚举(有限标志)域、标志、超时秒数
grype_scan漏洞扫描(包、操作系统、库)target(image/dir)、timeout_seconds
syft_scanSBOM生成目标(图像/目录)、格式(可选)、超时秒数
tool_info列出工具名称

输入消毒

正则表达式过滤限制了输入;只传递简单的、长度有限的标志。拒绝潜在危险的构造(shell元字符、命令链、重定向)和过长的输入。 dirb_scan 额外规范URL:如果您提供了一个以可能文件结尾的路径(例如。 /login.php)它修剪到父目录并附加一个尾随 /.

大输出被截断为 PENTEST_MAX_OUTPUT 带有尾随标记的字节。

执行模型和能力

Docker镜像创建了一个专用的非root用户 pentest (家: /home/pentest)并在启动MCP服务器之前切换到它(USER pentest).如果包裹的工具受到损害,这种最小特权默认值会减小爆炸半径。

能力(setcap)被狭义地应用于 nmap 二进制文件,因此某些扫描类型(例如SYN扫描)可以在没有完整根的情况下运行:

setcap cap_net_raw,cap_net_admin,cap_net_bind_service+eip /usr/bin/nmap
setcap cap_net_raw,cap_net_bind_service+eip /usr/lib/nmap/nmap

如果你明确通过 --user root 在本地MCP客户端配置中(如一个示例所示),您 覆盖 这种安全默认。移除 --user root 除非您有特定原因(例如,调试功能边缘情况)。大多数操作应该像 pentest 用户。

摘要:

  • 默认容器执行:非root(pentest).
  • 使用率提高:仅当您使用以下命令运行容器时 --user root 手动。
  • 建议:保留非root,临时诊断除外。

漏洞和SBOM扫描

捆绑了两种以供应链为重点的工具:

  • grype_scan:快速枚举映像或目录中的已知漏洞(严重程度可忽略不计;默认情况下在包装器中没有失败,但使用 --fail-on negligible 内部用于一致的退出代码)。
  • syft_scan:以允许的格式生成软件物料清单(SBOM)(table, json, spdx-json).

示例(来自您的MCP客户端):

grype_scan target: electric-blue-mcp:latest
syft_scan target: electric-blue-mcp:latest format: spdx-json

假设和范围(概念证明)

这种实现有意地最小化,并带有几个明确的假设:

面积假设
授权用户具有扫描指定目标的明确合法权限。
性能扫描速度和资源使用尚未优化;正确性和安全性>性能。
图像大小基础Kali图像加工具集产生相对较大的图像;足迹减少不在PoC的范围内。
工具许可仅包括开源工具(nmap、nikto、sqlmap、wpscan、dirb、searchsploit、dnsrecon、grype、syft)。
漏洞上游包可能包含已知的CVE; grype_scan 但不进行自动修补。
安全模型工具以root身份运行(nmap功能除外),输入经过净化;无法保证上游工具中固有的所有特权升级向量。
网络环境容器可以访问出站网络,以访问目标并(在构建过程中)获取依赖关系。
输出处理大输出被截断 PENTEST_MAX_OUTPUT;部分结果可用于侦察环境。
测井/遥测无外部遥测采集;仅使用stdout/stdio MCP通信。
状态持久性容器是短暂的;除非手动挂载,否则在运行时stdout之外不会持久存在扫描工件。

如果这些假设中的任何一个发生了变化(例如,需要性能调优、图像强化或私有工具),则应重新审视架构和Dockerfile。

道德与法律声明

您必须只扫描或测试您拥有或具有书面测试权限的资产。未经授权的访问或探测可能违反法律和政策。维护者和作者对误用不承担任何责任。

故障排除

  • 非常大的扫描可能会截断每分钟的输出 PENTEST_MAX_OUTPUT.
  • 延长扫描可能会超时;调整 PENTEST_TIMEOUT.
  • WPScan API增强功能需要 WPSCAN_API_TOKEN.

发展

更新依赖关系/无缓存重建:

docker build --no-cache -t electric-blue-mcp .

GitHub Copilot MCP集成

GitHub Copilot Chat(支持MCP)可以通过Docker启动此服务器。复制 mcp.json 到您当地的Copilot MCP配置位置,并在需要时进行调整。

典型的用户级配置路径示例(如果目录不存在,则创建该目录):

  • 窗户: %UserProfile%\\AppData\\Roaming\\GitHub Copilot\\mcp.json
  • macOS: ~/Library/Application Support/GitHub Copilot/mcp.json
  • Linux: ~/.config/github-copilot/mcp.json

当前参考配置(镜像 .vscode/mcp.json):

{
  "servers": {
    "electric-blue": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e","PENTEST_TIMEOUT=2000",
        "-e","PENTEST_MAX_OUTPUT=60000",
        "--user","root",
        "electric-blue-mcp"
      ]
    }
  }
}

笔记:

  • -i 确保MCP JSON-RPC在stdio上的交互式STDIN。
  • --user root 匹配本地开发配置;大多数工具的功能都是无特权的,但nmap的功能可能需要根/上下文细节。如果愿意,您可以删除此项并依赖容器的默认非root用户。
  • 调整 PENTEST_TIMEOUT 向下(例如300)以在代理上下文中实现更快的返回约束。

替代方案(拉取远程映像而不是本地构建):

{
  "servers": {
    "electric-blue": {
      "command": "docker",
      "args": [
        "run","--rm","-i",
        "-e","PENTEST_TIMEOUT=300",
        "-e","PENTEST_MAX_OUTPUT=60000",
        "--user","root",
        "abhishekchoudharry/electric-blue-mcp:latest"
      ]
    }
  }
}

如果固定了版本标签,请更换 latest 与(例如) 0.1.0.

保存配置后,重新启动Copilot Chat/VS Code,让它发现新的MCP服务器。然后问Copilot tool_info 在...之下 electric-blue 服务器上下文。

更新图像

如果修改代码,请重新生成:

docker build -t electric-blue-mcp .

FastMCP导入问题

如果在容器内看到以下错误 ModuleNotFoundError: No module named 'fastmcp':

  1. 确认虚拟环境路径: /opt/venv/bin/python -c "import sys; print(sys.executable)"
  2. 确保 requirements.txt 仍然列出固定版本。
  3. 无缓存重建:
   docker build --no-cache -t electric-blue-mcp .
  1. 运行快速验证:
   docker run --rm electric-blue-mcp python -c "import fastmcp, platform; print('fastmcp OK on', platform.python_version())"

如果失败,请检查网络访问是否有依赖性下载,以及基本映像是否仍然支持 python3-venv.

持续集成/Docker发布

GitHub操作工作流(.github/workflows/docker-publish.yml)在每个拉取请求目标上构建映像 main (或 master).它有条件地推动 latest 标记到Docker Hub 当pull请求来自基础存储库(而不是fork)时,以避免泄露机密。

触发条件

  • 事件: pull_request (分支机构: main, master)
  • 筛选的路径:Dockerfile、关键源文件、需求和工作流文件本身
  • 手动触发: workflow_dispatch

标签

目前,工作流只发出一个标签: latest. (您稍后可以使用git refs或常规提交使用版本标记进行扩展。)

必需的秘密

将这些添加到存储库设置中→ 秘密和变量→ 行动:

  • DOCKERHUB_USERNAME –您的Docker Hub帐户名(仓库所有者) abhishekchoudharry/electric-blue-mcp)
  • DOCKERHUB_TOKEN Docker Hub访问令牌(不是您的密码)

安全控制

  • 分叉的PR构建但做 推送(通过条件检查跳过登录和推送步骤 head.repo.full_name).
  • 通过以下方式进行层缓存 actions/cache 减少重建时间。
  • 单个作业使管道保持简单;不需要特权跑步者。

推送前的最小本地测试

(可选)在本地复制构建:

docker build -t electric-blue-mcp .

如果成功,打开或更新PR-CI将镜像构建。

扩展(未来想法)

  • 添加a push 在合并到 main 用于自动释放 latest.
  • 引入语义版本标记(源自git标记)并同时推送两者 vx.y.zlatest.
  • 添加a grype 扫描作业在严重漏洞上失败(取决于策略)。
  • 使用发布软件物料清单工件 syft 并通过上传 actions/upload-artifact.
  • 通过作业步骤输出将图像摘要摘要附加到PR。

故障排除

  • 未找到机密:确保两个机密都已定义(区分大小写)。
  • 身份验证失败:重新生成Docker Hub令牌并更新密钥。
  • 构建缓存会错过每次运行:检查缓存路径 /tmp/.buildx-cache 坚持工作(应该);验证缓存密钥没有意外更改。
  • 未发生推送:确认PR来自基础仓库;叉PR故意跳过推。

许可证

仅供教育使用。使用前验证是否符合法律规定。

目录标签

目录标签

安全漏洞扫描PythonVS Code渗透测试网络安全本地部署Docker工具授权测试

支持客户端

VS Code

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

session

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiosession部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP