使用说明

项目简介

Volatility MCP Server 是一个创新的工具,旨在通过 Model Context Protocol (MCP) 协议桥接 Volatility 3 框架与大型语言模型 (LLM),如 Claude。该服务器将 Volatility 3 的强大内存取证能力转化为易于 LLM 理解和调用的工具,使得用户可以通过自然语言指令,让 LLM 客户端执行复杂的内存分析任务。这极大地降低了内存取证的技术门槛,并提升了分析效率。

主要功能点

  • 自然语言内存取证: 允许用户使用自然语言向 Claude 等 MCP 客户端提出内存分析请求。
  • 进程分析: 支持列出进程、进程树、扫描隐藏进程、查看进程命令行和DLL列表等。
  • 网络取证: 能够识别内存转储中的网络连接。
  • 恶意软件检测: 可以检测潜在的代码注入和恶意工件。
  • DLL 和文件分析: 支持分析加载的 DLL 和模块,以及扫描内存中的文件对象。
  • 自定义插件: 允许用户运行任何 Volatility 插件并自定义参数。
  • 内存转储发现: 能够自动在指定目录中查找内存转储文件。

安装步骤

  1. 克隆仓库

    git clone https://github.com/bornpresident/Volatility-MCP-Server.git
    cd Volatility-MCP-Server
  2. 安装 Python 包

    确保已安装 Python 3.10 或更高版本。然后安装必要的 Python 依赖包:

    pip install mcp httpx
  3. 配置 Volatility 路径

    编辑 'volatility_mcp_server.py' 文件,根据你的 Volatility 3 安装路径修改 'VOLATILITY_DIR' 变量。

    VOLATILITY_DIR = os.path.normpath(r"C:\path\to\volatility3") # 例如: r"C:\Users\YourUser\volatility3-2.11.0"
  4. 配置 MCP 客户端 (以 Claude Desktop 为例)

    打开 Claude Desktop 的配置文件 'claude_desktop_config.json'。该文件通常位于:

    • Windows: '%APPDATA%\Claude\claude_desktop_config.json'
    • macOS: '~/Library/Application Support/Claude/claude_desktop_config.json'

    在 'mcpServers' 字段中添加 Volatility MCP Server 的配置。如果 'mcpServers' 字段不存在,则创建它。

    {
      "mcpServers": {
        "volatility": {
          "command": "python",
          "args": [
            "/path/to/volatility_mcp_server.py"  // 修改为 volatility_mcp_server.py 的实际路径
          ],
          "env": {
            "PYTHONPATH": "/path/to/volatility3"  // 修改为 volatility3 目录的实际路径
          }
        }
      }
    }

    配置参数说明:

    • 'server name': 'volatility' (服务器名称,客户端配置中引用此名称)
    • 'command': 'python' (启动服务器的命令)
    • 'args':
      • '"/path/to/volatility_mcp_server.py"': 需要用户修改为 'volatility_mcp_server.py' 脚本的绝对路径
    • 'env':
      • 'PYTHONPATH': '"/path/to/volatility3"': 需要用户修改为 Volatility 3 框架目录的绝对路径
  5. 重启 MCP 客户端

    重启 Claude Desktop 或其他 MCP 客户端,使配置生效。

基本使用方法

配置完成后,即可在 MCP 客户端中使用自然语言指令调用 Volatility MCP Server 提供的工具进行内存取证分析。例如,在 Claude 中,你可以这样提问:

  • '"列出 C:\path\to\dump.vmem 内存转储中的所有进程"'
  • '"显示 C:\path\to\dump.vmem 中的网络连接"'
  • '"运行 malfind 检查内存转储中的代码注入"'
  • '"进程 ID 4328 中加载了哪些 DLL?"'
  • '"检查 C:\path\to\dump.vmem 中是否存在隐藏进程"'

可用工具

Volatility MCP Server 将以下 Volatility 插件作为 MCP 工具公开:

  1. 'list_available_plugins' - 显示所有可用的 Volatility 插件
  2. 'get_image_info' - 提供内存转储文件的信息
  3. 'run_pstree' - 显示进程层次结构
  4. 'run_pslist' - 列出进程列表
  5. 'run_psscan' - 扫描进程,包括可能隐藏的进程
  6. 'run_netscan' - 显示内存转储中的网络连接
  7. 'run_malfind' - 检测潜在的代码注入
  8. 'run_cmdline' - 显示进程的命令行参数
  9. 'run_dlllist' - 列出进程加载的 DLL
  10. 'run_handles' - 显示文件句柄和其他系统句柄
  11. 'run_filescan' - 扫描内存中的文件对象
  12. 'run_memmap' - 显示特定进程的内存映射
  13. 'run_custom_plugin' - 运行任何 Volatility 插件并自定义参数
  14. 'list_memory_dumps' - 在目录中查找内存转储文件

信息

分类

开发者工具