Kali Linux安全工具服务器

一个提供通过特权Docker容器访问Kali Linux安全工具的MCP服务器,允许AI助手使用行业标准渗透测试工具进行安全测试和侦察。

  • by Eutectico
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 Eutectico/mcp-kali-server

使用说明

MCP Kali服务器

一个模型上下文协议(MCP)服务器,通过特权Docker容器提供对Kali Linux安全工具的访问。这使得AI助手能够使用行业标准的渗透测试工具进行安全测试和侦察。

特性

  • 特权Docker容器:运行具有完整网络功能的Kali Linux
  • 预装的安全工具:包括nmap、Metasploit、Nikto、SQLMap、Hydra等
  • MCP集成:与Claude Desktop和其他MCP客户端无缝集成
  • 安全隔离:所有工具都在容器化环境中运行
  • 易于管理:容器生命周期管理的简单脚本

建筑

┌─────────────────────────────────────────────────────┐
│                   HOST SYSTEM                       │
│                                                     │
│  ┌─────────────────────────────────────────────┐   │
│  │   MCP Server (Node.js)                      │   │
│  │   - Runs on host                            │   │
│  │   - Accesses Docker socket                  │   │
│  │   - Manages Kali container                  │   │
│  │   - Implements MCP protocol                 │   │
│  └──────────────┬──────────────────────────────┘   │
│                 │ Docker API                        │
│  ┌──────────────▼──────────────────────────────┐   │
│  │          Docker Engine                      │   │
│  │  ┌─────────────────────────────────────┐    │   │
│  │  │   Kali Container (Isolated)         │    │   │
│  │  │   - Security tools                  │    │   │
│  │  │   - NO Docker socket access         │    │   │
│  │  │   - Privileged for network tools    │    │   │
│  │  │   - Host networking mode            │    │   │
│  │  └─────────────────────────────────────┘    │   │
│  └─────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────┘

要点:

  • MCP服务器运行 在主机上,不在Docker中
  • 只有主机MCP服务器具有Docker套接字访问权限
  • 卡利集装箱是 孤立的 无法管理其他容器
  • 命令流:Claude→ MCP服务器→ Docker API→ 卡利集装箱→ 安全工具

包括安全工具

  • 网络扫描:nmap,马萨坎
  • 网络扫描:nikto、sqlmap、dirb、gobuster、wpscan
  • 剥削:元绘图框架
  • 密码破解:约翰、九头蛇、大麻
  • 无线:可空运
  • 法医学:人行道,最重要的
  • 逆向工程:雷达2
  • 还有更多。..

先决条件

  • Docker和Docker Compose(v1或v2)
    • docker-compose (v1)或 docker compose (v2)-两者都支持
  • Node.js(v18或更高版本)
  • Linux主机(为了获得最佳兼容性)
  • Root/sudo访问权限(用于特权容器)

安装

  1. 克隆或创建此存储库:
cd /workspace/mcp-kali-server
  1. 构建Docker镜像并安装依赖项:
./scripts/build.sh

这将:

  • 构建Kali Linux Docker镜像
  • 安装Node.js依赖项
  • 编译TypeScript代码

用法

单独模式

直接启动MCP服务器:

npm start

使用Claude CLI

使用CLI添加MCP服务器:

# Add for current project only
claude mcp add --transport stdio kali -- node /workspace/mcp-kali-server/dist/index.js

# Or add for all projects (user-level)
claude mcp add --scope user --transport stdio kali -- node /workspace/mcp-kali-server/dist/index.js

验证是否已添加:

claude mcp list

使用克劳德代码: 服务器提供您可以直接调用的工具。通过以下方式检查状态:

/mcp

或者,您可以使用随附的 .mcp.json 用于项目级配置的文件(当位于此目录中时,Claude CLI会自动识别)。

使用克劳德桌面

添加到您的Claude Desktop配置(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS或 %APPDATA%/Claude/claude_desktop_config.json 在Windows上):

{
  "mcpServers": {
    "kali": {
      "command": "node",
      "args": ["/workspace/mcp-kali-server/dist/index.js"]
    }
  }
}

重新启动Claude Desktop,Kali工具将可用。

可用工具

1.nmap_scan

使用Nmap执行网络扫描。

参数:

  • target (必需):IP地址、主机名或CIDR范围
  • scan_type:快速、完整、ping、隐身、服务或操作系统
  • additional_args:额外的nmap参数

例子:

Use nmap_scan to scan 192.168.1.1 with a quick scan

2.Nikto扫描

Web服务器漏洞扫描。

参数:

  • target (必填):目标URL
  • port:目标端口
  • tuning:调整选项

例子:

Use nikto_scan to scan http://example.com

3.sqlmap_scan

SQL注入测试。

参数:

  • url (必填):目标URL
  • data:POST数据
  • level:测试级别(1-5)
  • risk:风险等级(1-3)
  • batch:自动应答提示(默认值:true)

例子:

Use sqlmap_scan to test http://example.com/page?id=1

4.dirb_scan

目录和文件暴力破解。

参数:

  • url (必填):目标URL
  • wordlist:单词表路径

例子:

Use dirb_scan to scan http://example.com

5.gobuster_scan

快速目录/文件/DNS暴力破解。

参数:

  • url (必填):目标URL或域
  • mode:dir、dns或vhost
  • wordlist:单词表路径
  • extensions:要搜索的文件扩展名

例子:

Use gobuster_scan in dir mode on http://example.com with php,html extensions

6.水力

密码暴力破解。

参数:

  • target (必填):目标IP或主机名
  • service (必填):服务(ssh、ftp、http post表单等)
  • username (必填):用户名
  • password_list (必填):密码列表的路径
  • additional_args:额外的九头蛇论点

例子:

Use hydra_bruteforce to test SSH on 192.168.1.1 with username admin

7.谁来帮忙

域WHOIS信息。

参数:

  • domain (必填):域名或IP

例子:

Use whois_lookup for example.com

8.dns_enum

DNS枚举。

参数:

  • domain (必填):要查询的域
  • record_type:A、AAAA、MX、NS、TXT、SOA或任何

例子:

Use dns_enum to get all records for example.com

9.自定义命令

执行Kali容器中的任何命令。

参数:

  • command (必填):执行命令
  • timeout:超时时间(毫秒)

例子:

Use custom_command to run "ping -c 4 8.8.8.8"

10.集装箱状态

检查Kali容器是否正在运行。

例子:

Use container_status to check the container

容器管理

启动容器:

./scripts/start-container.sh

停止容器:

./scripts/stop-container.sh

在容器中获取一个shell:

./scripts/shell.sh

查看容器日志:

docker-compose logs -f

项目结构

mcp-kali-server/
├── src/
│   ├── index.ts              # Main MCP server
│   └── docker-manager.ts     # Docker container management
├── scripts/
│   ├── build.sh             # Build everything
│   ├── start-container.sh   # Start container
│   ├── stop-container.sh    # Stop container
│   └── shell.sh             # Shell access
├── workspace/               # Shared workspace (created on first run)
├── Dockerfile              # Kali Linux image
├── docker-compose.yml      # Container configuration
├── package.json
├── tsconfig.json
└── README.md

工作区目录

这 workspace/ 目录被挂载到容器中 /workspace。使用此功能:

  • 存储扫描结果
  • 在主机和容器之间共享文件
  • 保存单词表和脚本

重要安全注意事项

⚠️ 警告:此服务器提供对强大渗透测试工具的访问。

  • 仅在授权目标上使用:未经授权的扫描是非法的
  • 容器运行特权:具有广泛的系统访问权限
  • 网络接入:容器使用主机网络模式
  • 责任的使用:遵循负责任的披露做法
  • 法律合规:测试前确保您有权限

授权使用案例

  • 受控环境中的安全研究
  • CTF(夺旗)比赛
  • 授权渗透测试业务
  • 自有系统的教育目的
  • 防御性安全和测试您自己的基础设施

故障排除

容器无法启动

# Check Docker daemon
sudo systemctl status docker

# Check for port conflicts
docker ps -a

# Remove old container
docker rm -f mcp-kali

权限错误

# Ensure Docker socket has correct permissions
sudo chmod 666 /var/run/docker.sock

# Or run with sudo (not recommended for production)
sudo npm start

映像构建失败

# Clean Docker cache
docker system prune -a

# Rebuild
docker-compose build --no-cache

发展

代码更改后重建:

npm run build

监视模式(自动重建):

npm run dev

运行测试:

npm test

贡献

欢迎投稿!请确保:

  • 代码遵循TypeScript的最佳实践
  • 新工具包括适当的文档
  • 考虑安全影响
  • 在适用的情况下,包括测试

许可证

MIT许可证-有关详细信息,请参阅许可证文件

免责声明

此工具仅用于教育和授权测试目的。作者不对该软件造成的误用或损坏负责。在测试任何你不拥有的系统之前,一定要确保你有明确的权限。