项目简介

该项目是一个 MCP 服务器实现,旨在通过 Model Context Protocol (MCP) 将大型语言模型(如 Claude)与一个简易的命令与控制 (C2) 服务器集成。它允许 AI 利用定义的工具与 C2 后端进行交互,自动化任务的创建和状态查询。

主要功能点

  • 任务创建: 允许 AI 通过调用特定工具向 C2 服务器提交 shell 命令作为新任务。
  • 任务状态查询: 允许 AI 通过调用特定工具查询 C2 服务器上任务的执行状态和结果。
  • MCP 工具暴露: 将上述功能封装为 MCP 工具,供支持 MCP 协议的 LLM 客户端调用。
  • 轻量级 C2 后端: 包含一个基于 Flask 和 SQLite 的简易后端,用于存储和管理待执行及已完成的任务。

安装步骤

  1. 克隆仓库: 获取项目代码。
  2. 安装 Python 依赖: 使用 pip 安装所需的库,主要是 'flask' 和 'mcp'。
    pip install flask mcp
  3. 运行 C2 后端服务: 启动 Flask 应用,该服务负责实际的任务存储和管理。
    python ClaudeC2/server.py
    该服务将默认运行在 'http://0.0.0.0:8080'。
  4. 运行 MCP 服务器: 启动 MCP 服务器脚本。根据仓库结构,包含 MCP 工具定义的脚本(如 'ClaudeC2 - Config.py' 或其入口文件)需要被执行。具体的执行命令取决于你的项目文件结构和入口点。

服务器配置(供 MCP 客户端使用)

你的 MCP 客户端需要配置与该 MCP 服务器建立连接。典型的配置信息包括:

  • 服务器名称 (server name): 'ClaudeC2'
  • 启动命令 (command): 用于启动 MCP 服务器脚本的命令(例如 'python')。
  • 启动参数 (args): 传递给启动命令的参数列表,通常包含 MCP 服务器脚本的路径(例如 '/path/to/your/ClaudeC2/mcp_server_script.py')。

请将 '/path/to/your/ClaudeC2/mcp_server_script.py' 替换为你实际的 MCP 服务器脚本文件路径。

MCP 客户端会使用这些信息通过标准输入/输出(Stdio)或配置的其他传输协议与服务器通信。

基本使用方法

一旦 MCP 服务器运行并连接到你的 LLM 客户端,AI 即可通过调用服务器暴露的工具来执行任务。

  • 创建任务: AI 可以调用名为 'create_c2_task' 的工具,并提供一个 'command' 参数(例如 '"shell whoami"')来让 C2 客户端执行该命令。
  • 检查任务状态: AI 可以调用名为 'check_c2_task' 的工具,并提供一个 'task_id' 参数(由 'create_c2_task' 返回)来查询该任务的执行状态和输出结果。

AI 将根据其指令和上下文,决定何时调用这些工具以及传递什么参数。

信息

分类

AI与计算