项目简介

Volatility3 MCP服务器是一个基于 Model Context Protocol (MCP) 构建的后端应用,它将强大的内存取证框架 Volatility3 的功能通过标准化的 MCP 协议暴露给 LLM 客户端,例如 Claude Desktop 和 Cursor。这使得用户可以通过自然语言与 LLM 交互,间接地利用 Volatility3 进行复杂的内存分析任务,例如恶意软件检测、进程分析和网络连接调查等。该项目旨在降低内存取证的技术门槛,使非专业用户也能利用 LLM 的自然语言处理能力进行安全分析。

主要功能点

  • 内存镜像分析: 支持 Windows 和 Linux 内存镜像的分析。
  • 进程信息查看: 列出并检查内存镜像中的运行进程,识别可疑活动。
  • 网络连接分析: 分析网络连接,检测潜在的命令与控制服务器。
  • YARA 规则扫描: 使用 YARA 规则扫描内存,检测已知的恶意软件特征。
  • 插件化扩展: 支持 Volatility3 丰富的插件,可灵活扩展分析能力。
  • 跨平台客户端支持: 可以通过 Claude Desktop 和 Cursor 等 MCP 客户端进行访问。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/Kirandawadi/volatility3-mcp
    cd volatility3-mcp
  2. 创建并激活虚拟环境:

    python -m venv environ
    source environ/bin/activate
  3. 安装依赖:

    pip install -r requirements.txt

服务器配置

对于 Claude Desktop 客户端:

在 Claude Desktop 的配置文件 'claude_desktop_config.json' 中,添加以下 'mcpServers' 配置。请根据实际情况修改 'command' 和 'args' 中的路径,指向您虚拟环境中的 Python3 解释器和 'bridge_mcp_volatility.py' 脚本的绝对路径。

{
  "mcpServers": {
    "volatility3": {
      "command": "absolute/path/to/virtual/environment/bin/python3",
      "args": [
        "absolute/path/to/volatility3-mcp/bridge_mcp_volatility.py"
      ]
    }
  }
}

配置参数说明:

  • '"volatility3"': 为该 MCP 服务器自定义的名称,在 Claude Desktop 中用于标识和选择该服务器。
  • '"command"': Python3 解释器的绝对路径,需要指向您在步骤 2 中创建的虚拟环境中的 Python3 解释器。
  • '"args"': 启动 'bridge_mcp_volatility.py' 脚本所需的参数,这里只需要脚本的绝对路径。

对于 Cursor 客户端:

  1. 启动 SSE 服务器: 在克隆的仓库目录下,运行以下命令启动 SSE 服务器。您可以根据需要修改主机地址和端口。

    python3 start_sse_server.py --host 127.0.0.1 --port 8080

    启动成功后,终端会显示 Cursor 需要配置的 SSE URL,例如 'http://127.0.0.1:8080/sse'。

  2. 配置 Cursor MCP 服务器: 在 Cursor 编辑器中,打开设置 ('Features' -> 'MCP Servers'),点击 "Add Server",然后添加一个新的 MCP 服务器,URL 设置为上一步中启动 SSE 服务器后终端输出的 SSE URL (例如 'http://127.0.0.1:8080/sse')。

基本使用方法

配置完成后,您可以在 Claude Desktop 或 Cursor 中,通过自然语言指令调用 Volatility3 MCP 服务器提供的工具进行内存分析。例如,您可以询问:

  • "使用 volatility3 分析这个内存镜像文件,先初始化镜像文件,文件路径是 '/path/to/your/memory_dump.mem'" (Claude Desktop) 或 通过 Cursor Composer 的 Agent 模式进行类似指令的交互。
  • "列出内存镜像中的所有进程"
  • "检查 PID 为 XXX 的进程打开了哪些文件句柄"
  • "扫描内存中是否有恶意软件特征"
  • "列出所有可用的 volatility3 插件"

LLM 客户端会将您的自然语言指令转换为对 MCP 服务器工具的调用,并将结果返回给您。

请注意,首次使用前,需要先使用 'initialize_memory_file' 工具初始化内存镜像文件。

可用工具 (Tools)

  • initialize_memory_file: 初始化内存镜像文件,必须首先调用此工具。
  • detect_os: 检测内存镜像的操作系统类型。
  • list_plugins: 列出所有可用的 Volatility3 插件。
  • get_plugin_info: 获取指定插件的详细信息。
  • run_plugin: 运行任意 Volatility3 插件,支持自定义参数。
  • get_processes: 获取内存镜像中的进程列表。
  • get_network_connections: 获取网络连接信息。
  • list_process_open_handles: 列出指定进程打开的文件句柄。
  • scan_with_yara: 使用 YARA 规则扫描内存中的恶意软件。

信息

分类

AI与计算