Kali工具集成服务器

MCP-Kali-Server是一个基于Go的服务器应用,通过Model Context Protocol (MCP)集成多种Kali Linux工具,提供HTTP和MCP接口以执行渗透测试和安全扫描工具。

  • by ba0f3
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 ba0f3/MCP-Kali-Server

使用说明

MCP-Kali-Server(可翻译为):MCP-Kali 服务器

MCP-Kali-Server 是一个基于 Go 语言的服务器应用程序,它利用模型上下文协议(MCP)集成了各种 Kali Linux 工具。它提供了基于 HTTP 和 MCP 的接口,用于执行渗透测试和安全扫描所用的安全工具。

注这个项目是原Python实现版本的Go语言分支 https://github.com/Wh0am123/MCP-Kali-Server 翻译为中文是:“https://github.com/Wh0am123/MCP-Kali-服务器(或:MCP-Kali 服务端)”。不过,通常在中文语境中,我们可能会更简洁地表述为“GitHub上的MCP-Kali服务器项目(或:MCP-Kali服务端仓库)”,具体取决于上下文和表达习惯。

特点/特性

  • MCP和HTTP服务器使用MCP服务器以MCP模式运行服务器,或使用Gin以HTTP模式运行服务器。
  • 集成工具:
    • Nmap(网络映射工具)
    • Gobuster(一种用于目录和DNS枚举的工具)
    • “Dirb”翻译成中文可以是“迪尔布”(注:这是一个音译,具体含义可能根据上下文或特定领域有所不同)。如果“Dirb”是某个特定名称、品牌或术语,在没有具体上下文的情况下,通常会采用音译的方式进行翻译。
    • Nikto(注:此词在波兰语中意为“无人”,在其他语境下可能根据上下文有不同翻译,但直接翻译即为此)
    • SQLmap
    • 水螅(或译为水母的一种,具体根据上下文确定)
    • “John the Ripper”翻译成中文是“密码破解者约翰”。不过,这个名称在中文语境下可能不太常见,因为“John the Ripper”通常指的是一个用于破解密码的工具或程序,其名称来源于历史上著名的密码破解者约翰·哈克尼斯(John the Ripper)。在中文中,这个工具或程序可能被直接称为“John the Ripper”或根据其功能被描述为“密码破解工具(John the Ripper)”
    • WPScan
    • Enum4linux
    • Sublist3r(可译为“子列表查找器”或根据具体上下文意译为更贴切的名称)

项目结构

  • cmd/包含Kali和MCP服务器的主要可执行文件。
  • pkg/tools/实现工具执行逻辑。
  • pkg/handlers/定义工具和命令的处理程序。
  • go.mod 并且 go.sum管理Go依赖项。

入门指南

先决条件

  • Go 1.24.5 或更高版本
  • MCP Go SDK(MCP Go软件开发工具包)
  • 已安装Kali Linux工具

安装

git clone https://github.com/ba0f3/MCP-Kali-Server.git
cd MCP-Kali-Server
go mod tidy

运行服务器

MCP模式

go run ./cmd/mcp-server -debug

# With custom timeout (in seconds)
go run ./cmd/mcp-server -timeout=300

# With HTTP endpoint
go run ./cmd/mcp-server -http=:8080

HTTP 模式

SERVER_MODE=gin go run ./cmd/kali-server

# With custom timeout (in seconds)
go run ./cmd/kali-server -timeout=300

# With custom port
go run ./cmd/kali-server -port=8080

服务器默认在5000端口启动(可通过配置进行调整) -port 标志) 并为工具操作提供多个终端点。

命令行标志

Kali服务器

  • -port监听端口(默认:5000)
  • -timeout命令执行超时时间(秒)(默认:180)

mcp-server 翻译成中文是“MCP服务器”

  • -debug启用调试日志记录(默认:false)
  • -http要监听的HTTP地址,而不是标准输入输出(例如,":8080")
  • -timeout命令执行超时时间(以秒为单位)(默认:180)

认证

HTTP服务器支持身份验证以保护您的终端节点。身份验证通过环境变量进行配置:

  • AUTH_SECRET用于身份验证的密钥/令牌(启用身份验证所必需)
  • AUTH_TYPE认证方法——任选其一 apikey (默认)或 bearer

API密钥认证(默认)

设置密钥并在请求中包含它:

# Set the secret
export AUTH_SECRET=your-secret-key

# Include in header
curl -H "X-API-Key: your-secret-key" http://localhost:5000/api/tools/nmap -d '{...}'

# Or as query parameter
curl http://localhost:5000/api/tools/nmap?api_key=your-secret-key -d '{...}'

不记名令牌认证

# Set auth type and secret
export AUTH_TYPE=bearer
export AUTH_SECRET=your-bearer-token

# Include in Authorization header
curl -H "Authorization: Bearer your-bearer-token" http://localhost:5000/api/tools/nmap -d '{...}'

用法

示例命令

  • Nmap扫描:

    curl -X POST http://localhost:5000/api/tools/nmap -d '{"target": "example.com", "scan_type": "-sS"}'
    
  • WPScan分析:

    curl -X POST http://localhost:5000/api/tools/wpscan -d '{"url": "http://example.com"}'
    
  • Sublist3r 子域名枚举:

    curl -X POST http://localhost:5000/api/tools/sublist3r -d '{"domain": "example.com", "bruteforce": false, "threads": 10}'
    

许可证

这个项目采用MIT许可证授权 - 详见 许可证 文件中有详细信息。