最重要的MCP服务器
基于Kali Linux的模型上下文协议(MCP)服务器,用于教育网络渗透测试,使用临时Docker容器直接与Claude Code集成。
概述
此服务器允许Claude Code与行业标准安全工具进行交互,以便在本地实验室环境中进行授权的安全测试。与典型的MCP实现不同,此服务器使用 临时容器架构 每次扫描都在一个具有完整功能的隔离的、短暂的Docker容器中运行,然后立即终止。
可用工具
- nmap_scan:支持SYN扫描的服务发现和端口扫描
- 展示:Web服务器配置错误和漏洞扫描
- sqlmap_scan:自动SQL注入检测
- dirb_scan:内容发现(目录暴力破解)
- searchsploit_query:本地漏洞数据库查找
⚠️ 安全与道德
重要:仅在您拥有或有明确书面许可进行测试的系统上使用这些工具。此服务器专为家庭实验室或沙箱环境中的教育目的而设计。
未经授权访问计算机系统是非法的。
建筑
Claude Code Session
↓
MCP Server (runs on host)
↓
For each command:
↓
Fresh Docker Container with Capabilities
↓
Execute Command (nmap, nikto, etc.)
↓
Return Results
↓
Container Auto-Terminates & Removes证券收益
✅ 短暂隔离 -每次扫描都在一个新鲜的容器中运行 ✅ 无持久状态 -容器使用后立即销毁 ✅ 全功能 -NET_RAW、NET_ADMIN用于特权扫描 ✅ 自动清理 -无集装箱残留物 ✅ 最小攻击面 -无状态安全模型
先决条件
- Docker 桌面版 (或Docker引擎)
- 下载:https://www.docker.com/products/docker-desktop - 验证: docker --version
- Python 3.8+
- 验证: python3 --version
- Claude 代码命令行界面
- 安装: curl -fsSL https://claude.ai/install.sh | sh - 验证: claude --version (应显示2.0.5+)
- MCP Python库
- 将在安装步骤中安装
安装指南
步骤1:克隆存储库
git clone https://github.com/MaorOhana/pentest-docker-mcp.git
cd pentest-docker-mcp第二步:构建Docker镜像
此映像包含所有安全工具(Nmap、Nikto、Sqlmap、Dirb、Searchsploit):
docker build -t pentest-mcp-server:latest .
# Verify the image was created
docker images | grep pentest-mcp-server构建时间:约10-15分钟(下载Kali Linux和安全工具)
步骤3:在主机上安装MCP依赖项
MCP服务器在您的主机上运行(不在Docker中),因此我们需要安装它的依赖项:
pip3 install "mcp[cli]>=1.2.0" --user步骤4:配置Claude代码
将pentest服务器添加到您的Claude Code MCP配置中:
# Copy the .mcp.json to your project directory
cp .mcp.json /path/to/your/project/.mcp.json
# Or manually create .mcp.json with:
cat > .mcp.json str:
"""Description of your tool."""
if not target.strip(): return "❌ Error: Target is required."
logger.info(f"Running your-tool on {target}")
return run_command_in_container(["your-tool", target])网络配置
服务器使用 --network=host 默认情况下为完全网络访问。要更改:
编辑 pentest_server.py 并修改 docker_cmd 使用不同的网络:
"--network=bridge", # Isolated network
# or
"--network=your-custom-network", # Custom Docker network安全考虑
是什么让它安全
- 短命容器:每次扫描都在一个立即销毁的新鲜容器中运行
- 无持久状态:扫描之间没有数据持续存在
- 独立执行:每个容器都与主机和其他容器隔离
- 资源限制:CPU(1核)和内存(2GB)限制可防止资源耗尽
- 非root用户:命令以如下方式运行
mcpuser(UID 1000),不是root - 最小功能:仅授予必要的Linux功能(NET_RAW、NET_ADMIN、NET_BIND_SERVICE)
- 审计跟踪:所有工具执行都会记录到带有时间戳的stderr中
与Docker MCP网关的比较
| 功能 | Docker MCP网关 | 我们最重要的服务器 |
|---|---|---|
| 容器生命周期 | 短暂✓ | 短暂✓ |
| 能力支持 | ❌ 受限 | ✓ 完整(NET_RAW等) |
| 用例 | 通用MCP服务器 | 安全测试工具 |
| 安全模型 | 沙盒(最低权限) | 特权但隔离 |
Docker MCP网关根据一般安全性的设计限制了功能。我们的服务器授予功能,因为它们 必需的 用于渗透测试工具,但通过短暂的隔离来维护安全性。
卸载
从克劳德代码中删除
# Edit .mcp.json and remove the pentest-server entry
# Or delete the entire .mcp.json if it only contains pentest-server
rm .mcp.json删除Docker镜像
docker rmi pentest-mcp-server:latest删除存储库
cd ..
rm -rf pentest-docker-mcp卸载MCP库(可选)
pip3 uninstall mcp -y常见问题解答
Q: 为什么不使用Docker MCP网关? A: 网关出于安全考虑限制了Linux的功能。像nmap这样的渗透测试工具需要NET_RAW功能来进行SYN扫描和其他特权操作。
Q: 赋予容器这些功能安全吗? A: 是的,当与临时容器一起使用时。每个容器都是隔离的,作为非根运行,有资源限制,使用后立即销毁。没有持续的攻击面。
Q: 我可以在生产中使用这个吗? A: 这是为 仅限教育和授权的安全测试。切勿在非自有或未经明确许可的系统上使用。
Q: 为什么服务器在主机上运行,而不是在Docker中运行? A: 基于主机的MCP服务器为每个命令生成临时Docker容器。这为我们提供了两全其美的选择:轻量级的服务器管理和隔离的特权执行。
Q: 如何扫描我的Mac本地主机? A: 使用 host.docker.internal 而不是 127.0.0.1macOS上的Docker在VM中运行,因此容器需要这个特殊的主机名才能到达您的Mac。
Q: 我可以同时运行多个扫描吗? A: 是的!每次扫描都有自己的容器,因此它们并行运行而不受干扰。
贡献
欢迎投稿!请确保:
- 新工具遵循临时容器模式
- 维护安全最佳实践
- 工具包括正确的错误处理
- 文档已更新
许可证
仅供教育使用。负责任和合乎道德地使用。
免责声明
此工具仅用于授权的安全测试和教育目的。用户有责任在执行任何安全测试之前确保他们有适当的授权。作者对误用或非法使用本软件不承担任何责任。
资源
- Claude代码文档: https://code.claude.com/docs/en/mcp
- 模型上下文协议: https://modelcontextprotocol.io
- Docker文档: https://docs.docker.com
- Kali Linux工具: https://www.kali.org/tools/
- 开放式Web应用程序安全项目: https://owasp.org
致谢
内置:
