使用说明
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有效载荷生成器
安装
先决条件
- Kali Linux (或任何安装了安全工具的Linux发行版)
- Node.js 18+和npm
- 安全工具 安装在您的系统上
安装安全工具(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、xmastiming:偏执狂、偷偷摸摸、礼貌、正常、好斗、疯狂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
- 未知
解决:
- 使用非特权替代方案(例如nmap TCP连接扫描)
- 授予特定能力:
sudo setcap cap_net_raw+ep /usr/bin/nmap - 使用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
添加新工具
- 在中定义Zod模式
src/schemas/[category].schemas.ts - 在中实现工具处理程序
src/tools/[category].ts - 在中注册工具
src/index.ts - 添加到
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
性能提示
- 使用适当的定时:平衡速度与隐形
- 限制端口范围:仅扫描必要的端口
- 明智地使用单词表:较小的单词表可获得更快的结果
- 调整螺纹:更多线程=更快,但资源更密集
- 设置现实的超时:复杂的扫描需要更多时间
贡献
欢迎投稿!请确保:
- 所有输入均已验证
- 命令在列表中
- 错误消息是可操作的
- 文档已更新
- 遵循安全最佳实践
许可证
MIT许可证-有关详细信息,请参阅许可证文件
致谢
- Kali Linux团队为优秀的安全发行版
- 模型上下文协议的拟人化
- 安全工具作者:nmap、gobuster、sqlmap、hydra、john、hashcat等等
免责声明
此工具仅用于教育和授权的安全测试目的。作者不对该工具造成的任何误用或损坏负责。在测试任何系统之前,始终确保您有适当的授权。
版本: 1.0.0 最后更新时间: 2025-11-29
