目前,这只是个玩具,仅支持执行可以返回结果的命令,如burst套件和metasploit,无法与界面和命令进行交互。然而,AI代理可以直接执行metasploit,而无需进入命令交互模式。如果你有时间,可以使用它来增强功能 😜
kali linux mcp, pentest, 渗透测试
20250401 更新:增加了简单的交互处理
ssh keygen -t RSA 创建一个私钥和公钥,替换 Dockerfile 中的公钥,并将私钥替换到 "C:\Users[用户名]\ .ssh\kali000"。这里,在 src\index.ts 中搜索 "kali000" 并找到替换路径'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCsoJo7WJIHDQgmEdKwm6IqS61xaGWa/OVVMCrMwcVh13xvYbAD7wdMufzNhWRxSso3SKvTHbQjIszvYQgkVFjRPiJW5vGCU0847CX0zZytGLnKpKWDZ5ccShMPlIxVuy2+WUQlKNL7f+w59PMX+3BLcikhtwk0xwG7tpS4kAtXHlrwt1B1vFj3CoF8rBofGJAahOuPvruRh9i1i73i5JJHJFeDdJVfNnY5/8HnBvtWtJzbsbmlyaTODfrDCeYZ32zxDZdsPVEls3RDsfgUadyC71mpXloJ8JTiUU37H5DY+xtIuz3XICwA7DsVm9jiKaSR96DZyogYxx+UKdrDsIH4JQwBNs3RDCX+t7ivKj75KkhhrW2X2h90EOjwQPQOhuVU2FtMXbWlfbZL5UwXGgA7Efe3N0ZzrKac+RGM6vY/jsnESgZaTayF/N/BysMpjI18xy6Y12CyPXVYsvF3v04d2XR1Fs5rduERjpot7o9N+i5FcoTfUb5WP5nVU9X0b2s= hack004@DESKTOP-H4HRI73'
1: wget -q -O - https://archive.kali.org/archive-key.asc | gpg --import
2: curl -fsSL https://archive.kali.org/archive-key.asc | sudo gpg --dearmor -o /usr/share/keyrings/kali-archive-keyring.gpg
3: sudo apt update && sudo apt full-upgrade -y
4: (下载更新最新版 kali linux 的所有工具,注意很大很慢) sudo apt install kali-linux-everything -y
5: 如果只需更新单独的软件,就无需执行 4 因为要很久,例如 sudo apt install wpscan
6: 我自己倒是完成了最新更新,但是容器太大了几十 G 就不传了,需要的自行操作就行了```
1: 编译镜像: "docker build -t kali-pentest-mcp ."
2: 部署镜像: "docker run --name kali-container -d --privileged -p 2222:22 kali-pentest-mcp"
"kali-pentest-mcp-server": {
"command": "node",
"args": ["D:/kalimcp/build/index.js"],
"env": {}
}
1: 每次重启 Docker 后记得刷新 MCP,因为 SSH 连接可能会断开
此实时查看器解决了在 AI 工具(如 cursor)中执行长命令时看不到实时输出的问题。通过 WebSocket 技术,您可以在浏览器中实时监控命令执行进度。
Windows 用户:
# 双击运行
start-realtime-viewer.bat
# 或者手动运行
cd realtime-viewer
npm install
npm start
Linux/Mac 用户:
cd realtime-viewer
npm install
npm start
启动后,在浏览器中访问:
http://localhost:3000
在 cursor 或其他 AI 工具中,使用以下命令启用实时推送:
configure_realtime_viewer action=enable
或者配置自定义查看器 URL:
configure_realtime_viewer action=configure viewer_url=http://localhost:3000
现在当你执行交互式命令时,输出将在 Web 界面中实时显示:
start_interactive_command command="nmap -sS -O 192.168.1.1"
configure_realtime_viewer action=status
configure_realtime_viewer action=enable
configure_realtime_viewer action=disable
configure_realtime_viewer action=configure viewer_url=http://localhost:3000
start_interactive_command command="nmap -sS -p- 192.168.1.0/24"
在 Web 界面中实时查看扫描进度和结果。
start_interactive_command command="nikto -h http://target.com"
实时监控漏洞扫描发现过程。
start_interactive_command command="hydra -l admin -P /usr/share/wordlists/rockyou.txt ssh://192.168.1.100"
实时监控密码破解尝试的进度。
start_interactive_command command="mysql -u root -p"
在 Web 界面中查看 SQL 查询的执行结果。
您可以使用环境变量配置 MCP 服务器:
# 启用实时推送(默认禁用)
set REALTIME_PUSH_ENABLED=true
# 配置查看器 URL(默认 http://localhost:3000)
set REALTIME_VIEWER_URL=http://localhost:8080
# 重新启动 MCP 服务器
npm run build
npm start
configure_realtime_viewer action=statusstart_interactive_command 激活┌─────────────────┐ HTTP/WebSocket ┌──────────────────┐
│ MCP 服务器 │ ──────────────────► │ 实时查看器 │
│ │ │ │
│ - 命令执行器 │ │ - Express 服务器 │
│ - 实时推送器 │ │ - WebSocket │
│ - SSH 会话 │ │ - Web 界面 │
└─────────────────┘ └──────────────────┘
│ │
│ SSH │ 浏览器
▼ ▼
┌─────────────────┐ ┌──────────────────┐
│ Kali Linux │ │ Web 浏览器 │
│ │ │ │
│ - 安全工具 │ │ - 实时 UI │
│ - 命令行 │ │ - 会话管理 │
└─────────────────┘ └──────────────────┘