Kali MCP 安全工具服务器

一个生产级的MCP服务器,通过AI友好接口暴露20+ Kali Linux安全工具,用于授权渗透测试和安全评估。

  • by azza39925
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 azza39925/kali-mcp-server

使用说明

Kali MCP服务器

一个生产质量的MCP(模型上下文协议)服务器,通过人工智能友好的界面公开20多个Kali Linux安全工具,使人工智能助手能够以受控、结构化的方式执行渗透测试和安全评估。

⚠️ 法律声明

此工具仅用于授权安全测试。

  • 您必须拥有明确的书面许可才能测试任何系统
  • 未经授权访问计算机系统是非法的
  • 用户有责任确保适当的授权
  • 作者对误用此工具不承担任何责任

通过使用此工具,您承认您拥有适当的授权,并对您的行为承担全部责任。

特性

  • 20+安全工具 跨越多个类别
  • 类型安全 使用TypeScript和Zod验证
  • 安全执行 具有命令分配列表、超时和输出限制
  • 输入验证 防止命令注入
  • 速率限制 防止滥用
  • 结构化输出 通过适当的错误处理
  • 符合MCP标准 实现无缝的人工智能集成

支持的工具

网络工具(6)

  • nmap -网络端口扫描和服务检测
  • nmap发现 -网络上的主机发现
  • masscan -高速端口扫描仪
  • 未知 -ARP侦察
  • 数据包捕获工具 -数据包捕获
  • tshark -用于数据包分析的Wireshark CLI

网络安全工具(7)

  • 戈布斯特目录 -目录/文件枚举
  • gobuster域名系统 -子域枚举
  • sqlmap -SQL注入测试
  • 无 -Web服务器扫描程序
  • wpscan -WordPress安全扫描程序
  • ffuf -网络模糊器
  • 核 -基于模板的漏洞扫描程序

密码工具(3)

  • 九头蛇 -网络登录暴力破解器
  • 约翰 -开膛手约翰密码破解者
  • 哈希猫 -高级密码恢复

开发工具(3)

  • 搜索漏洞利用 -利用数据库搜索
  • searchsploit检查 -查看漏洞利用详细信息
  • msfvenom -Metasploit有效载荷生成器

安装

先决条件

  1. Kali Linux (或任何安装了安全工具的Linux发行版)
  2. Node.js 18+和npm
  3. 安全工具 安装在您的系统上

安装安全工具(Kali Linux)

sudo apt update
sudo apt install -y \
  nmap masscan netdiscover tcpdump tshark \
  gobuster sqlmap nikto wpscan ffuf nuclei \
  hydra john hashcat \
  exploitdb metasploit-framework

安装MCP服务器

cd kali-mcp-server
npm install
npm run build

用法

运行服务器

# Start the server
npm start

# Or run directly
node dist/index.js

MCP检验员测试

# Launch the MCP Inspector for interactive testing
npm run inspector

# Or
npx @modelcontextprotocol/inspector node dist/index.js

与Claude Desktop集成

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

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

工具参考

网络工具

kali_网络_地图_扫描

使用Nmap执行网络端口扫描。

例子:

{
  "target": "192.168.1.1",
  "ports": "22,80,443",
  "scan_type": "tcp_syn",
  "timing": "normal",
  "service_version": true
}

参数:

  • target (必需):IP、主机名或CIDR范围
  • ports (可选):端口规格(默认值:top 1000)
  • scan_type:tcp_syn、tcp_connect、udp、ack、null、fin、xmas
  • timing:偏执狂、偷偷摸摸、礼貌、正常、好斗、疯狂
  • os_detection:启用操作系统检测(需要root)
  • service_version:探测服务版本
  • script_scan:要运行的NSE脚本
  • aggressive:启用主动扫描
  • timeout:超时时间(秒)(默认值:300)

kali_网络_nmap_discover

发现网络上的实时主机。

例子:

{
  "network": "192.168.1.0/24",
  "method": "ping",
  "timeout": 120
}

Web工具

kali_web_gobuster_dir

枚举web服务器上的目录和文件。

例子:

{
  "url": "https://example.com",
  "wordlist": "/usr/share/wordlists/dirb/common.txt",
  "extensions": "php,html,txt",
  "threads": 10
}

kali_web_sqlmap_test

自动SQL注入测试。

例子:

{
  "url": "https://example.com/page?id=1",
  "level": 1,
  "risk": 1,
  "batch": true
}

警告: 仅在您有权测试的系统上使用。

密码工具

kali_password_hydra_bluent

快速网络登录暴力破解器。

例子:

{
  "target": "192.168.1.1",
  "service": "ssh",
  "username": "admin",
  "password_list": "/usr/share/wordlists/rockyou.txt",
  "threads": 16
}

警告: 仅在您有权测试的系统上使用。

利用工具

kali_探索_研究

搜索漏洞利用数据库。

例子:

{
  "query": "apache 2.4",
  "platform": "linux"
}

或按CVE搜索:

{
  "cve": "CVE-2021-44228"
}

kali_exploit_msfvenom-generate

生成自定义有效载荷。

例子:

{
  "payload": "linux/x64/shell_reverse_tcp",
  "lhost": "192.168.1.100",
  "lport": 4444,
  "format": "elf"
}

安全特性

命令允许列表

只能执行预先批准的命令。服务器维护一个严格的允许安全工具列表。

输入验证

所有输入在执行前都经过验证:

  • IP地址和CIDR范围
  • 主机名和URL
  • 端口号和范围
  • 文件路径(无目录遍历)
  • 无外壳元字符

输出消毒

敏感信息会自动从输出中编辑:

  • 密码
  • API密钥
  • 代币
  • 秘密

执行限制

  • 超时:每个工具可配置(默认值:5分钟)
  • 输出大小:每个命令最大10MB
  • 速率限制:每分钟10个命令,每小时100个命令

进程隔离

所有命令都在隔离的子进程中执行,具有:

  • 分离stdout/stderr捕获
  • 优雅的超时处理
  • 资源清理

配置

环境变量

使用环境变量自定义刀具路径:

export NMAP_PATH=/usr/bin/nmap
export GOBUSTER_PATH=/usr/bin/gobuster
export SQLMAP_PATH=/usr/bin/sqlmap
# ... etc

单词列表路径

默认单词表(Kali Linux):

  • /usr/share/wordlists/rockyou.txt
  • /usr/share/wordlists/dirb/common.txt
  • /usr/share/seclists/Discovery/Web-Content/common.txt

错误处理

服务器提供详细的、可操作的错误消息:

❌ Command failed: nmap -sS 192.168.1.1

🔢 Exit code: 1

📋 Error output:
You requested a scan type which requires root privileges.

Possible causes:
- TCP SYN scan requires root/sudo
- Try using scan_type="tcp_connect" instead
- Run the server with sudo (not recommended)

Suggested actions:
1. Use tcp_connect scan type (doesn't require root)
2. Grant CAP_NET_RAW capability to nmap
3. Check permissions and try again

故障排除

未找到工具

如果工具不在您的PATH中:

# Check if tool is installed
which nmap

# Install missing tools
sudo apt install nmap

# Or set custom path
export NMAP_PATH=/custom/path/to/nmap

权限错误

某些工具需要root权限:

  • nmap TCP SYN扫描(-sS)
  • masscan
  • tcpdump/tshark
  • 未知

解决:

  1. 使用非特权替代方案(例如nmap TCP连接扫描)
  2. 授予特定能力: sudo setcap cap_net_raw+ep /usr/bin/nmap
  3. 使用sudo运行服务器(出于安全原因不建议)

超时问题

如果扫描超时:

{
  "target": "192.168.1.1",
  "ports": "1-65535",
  "timeout": 1800  // Increase to 30 minutes
}

发展

项目结构

kali-mcp-server/
├── src/
│   ├── index.ts           # Main server
│   ├── types.ts           # Type definitions
│   ├── constants.ts       # Configuration
│   ├── utils/
│   │   ├── executor.ts    # Command execution
│   │   ├── validator.ts   # Input validation
│   │   ├── formatter.ts   # Output formatting
│   │   └── parser.ts      # Output parsing
│   ├── tools/
│   │   ├── network.ts     # Network tool handlers
│   │   ├── web.ts         # Web tool handlers
│   │   ├── password.ts    # Password tool handlers
│   │   └── exploit.ts     # Exploit tool handlers
│   └── schemas/
│       ├── network.schemas.ts
│       ├── web.schemas.ts
│       ├── password.schemas.ts
│       └── exploit.schemas.ts
└── dist/                  # Compiled output

添加新工具

  1. 在中定义Zod模式 src/schemas/[category].schemas.ts
  2. 在中实现工具处理程序 src/tools/[category].ts
  3. 在中注册工具 src/index.ts
  4. 添加到 ALLOWED_COMMANDS 在 src/constants.ts

例子:

// 1. Schema
export const MyToolSchema = z.object({
  target: z.string().describe("Target to scan"),
  option: z.boolean().default(false),
});

// 2. Handler
export async function myTool(input: MyToolInput): Promise<ToolResult> {
  const args = [input.target];
  if (input.option) args.push("--option");

  const result = await executeCommand("mytool", args);
  return formatExecutionResult(result);
}

// 3. Register in index.ts
{
  name: "kali_category_mytool_action",
  description: "Description of what it does",
  inputSchema: zodToJsonSchema(MyToolSchema),
}

// 4. Add to ALLOWED_COMMANDS
export const ALLOWED_COMMANDS = new Set([
  // ... existing commands
  "mytool",
]);

运行测试

npm run build
npm start

MCP检验员测试:

npm run inspector

常见工作流

1.网络侦察

1. Discover hosts: kali_network_nmap_discover
2. Port scan: kali_network_nmap_scan
3. Service detection: kali_network_nmap_scan with service_version=true
4. Vulnerability scan: kali_network_nmap_scan with script_scan="vuln"

2.Web应用程序测试

1. Directory enumeration: kali_web_gobuster_dir
2. Subdomain discovery: kali_web_gobuster_dns
3. Vulnerability scanning: kali_web_nikto_scan
4. SQL injection testing: kali_web_sqlmap_test

3.密码评估

1. Network brute force: kali_password_hydra_brute
2. Hash identification: Manual analysis
3. Hash cracking: kali_password_john_crack or kali_password_hashcat_crack

4.开发研究

1. Search exploits: kali_exploit_searchsploit_search
2. Examine exploit: kali_exploit_searchsploit_examine
3. Generate payload: kali_exploit_msfvenom_generate

性能提示

  1. 使用适当的定时:平衡速度与隐形
  2. 限制端口范围:仅扫描必要的端口
  3. 明智地使用单词表:较小的单词表可获得更快的结果
  4. 调整螺纹:更多线程=更快,但资源更密集
  5. 设置现实的超时:复杂的扫描需要更多时间

贡献

欢迎投稿!请确保:

  • 所有输入均已验证
  • 命令在列表中
  • 错误消息是可操作的
  • 文档已更新
  • 遵循安全最佳实践

许可证

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

致谢

  • Kali Linux团队为优秀的安全发行版
  • 模型上下文协议的拟人化
  • 安全工具作者:nmap、gobuster、sqlmap、hydra、john、hashcat等等

免责声明

此工具仅用于教育和授权的安全测试目的。作者不对该工具造成的任何误用或损坏负责。在测试任何系统之前,始终确保您有适当的授权。


版本: 1.0.0 最后更新时间: 2025-11-29