使用说明
渗透测试MCP服务器
A. 已准备好投入生产 模型上下文协议(MCP)服务器,使AI代理能够执行自主渗透测试 任何Linux发行版 通过SSH访问。构建于持久的tmux会话、智能触发器、自动重连和全面的资源管理之上。
🚀 关键区别点: 与其他独立运行命令的MCP服务器不同,这台服务器提供 持久会话管理 使用tmux,可以实现复杂的交互式工作流程和长时间运行的操作。
📋 目录
- 👤 连接
- 🖼️ 截图
- 🎯 核心能力
- 🎯 主要特点
- 🎯 实际影响
- 🏗️ 建筑
- 🚀 快速入门
- 🔧 快速设置
- 🚀 高级功能
- 🛠️ MCP 工具
- 💡 使用示例
- 🔒 安全功能
- 🧪 测试
- 📊 监控与调试
- 🔧 高级配置
- 🐛 故障排除
- 🤝 贡献
- 📝 许可证
- ⚠️ 法律免责声明
- 🙏 致谢
👤 连接
🎥(电影胶片或视频播放的符号,无具体文字含义,可理解为“电影”或“视频”) 视频教程: 在YouTube上观看完整教程
领英(LinkedIn): 阿卜杜拉·恩迪亚耶
🖼️ 截图
🎯(靶心) 核心能力
这个MCP服务器为AI代理提供 持久会话控制 通过SSH在任何Linux发行版上启用:
- 🌍 全球通用兼容性与Kali Linux、Parrot Security、BackBox以及任何Linux发行版兼容
- 🔓 零工具限制在目标系统上运行任何已安装的工具——无限制
- 🔄 持久会话基于Tmux的会话,能够抵御断开连接和崩溃
- 🤖 智能自动化基于输出模式和触发条件的AI暂停/恢复功能
- ⚡ 自动重连使用指数退避策略的自动SSH重连
- 📊 资源管理智能限制并发的繁重操作
- 🎯 互动工具全面支持msfconsole、MySQL、反向Shell以及复杂工作流程
- 🛡️ 会话恢复在崩溃或网络问题后恢复所有会话
🎯(目标、靶心) 主要特点
我们的核心优势:
- 🔄 会话持久性会话在断开连接和崩溃后仍能保持
- 🎯 交互式工具支持处理msfconsole、反向Shell、复杂工作流程
- 🤖 智能自动化智能触发的AI暂停/恢复功能
- ⚡ 自动重连自动从网络问题中恢复
- 📊 资源管理智能限制和系统监控
- 🌍 通用兼容性兼容任何Linux发行版
💡 优势: 我们的服务器提供 持久会话管理 这使得能够执行复杂的、多步骤的渗透测试工作流,并提供全面的交互式工具支持。
🎯(瞄准目标) 实际影响
这所能实现的是:
- 复杂的工作流程跨数小时的多步骤渗透测试操作
- 交互式工具完全的Metasploit自动化,反向Shell管理
- 会话持久性长时间运行的扫描,能够抵御网络问题
- 资源管理对并发操作的智能限制
- 通用部署适用于任何Linux发行版
用例:
- 红队行动自动化侦察与利用
- CTF挑战赛复杂的多步骤问题解决
- 安全研究长期持续的漏洞评估
- AI辅助渗透测试重复性任务的智能自动化
🏗️ 建筑学
┌─────────────────────┐
│ AI Agent │
│ (Claude/ChatGPT) │
└──────────┬──────────┘
│ MCP Protocol
▼
┌─────────────────────┐
│ MCP Server │
│ (Python) │
│ │
│ ┌───────────────┐ │
│ │Session Manager│ │
│ │Auto-Reconnect │ │
│ │Resource Mgmt │ │
│ └───────────────┘ │
└──────────┬──────────┘
│ SSH + PTY
▼
┌─────────────────────┐
│ Pentest System │
│ (Kali/Parrot/etc) │
│ │
│ ┌───────────────┐ │
│ │ tmux │ │
│ │ ┌─────────┐ │ │
│ │ │Session 1│ │ │
│ │ │Session 2│ │ │
│ │ │Session N│ │ │
│ │ └─────────┘ │ │
│ └───────────────┘ │
└─────────────────────┘
🚀 快速入门
安装(5分钟)
# 1. Clone repository
git clone https://github.com/LayeSec006/pentest-mcp-server.git
cd pentest-mcp-server
# 2. Install package
pip install -e .
# 3. Configure
cp .env.example .env
# Edit .env with your pentesting os details
# 4. Install tmux on target system
ssh kali@<TARGET_HOST>
# For Debian/Ubuntu/Kali/Parrot:
sudo apt update && sudo apt install tmux
# For Arch/BlackArch:
sudo pacman -S tmux
# For RHEL/CentOS/Fedora:
sudo yum install tmux
# OR for newer versions:
sudo dnf install tmux
# For Alpine Linux:
sudo apk add tmux
exit
# 5. Test
python -m pytest tests/ -v
配置
创建一个 .env 附上您的目标系统详细信息文件:
# SSH Connection
TARGET_HOST=192.168.1.100
TARGET_PORT=22
TARGET_USER=kali
TARGET_PASSWORD=your_password
# OR use SSH key instead
# TARGET_SSH_KEY=/path/to/private/key
# Resource Limits
MAX_SESSIONS=20
MAX_HEAVY_TASKS=3
# Monitoring
POLL_INTERVAL=1.0
DEFAULT_TIMEOUT=300
🤖 AI平台集成
Claude桌面集成
在您的Claude桌面配置中添加:
Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS:(可译为“苹果操作系统”或保持原样,因为“macOS”是苹果公司的专有名词,通常直接使用) ~/Library/Application Support/Claude/claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"pentest-mcp": {
"command": "python",
"args": ["-m", "pentest_mcp_server"],
"env": {
"TARGET_HOST": "192.168.1.100",
"TARGET_USER": "kali",
"TARGET_PASSWORD": "your_password"
}
}
}
}
风帆冲浪集成
在你的风帆冲浪设置中添加:
{
"mcpServers": {
"pentest-mcp": {
"command": "python",
"args": ["-m", "pentest_mcp_server"],
"env": {
"TARGET_HOST": "192.168.1.100",
"TARGET_USER": "kali",
"TARGET_PASSWORD": "your_password"
}
}
}
}
光标集成
在您的光标设置中添加:
{
"mcpServers": {
"pentest-mcp": {
"command": "python",
"args": ["-m", "pentest_mcp_server"],
"env": {
"TARGET_HOST": "192.168.1.100",
"TARGET_USER": "kali",
"TARGET_PASSWORD": "your_password"
}
}
}
}
5ire Integration(注:这里的“5ire”可能是特定品牌、项目或公司的名称,直接翻译为中文时保持原样,因为没有具体的上下文来确定其准确含义,所以翻译为“5ire整合”或根据具体语境可能需要调整为更合适的名称或解释)
在5ire中:
- 点击 工具 在主界面
- 点击 本地 按钮
- 填写“编辑工具(本地服务器)”表单:
- 工具键:
pentest-mcp - 姓名:
Pentest MCP(可选) - 描述:
AI-powered penetration testing server(可选) - 审批政策: 选择
Always(推荐) - 命令:
python -m pentest_mcp_server - 环境变量:
TARGET_HOST=192.168.1.100TARGET_USER=kaliTARGET_PASSWORD=your_password
- 工具键:
- 审查/回顾 配置预览 以确保它是正确的
- 点击 保存
- 启用该工具: 将鼠标悬停在
pentest-mcp在工具列表中找到该项并点击 切换按钮 出现在右侧以启用它
### Warp AI Integration
In Warp terminal:
1. Go to **Settings** (⌘ + ,)
2. Click on **AI** in the sidebar
3. Scroll down to find **Manage MCP**
4. Click **Add MCP**
5. Paste this JSON configuration:
```json
{
"mcpServers": {
"pentest-mcp": {
"command": "python",
"args": ["-m", "pentest_mcp_server"],
"env": {
"TARGET_HOST": "192.168.1.100",
"TARGET_USER": "kali",
"TARGET_PASSWORD": "your_password"
}
}
}
}
- 点击 保存
- 重启扭曲(或:重新开始扭曲)
🔧 快速设置
设置步骤
# 1. Clone and install
git clone https://github.com/LayeSec006/pentest-mcp-server.git
cd pentest-mcp-server
pip install -e .
# 2. Configure
cp .env.example .env
# Edit .env with your target system details
# 3. Test configuration
python -c "from pentest_mcp_server.config import Config; c = Config(); print('Config loaded:', c.TARGET_HOST)"
🚀 高级功能
🎯 交互式工具支持
启动并与Metasploit Framework等复杂工具进行交互:
{
"tool": "execute",
"args": {
"session_id": "msf_session",
"command": "msfconsole -q"
}
}
与运行中的工具进行交互:
{
"tool": "send_input",
"args": {
"session_id": "msf_session",
"input": "use exploit/multi/handler"
}
}
🔄 反向Shell管理
无缝处理传入的反向Shell:
{
"tool": "execute",
"args": {
"session_id": "reverse_shell",
"command": "nc -lvp 4444"
}
}
与连接的外壳进行交互:
{
"tool": "send_input",
"args": {
"session_id": "reverse_shell",
"input": "whoami"
}
}
📊 复杂工作流自动化
支持多步骤渗透测试工作流程:
- 网络侦察 (nmap,masscan)
- 网页应用扫描 (gobuster,nikto,dirb)
- 漏洞利用 (Metasploit,自定义漏洞利用程序)
- 实施漏洞利用 (Meterpreter,权限提升)
- 数据外泄 (文件操作,隧道技术)
🛡️ 会话持久性与恢复
会话能够抵御网络中断和崩溃:
{
"tool": "recover_sessions",
"args": {}
}
主要优势:
- 即使SSH连接断开,会话仍会继续运行
- 自动重连,采用指数退避策略
- 网络问题中的状态保持
- 交互会话的完全恢复
🛠️ MCP 工具
会话管理
| 工具 | 描述 | 目的 |
|---|---|---|
create_session |
创建新的持久tmux会话 | 为渗透测试任务启动独立的工作空间 |
list_sessions |
列出所有活动会话 | 监控运行中的操作 |
kill_session |
终止特定会话 | 清理已完成的任务 |
create_session
为隔离的渗透测试操作创建一个新的持久tmux会话。
参数:
{
"session_id": "scan_network",
"shell": "bash"
}
list_sessions
列出所有活动的tmux会话及其状态。
参数:
{}
kill_session
终止特定会话并清理资源。
参数:
{
"session_id": "scan_network"
}
命令执行
| 工具 | 描述 | 目的 |
|---|---|---|
execute |
在持久会话中执行命令 | 运行渗透测试工具和脚本 |
read_output |
获取会话的当前输出 | 监控命令进度和结果 |
send_input |
向交互式工具发送输入 | 控制交互式应用程序 |
execute
在持久会话中执行命令。
{
"session_id": "scan_network",
"command": "nmap -sV 192.168.1.0/24",
"background": false
}
read_output
从会话中获取当前输出。
{
"session_id": "scan_network",
"lines": 50
}
send_input
将输入发送到交互式工具。
{
"session_id": "msf_session",
"input": "use exploit/multi/handler",
"press_enter": true
}
系统管理
get_system_status
获取系统资源使用情况和会话状态。
{}
recover_sessions
重新连接后恢复孤立会话。
{}
文件操作
upload_file
通过SFTP将文件上传到您的系统。
{
"local_path": "/path/to/local/file",
"remote_path": "/tmp/uploaded_file"
}
download_file
通过SFTP从您的系统中下载文件。
{
"remote_path": "/tmp/scan_results.xml",
"local_path": "/path/to/local/results.xml"
}
工具输出解析
parse_tool_output
解析常见的渗透测试工具输出(如nmap的XML、JSON等)。
{
"tool": "nmap",
"file_path": "/tmp/scan.xml",
"format": "xml"
}
💡 使用示例
基本网络扫描
AI: I need to scan the network 192.168.1.0/24
Tool: create_session
Args: {"session_id": "network_scan"}
Tool: execute
Args: {
"session_id": "network_scan",
"command": "nmap -sV 192.168.1.0/24 -oX /tmp/scan.xml"
}
Tool: read_output
Args: {"session_id": "network_scan"}
交互式Metasploit使用
AI: Let me start Metasploit and set up a handler
Tool: create_session
Args: {"session_id": "metasploit"}
Tool: execute
Args: {
"session_id": "metasploit",
"command": "msfconsole -q"
}
Tool: send_input
Args: {
"session_id": "metasploit",
"input": "use exploit/multi/handler"
}
Tool: send_input
Args: {
"session_id": "metasploit",
"input": "set PAYLOAD linux/x64/meterpreter/reverse_tcp"
}
Tool: send_input
Args: {
"session_id": "metasploit",
"input": "exploit"
}
并行操作
AI: I'll run multiple scans in parallel
Tool: create_session
Args: {"session_id": "nmap_scan"}
Tool: create_session
Args: {"session_id": "gobuster_scan"}
Tool: execute
Args: {
"session_id": "nmap_scan",
"command": "nmap -p- 192.168.1.5",
"background": true
}
Tool: execute
Args: {
"session_id": "gobuster_scan",
"command": "gobuster dir -u http://192.168.1.5 -w /usr/share/wordlists/dirb/common.txt",
"background": true
}
🔒 安全功能
命令过滤(可选)
服务器可以选择性地阻止危险命令:
rm -rf /- 从根目录递归删除dd if=...of=/dev/sd*- 磁盘擦除命令mkfs- 文件系统格式化- 叉炸弹和其他破坏性模式
🧪 测试
运行测试套件:
# Install test dependencies
pip install pytest pytest-asyncio pytest-mock
# Run tests
python -m pytest tests/ -v
# Run with coverage
python -m pytest tests/ --cov=pentest_mcp_server --cov-report=html
测试类别
- 单元测试单个组件测试
- 集成测试端到端工作流程测试
- 连接测试SSH和重新连接场景
- 会话测试Tmux 会话管理
📊 监控与调试
记录日志
服务器提供详细的日志记录:
import logging
logging.basicConfig(level=logging.INFO)
日志级别:
INFO连接状态,会话创建/销毁WARNING重新连接尝试,被阻止的命令ERROR连接失败,命令错误DEBUG详细的协议消息
系统状态
使用 get_system_status 监控工具:
- CPU和内存使用情况
- 活跃会话数
- 连接状态健康
- 最近的命令历史
会话恢复
在崩溃或网络问题之后:
Tool: recover_sessions
Args: {}
Response: {
"status": "success",
"recovered_sessions": [
{
"session_id": "network_scan",
"age_seconds": 1800,
"last_output": "...Nmap scan report..."
}
]
}
🔧 高级配置
资源管理
# Limit concurrent heavy operations
MAX_HEAVY_TASKS=3
# Heavy commands that count against the limit
HEAVY_COMMANDS=nmap,masscan,hydra,john,hashcat,sqlmap
连接调优
# Reconnection settings
MAX_RECONNECT_ATTEMPTS=5
RECONNECT_DELAY_BASE=2 # Exponential backoff base
# Health check interval
POLL_INTERVAL=1.0
# Default command timeout
DEFAULT_TIMEOUT=300
Tmux 自定义设置
# Custom tmux socket name
TMUX_SOCKET_NAME=mcp-pentest
# Session persistence location
TMUX_SESSION_PATH=/tmp/mcp-sessions
🐞 故障排除
常见问题
连接被拒绝
Error: Connection failed: [Errno 111] Connection refused
- 验证您的系统上是否正在运行SSH:
service ssh status - 检查防火墙规则:
ufw status - 验证配置中的主机/端口
认证失败
Error: Permission denied (publickey,password)
- 验证用户名/密码是否正确
- 检查SSH密钥权限(600)
- 启用密码认证:
PasswordAuthentication yes在/etc/ssh/sshd_config
未找到 Tmux
Error: tmux is not installed on target system
- 在你的发行版上安装tmux:
apt update && apt install tmux
会话丢失
Error: Session 'scan_network' does not exist
- 使用
recover_sessions用于查找孤儿会话的工具 - 检查系统是否已重启(会话不会在重启后保留)
调试模式
启用详细日志记录:
import logging
logging.getLogger('pentest_mcp_server').setLevel(logging.DEBUG)
logging.getLogger('asyncssh').setLevel(logging.DEBUG)
🤝 贡献(或“参与贡献”)
- 为仓库创建分支(或:克隆仓库)
- 创建一个特性分支(
git checkout -b feature/amazing-feature) - 运行测试(
python -m pytest tests/) - 提交更改(
git commit -m 'Add amazing feature') - 推送到分支(
git push origin feature/amazing-feature) - 提交一个拉取请求
开发环境设置
git clone <your-fork>
cd pentest_mcp_server
pip install -e .
pip install pytest pytest-asyncio pytest-mock
📝 许可证
这个项目采用MIT许可证授权——详见 许可证 文件中有详细信息。
⚠️ 法律免责声明
此工具仅供授权的安全测试和教育用途。用户有责任在使用此工具针对任何系统之前,确保已获得适当的授权。开发者对因使用此工具而造成的任何滥用或损害不承担责任。
🙏 致谢
- 基于 t-suganuma/ssh-connect-mcp-server 翻译为中文是:“t-suganuma/通过SSH连接MCP服务器”
- 使用……构建 asyncssh(注:这是一个专有名词,通常指一个异步SSH库或工具,直接音译为“异步SSH”可能不够准确,具体翻译需根据上下文或该工具的官方中文名称来确定,但在此处仅提供音译作为参考) 以实现更优的SSH处理
- 用途 tmux 对于持久会话
- 实施(措施/计划等) 模型上下文协议 规范(或规格)
快乐地进行渗透测试! 🔒🔓 翻译为中文是:上锁 开锁
