关于 Unified Memory Forensics MCP Server
面向数字取证与事件响应分析人员的内存取证 MCP 服务,结合 Rust 引擎、Python 分析器和 Volatility3。三层架构可在快速原始操作与广泛插件覆盖间分配分析任务。
主要功能
- 01Rust、Python、Volatility3 三层引擎
- 02初始化内存镜像并运行插件
- 03自动分诊与进程异常检测
- 04分析代码注入、网络和命令
- 05提取凭据并查询 VirusTotal
适用场景
- 01对内存镜像进行可疑活动分诊
- 02调查进程异常和注入代码
- 03检查网络连接与命令历史
- 04提取凭据并核查威胁指标
MCP 相关
向 MCP 客户端提供内存镜像分析、分诊、取证插件、数据提取和威胁情报工具;作为本地 stdio 服务注册。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
mem-forensics-mcp
统一内存取证 MCP 服务 —— 融合 Rust 的速度与 Vol3 的覆盖范围的多层级引擎。
架构
三层引擎会自动将每个工具路由至速度最快的后端:
LLM <-> [mem-forensics-mcp (Python)] <-> memoxide (Rust child, stdio MCP)
<-> Volatility3 (Python library)
| 层级 | 引擎 | 速度 | 覆盖范围 |
|---|---|---|---|
| 第 1 层 | Rust(memoxide) | 快 | pslist、psscan、cmdline、dlllist、malfind、netscan、cmdscan、search、readraw、rsds |
| 第 2 层 | Python 分析器 | 中 | 进程异常、C2 检测、凭据、YARA、VT 集成 |
| 第 3 层 | Volatility3 | 较慢 | 任意 vol3 插件(filescan、handles、svcscan、driverscan,……) |
安装
前置条件
# Install uv (fast Python package manager)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Ensure Python 3.10+
python3 --version
从 PyPI 安装
uv venv .venv
uv pip install --python .venv/bin/python3 mem-forensics-mcp
从源代码安装
git clone https://github.com/x746b/mem_forensics-mcp.git
cd mem_forensics-mcp
# Full install (recommended)
uv sync --extra full
# Minimal (Vol3 only, no YARA/VT)
uv sync --extra volatility3
构建 Rust 引擎(可选)
engines/memoxide/ 中提供了适用于 aarch64-linux 和 x86_64-linux 的预编译二进制文件。服务会自动检测主机架构。要从源代码构建:
# Requires Rust toolchain (https://rustup.rs)
cd engines/memoxide-src
cargo build --release
# Binary lands at engines/memoxide-src/target/release/memoxide
# The server auto-detects it (prefers local build over prebuilt)
配置 Volatility3(可选)
如果 Vol3 安装在 /opt/volatility3,系统会自动检测。否则:export VOLATILITY3_PATH="/path/to/volatility3"
验证
uv run python -m mem_forensics_mcp.server
# Should show: Rust engine: available, Volatility3: available
添加到 MCP 客户端
在 MCP 客户端的设置中,将 mem-forensics-mcp 注册为本地 stdio 服务。配置格式和位置取决于客户端。对于支持 mcpServers JSON 的客户端,请使用:
{
"mcpServers": {
"mem-forensics-mcp": {
"command": "/absolute/path/to/.venv/bin/python3",
"args": ["-m", "mem_forensics_mcp.server"]
}
}
}
将命令替换为虚拟环境中 Python 解释器的绝对路径。对于源代码检出,运行 uv sync 后路径为 /path/to/mem_forensics-mcp/.venv/bin/python3。对于 PyPI 安装,请使用安装过程中创建的 .venv。如果客户端使用其他配置格式,请通过其 MCP 服务设置输入相同的命令和参数。
如果 Volatility3 安装在自定义位置,请在服务的环境设置中将 VOLATILITY3_PATH 设为其绝对路径(例如,在 JSON 示例中使用 "env": {"VOLATILITY3_PATH": "/path/to/volatility3"})。使用客户端的 MCP 服务列表确认连接成功。
快速开始
# 1. Initialize
memory_analyze_image(image_path="/evidence/memory.raw")
# 2. Full triage
memory_full_triage(image_path="/evidence/memory.raw")
# 3. Drill down
memory_run_plugin(image_path="/evidence/memory.raw", plugin="malfind", pid=1234)
memory_analyze_image 会报告两个级别的就绪状态:
ready和session_ready:引擎已打开映像,且会话可以重复使用。raw_ready:可使用search和readraw等与操作系统无关的 Rust 操作。structured_ready:符号/配置文件数据足以支持能够感知结构的插件。
ready 仍是 session_ready 的兼容性别名;它并不表示 Volatility 的进程、网络或命令插件可以运行。在选择这些工具之前,请检查 os_type、structured_ready、capabilities 和 warnings。
要进行能够感知结构的 Linux 分析,请提供符号目录或显式 ISF 文件。Linux ISF 不会自动下载或生成:
memory_analyze_image(
image_path="/evidence/memory.lime",
symbols_root="/evidence/symbols",
# or: isf_path="/evidence/symbols/5.10.0-35-amd64.json.xz",
)
如果没有匹配的 ISF,LiME 映像仍可使用原始 search 和 readraw。分析响应会包含确切的内核标识和建议的 ISF 文件名。加载符号后,进程树会路由至 linux.pslist.PsList,命令历史会路由至 linux.bash.Bash,并可通过 memory_run_plugin 使用通用 Linux Volatility 插件。
工具参考
核心
| 工具 | 层级 | 描述 |
|---|---|---|
memory_analyze_image | 1->2 | 初始化映像,自动检测配置文件 |
memory_run_plugin | 1->3 | 运行任意插件(Rust 或 Vol3) |
memory_list_plugins | - | 列出可用插件 |
memory_list_sessions | - | 列出活动会话 |
memory_get_status | - | 显示引擎状态 |
分析
| 工具 | 层级 | 描述 |
|---|---|---|
memory_full_triage | 1+2 | 完整的自动化调查 |
memory_hunt_process_anomalies | 2 | DKOM 检测、父子进程验证 |
memory_get_process_tree | 2 | 高亮显示可疑进程的进程树 |
memory_find_injected_code | 1->2 | 代码注入 + YARA 扫描 |
memory_find_c2_connections | 1+2 | 网络 C2 检测 |
memory_get_command_history | 1+2 | 命令恢复 + 分类 |
memory_extract_credentials | 2 | 通过 Vol3 提取哈希/机密 |
提取
| 工具 | 层级 | 描述 |
|---|---|---|
memory_dump_process | 2 | 进程信息和已加载的 DLL |
memory_dump_vad | 2 | 检查内存区域详情 |
memory_list_dumpable_files | 3 | 列出缓存文件 |
威胁情报
| 工具 | 描述 |
|---|---|
vt_lookup_hash | VirusTotal 哈希查询 |
vt_lookup_ip | VirusTotal IP 信誉查询 |
vt_lookup_domain | VirusTotal 域名信誉查询 |
vt_lookup_file | 哈希文件 + VT 查询 |
示例:完整分诊输出
在 Windows 10 内存转储(Win10 19041,x64,VMware)上运行 memory_full_triage:
{
"threat_level": "critical",
"risk_score": 100,
"summary": "Processes: 115 found. Process Anomalies: 4 info-level. Network: 4 flagged of 79 connections. Commands: 56 memory fragments. Injected Code: 12 RWX regions. Correlations: 2 critical.",
"engine": "rust+python"
}
关键发现:
| 类别 | 详情 |
|---|---|
| 可疑进程 | mmc.exe 由 explorer.exe 启动,并加载来自浏览器下载内容的 .msc 文件 |
| 注入代码 | mmc.exe 中有 4 个 RWX 私有内存区域,EXCEL.EXE 中有 2 个 |
| 子进程 | dllhost.exe 由 mmc.exe 启动,且具有可执行的 RWX 区域 |
| 网络 | svchost.exe 连接到外部 IP 的 443/80 端口 |
| 关联项 | active_implant + active_c2_session 被标记为严重 |
| IOC | 自动提取可疑外部 IP |
使用经过筛选的 filescan 深入分析:
memory_run_plugin(image_path="memory.raw", plugin="filescan", filter="notepad")
# Returns: 2 of 7612 results matched (server-side grep before truncation)
相关项目
- winforensics-mcp — Windows 磁盘取证(EVTX、Registry、MFT、Prefetch、YARA、PCAP)
- mac_forensics-mcp — macOS DFIR(Unified Logs、FSEvents、Spotlight、Plists)
MIT 许可证 | xtk | 为 DFIR 社区打造。无需 Windows >)
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。