Token导航 LogoToken导航TokenDH.com
Kali Pentest MCP logo
开发工具未说明官方级别未说明来源级核验

Kali Pentest MCP

MCP Server

基于Docker的MCP桥接服务器,提供受控的AI辅助访问Kali Linux渗透测试工具,实现安全远程命令执行。

工具数

1

提示词数

0

GitHub Stars

0

资源数

0
安全工具渗透测试ShellClaudeClaude DesktopClaude

安装说明

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

作者 / 组织

taddiemason

提供方

taddiemason

最后核验

2026/5/17 20:23

快速接入

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

详细介绍

Kali Linux MCP服务器-渗透测试桥

基于Docker的模型上下文协议(MCP)桥接服务器,提供对Kali Linux系统上渗透测试工具的受控、人工智能辅助访问。此设置通过容器化网桥架构在Kali Linux上实现了安全的远程命令执行。

概述

该项目由两个主要部分组成:

  1. MCP网桥服务器 -Node.js Express服务器,用于公开用于执行命令的HTTP API
  2. Kali MCP服务器 -通过SSH连接到Kali Linux机器的容器

桥接服务器允许AI助手和其他客户端通过安全的容器化接口在远程Kali Linux系统上执行授权的渗透测试命令。

建筑

Client (AI/API)
    ↓ HTTP POST
Bridge Server (Node.js on port 3001)
    ↓ Docker Exec
Kali MCP Server Container
    ↓ SSH
Kali Linux Machine (Remote/Local)

法律声明

此工具用于 仅限授权渗透测试根据大多数司法管辖区的计算机欺诈和滥用法律,未经授权访问计算机系统是非法的。在进行任何安全测试之前,始终获得明确的书面授权。

先决条件

系统要求

  • Docker引擎20.10或更高版本
  • Docker Compose v2.0或更高版本
  • Kali Linux机器(可以是远程或本地VM)
  • Kali Linux机器的SSH访问
  • 2GB+RAM可用于容器
  • Linux主机(推荐)或带Docker桌面的macOS/Windows

网络要求

  • 容器和Kali Linux机器之间的网络连接
  • 主机上可用于网桥API的端口3001
  • Kali Linux机器上可访问的SSH端口(默认22)

使用setup.sh快速入门

安装和管理Kali Pentest MCP服务器的最简单方法是使用自动设置脚本:

# Clone the repository
git clone https://github.com/taddiemason/Kali-Pentest-MCP
cd Kali-Pentest-MCP

# Run the setup script
chmod +x setup.sh
./setup.sh

安装脚本将:

  • 检查先决条件(Docker、Docker Compose)
  • 创建配置文件(.env)
  • 生成SSH密钥
  • 引导您完成Kali Linux连接设置
  • 提供菜单驱动界面来管理服务器

设置脚本功能

setup.sh 脚本提供了一个包含以下选项的综合菜单:

  1. 启动服务器 -构建并启动Docker容器
  2. 停止服务器 -停止所有正在运行的容器
  3. 重新启动服务器 -重新启动服务
  4. 查看日志 -实时日志流
  5. 检查状态 -查看容器状态、资源使用情况和连接
  6. 更新服务器 -提取最新更改并重建
  7. 运行初始设置 -重新配置服务器
  8. 测试SSH连接 -验证与Kali Linux机器的连接
  9. 清理 -移除容器和卷
  10. 退出 -退出脚本

手动安装

如果您更喜欢手动设置或需要更多控制,请按照以下步骤操作:

步骤1:克隆存储库

git clone https://github.com/taddiemason/Kali-Pentest-MCP
cd Kali-Pentest-MCP

步骤2:验证Dockerfile

主要的 Dockerfile Kali MCP服务器应该存在。如果缺失,则应包含:

Dockerfile已包含在存储库中并已正确配置。

步骤3:设置SSH密钥

创建SSH密钥以对Kali Linux机器进行安全身份验证:

# Create ssh-keys directory
mkdir -p ssh-keys

# Generate SSH key pair (ED25519 recommended for security)
ssh-keygen -t ed25519 -f ssh-keys/id_ed25519 -N "" -C "kali-mcp-server"

# Set proper permissions
chmod 700 ssh-keys
chmod 600 ssh-keys/id_ed25519
chmod 644 ssh-keys/id_ed25519.pub

步骤4:将SSH公钥复制到Kali Linux

将公钥复制到Kali Linux机器:

# Replace with your Kali Linux hostname and username
ssh-copy-id -i ssh-keys/id_ed25519.pub kali@kali.example.com

# Or manually:
cat ssh-keys/id_ed25519.pub
# Then on Kali Linux: echo "
" >> ~/.ssh/authorized_keys

步骤5:配置环境变量

创建一个 .env 项目根目录中的文件:

cat > .env << 'EOF'
# Kali Linux Connection Details
KALI_HOST=kali.example.com
KALI_PORT=22
KALI_USERNAME=kali

# Command execution timeout (milliseconds)
COMMAND_TIMEOUT=900000

# Bridge Server Port
PORT=3001
EOF

编辑 .env 文件中包含您实际的Kali Linux详细信息:

nano .env

步骤6:创建日志目录

mkdir -p logs

步骤7:构建并启动容器

# Build the containers
docker-compose build

# Start the services
docker-compose up -d

步骤8:验证安装

检查两个容器是否都在运行:

docker-compose ps

您应该看到:

NAME                IMAGE                          STATUS
kali-mcp-server     kali-pentest-mcp-kali-mcp-server   Up
mcp-bridge          kali-pentest-mcp-mcp-bridge        Up

检查网桥服务器运行状况:

curl http://localhost:3001/health

预期响应:

{"status":"ok","service":"mcp-bridge"}

配置

环境变量

变量描述默认值必填
KALI_HOSTKali Linux机器的主机名或FQDNKali.example.com
KALI_PORTKali Linux机器上的SSH端口22
KALI_USERNAMEKali Linux的SSH用户名Kali
COMMAND_TIMEOUT命令执行超时(毫秒)90000
PORT网桥服务器HTTP端口3001

SSH配置

SSH连接使用:

  • 基于密钥的身份验证(无密码)
  • StrictHostKeyChecking已禁用(用于自动连接)
  • UserKnownHostsFile=/dev/null(以避免主机密钥冲突)

安全说明:虽然这些设置简化了自动化,但降低了安全性。在生产中,考虑使用适当的known_hosts管理。

用法

API终点

健康检查

GET http://localhost:3001/health

答复:

{
  "status": "ok",
  "service": "mcp-bridge"
}

执行Kali命令

POST http://localhost:3001/v1/tools/execute
Content-Type: application/json

{
  "tool_name": "execute_kali_command",
  "arguments": {
    "command": "nmap -version"
  }
}

响应(成功):

{
  "success": true,
  "result": "Nmap version 7.94 ( https://nmap.org )\n..."
}

响应(错误):

{
  "success": false,
  "error": "Failed with code 1"
}

使用curl的示例

# Test nmap version
curl -X POST http://localhost:3001/v1/tools/execute \
  -H "Content-Type: application/json" \
  -d '{
    "tool_name": "execute_kali_command",
    "arguments": {"command": "nmap -version"}
  }'

# Run a simple ping scan (requires authorization!)
curl -X POST http://localhost:3001/v1/tools/execute \
  -H "Content-Type: application/json" \
  -d '{
    "tool_name": "execute_kali_command",
    "arguments": {"command": "nmap -sn target.example.com"}
  }'

# Check available tools
curl -X POST http://localhost:3001/v1/tools/execute \
  -H "Content-Type: application/json" \
  -d '{
    "tool_name": "execute_kali_command",
    "arguments": {"command": "which nmap metasploit nikto sqlmap"}
  }'

与MCP客户端一起使用

要与Claude Desktop等MCP兼容客户端集成,您需要将客户端配置为指向:

http://localhost:3001/v1/tools/execute

有关具体的集成步骤,请参阅MCP客户的文档。

维护

使用安装脚本(推荐)

管理服务器最简单的方法是使用安装脚本:

./setup.sh

然后从菜单中选择:

  • 选项4 -查看实时日志
  • 选项3 -重新启动服务
  • 选项2 -停止服务
  • 选项1 -启动服务
  • 选项5 -检查状态和连接
  • 选项6 -更新和重建
  • 选项8 -测试SSH连接

手动维护命令

查看日志

# View bridge server logs
docker-compose logs -f mcp-bridge

# View Kali MCP server logs
docker-compose logs -f kali-mcp-server

# View application logs (if configured)
tail -f logs/*.log

重新启动服务

# Restart all services
docker-compose restart

# Restart specific service
docker-compose restart mcp-bridge

停止服务

# Stop all services
docker-compose stop

# Stop and remove containers
docker-compose down

更新中

# Pull latest changes
git pull

# Rebuild and restart
docker-compose down
docker-compose build
docker-compose up -d

故障排除

问题:容器无法启动

检查日志:

docker-compose logs

常见原因:

  • 缺少Dockerfile
  • 端口3001已在使用中
  • Docker守护进程未运行

解决:

# Check if port is in use
sudo lsof -i :3001

# Restart Docker
sudo systemctl restart docker

问题:SSH连接失败

手动测试SSH连接:

ssh -i ssh-keys/id_ed25519 kali@kali.example.com

常见原因:

  • .env中的KALI_HOST不正确
  • Kali Linux上未授权SSH密钥
  • 防火墙阻止端口22
  • Kali上未运行SSH服务

解决:

# On Kali Linux, check SSH service
sudo systemctl status ssh

# Check authorized_keys
cat ~/.ssh/authorized_keys

# Check firewall
sudo ufw status

问题:命令执行超时

增加超时时间:

编辑 .env:

COMMAND_TIMEOUT=1800000  # 30 minutes for long-running scans

然后重新启动:

docker-compose restart

问题:权限被拒绝错误

检查SSH密钥权限:

ls -la ssh-keys/
# Should show:
# -rw------- id_ed25519
# -rw-r--r-- id_ed25519.pub

修复权限:

chmod 600 ssh-keys/id_ed25519
chmod 644 ssh-keys/id_ed25519.pub

问题:Docker套接字权限被拒绝

网桥服务器需要访问Docker套接字。如果您看到权限错误:

# Add your user to docker group
sudo usermod -aG docker $USER

# Log out and back in, then verify
docker ps

安全考虑

关键安全说明

  1. 需要授权:仅在您拥有或有明确书面许可进行测试的系统上使用此工具
  2. SSH密钥:保护您的私钥安全,永远不要将其提交给版本控制
  3. 网络暴露:网桥API(端口3001)没有身份验证-使用以下项限制访问:

- 防火墙规则 - Docker网络隔离 - 具有身份验证的反向代理

  1. 命令注入:输入验证最少-在生产使用前进行适当的消毒
  2. 特权访问:网桥容器以Docker套接字的特权访问运行
  3. 审计日志:考虑对执行的所有命令进行全面的日志记录

推荐的安全增强功能

  1. 添加API身份验证:

- 实现基于令牌的身份验证 - 使用API密钥或JWT令牌 - 添加速率限制

  1. 输入验证:

- 对命令输入进行消毒 - 白名单允许的命令 - 实施命令审批工作流程

  1. 网络安全:

- 对网桥API使用HTTPS/TLS - 实施IP白名单 - 使用VPN或SSH隧道进行远程访问

  1. 监控:

- 记录所有API请求 - 监控可疑活动 - 为未经授权的访问尝试设置警报

项目结构

Kali-Pentest-MCP/
├── setup.sh                # Automated setup and management script
├── docker-compose.yml       # Docker Compose configuration
├── Dockerfile              # Main Kali MCP server container
├── Dockerfile.bridge       # Bridge server container definition
├── bridge-server.js        # Node.js bridge server implementation
├── .env.example            # Example environment variables
├── .env                    # Environment variables (created by setup.sh)
├── ssh-keys/              # SSH keys directory (created by setup.sh)
│   ├── id_ed25519         # Private key (generated by setup.sh)
│   └── id_ed25519.pub     # Public key (generated by setup.sh)
├── logs/                   # Application logs directory (created by setup.sh)
└── README.md              # This file

贡献

欢迎投稿!拜托:

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 如果适用,添加测试
  5. 提交拉取请求

开发环境设置

# Run in development mode with live logs
docker-compose up

# Rebuild after code changes
docker-compose build --no-cache

# Run bridge server locally for testing
cd /path/to/project
node bridge-server.js

许可证

本项目按原样提供,用于教育和授权的安全测试目的。用户有责任确保遵守所有适用的法律法规。

支持

对于问题、疑问或贡献:

  1. 仔细检查此README
  2. 查看故障排除部分
  3. 检查容器日志: docker-compose logs
  4. 在GitHub上打开一个问题

致谢

  • 使用Anthropic的模型上下文协议(MCP)构建
  • 与Kali Linux渗透测试工具集成
  • 用于桥接API的Node.js和Express.js
  • Docker用于容器化

______________________________________________________________________

记住:权力越大,责任越大。在道德和法律上使用此工具。

目录标签

目录标签

安全工具渗透测试ShellClaude本地部署Docker容器远程执行KaliLinux

支持客户端

Claude DesktopClaude

接入字段

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

未说明

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

none

工具数量(toolCount,工具数)

1

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明none部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP