渗透测试工具服务

一个提供常见渗透测试工具(如nmap、sqlmap等)的MCP服务器,通过JSON协议进行安全、可复现的工具调用和结果管理。

  • by PaulGG-Code
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 PaulGG-Code/kali_mcp-mcp-server

使用说明

kali\mcp mcp服务器

一种模型上下文协议(MCP)服务器,将常见的渗透测试工具(nmap、nikto、sqlmap、gobuster、searchsploit、binwalk、apktool/jadx等)作为FastMCP工具公开。每个工具都通过MCP协议接受严格的JSON有效载荷,并返回一个结构化的JSON结果(字符串化),包括作业元数据和工件签名的URL。

目的

此MCP服务器为运行受控的pentest工具提供了一个安全、可重复的环境,用于教育和内部测试目的。

特性

  • 公开工具:nmap、nikto、sqlmap、gobuster、searchsploit、binwalk、apktool+jadx,以及一个简单的health_check工具。
  • 每个工具都接受参数:user_id、job_id、target、ports/options、profile、timeout。
  • 输入净化和参数列表执行(无shell插值)。
  • 每个作业的临时工作区(临时目录)和工件收集。
  • 工件上传到S3/MinIO(默认)或本地文件路径。为下载生成签名的URL。
  • 基本的API密钥认证(通过x-API-key头)和简单的RBAC。
  • 可通过环境变量进行配置。
  • 为可复制的环境进行了Docker化。

快速环境变量

  • KALI_MCP_JOB_TIMEOUT:默认值600
  • KALI_MCP_CONCURRENT_PER_USER:默认值3
  • KALI_MCP_ARTIFACT_TTL_DAYS:默认值7
  • KALI_MCP_ARTIFACT_MAX_MB:默认值200
  • KALI_MCP_ARTIFACT_STORE:minio|s3|本地(默认:minio)
  • KALI_MCP_BUCKET:工件桶名称(默认值:KALI-MCP工件)
  • KALI_MCP_MINIO_ENDPOINT:默认值http://minio:9000
  • KALI_MCP_MINIO_ACCESS_KEY/KALI_MCP_MINIO_SECRET_KEY:凭据
  • KALI_MCP_API_KEYS_CSV:带API_key的可选路径:角色行

使用示例

示例工具调用(通过stdio传输MCP JSON):

{“jsonrpc”:“2.0”,“method”:“tool:nmap_scan”,“params”:{“user_id”:“alice”,“job_id”:“job-123”,“target”:“example.com”,“ports”:“1-1024”,“profile”:“quick”,“timeout”:“120”},“id”:1}

工具返回一个包含JSON结果的字符串:

{“job_id”:“job-123”,“user_id”:“alice”,“tool”:“nmap”,“status”:“success”, … }

安全说明

  • 在没有适当的网络控制的情况下,不要公开此服务器。
  • 旋转API密钥并转移到安全机密存储中进行生产。
  • 应按照保留策略清除包含敏感信息的工件。

发展

  • 编辑 kali_mcp_server.py 添加工具。只保留文档字符串单行。
  • 更改后重建Docker镜像。

许可证

麻省理工学院