# 盘鉴 **Repository Path**: fiagainster/DiskAxe ## Basic Information - **Project Name**: 盘鉴 - **Description**: DiskForge(盘铸) —— AI驱动的Autopsy自动化磁盘取证平台,60个MCP工具让Claude Code一键完成镜像分析。 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-25 - **Last Updated**: 2026-07-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🔬 Autopsy 自动化取证平台 > 让 AI 驱动数字取证 —— 基于 Autopsy 4.23.0 的自动化磁盘取证平台。通过 **60 个 MCP 工具** 让 Claude Code 直接操作 Autopsy,支持全流程自动化取证调查。 [![License](https://img.shields.io/badge/license-Apache%202.0-blue)](LICENSE-2.0.txt) [![Java](https://img.shields.io/badge/java-17-orange)](https://openjdk.org/projects/jdk/17/) [![Docker](https://img.shields.io/badge/docker-required-2496ED)](https://www.docker.com/) [![MCP Tools](https://img.shields.io/badge/MCP%20Tools-60-brightgreen.svg)](#-mcp-工具速查) --- ## 📖 目录 - [一分钟上手](#-一分钟上手) - [什么是自动化取证](#-什么是自动化取证) - [双模式架构](#-双模式架构) - [安装与构建](#-安装与构建) - [快速使用](#-快速使用) - [MCP 工具速查(60 个)](#-mcp-工具速查60-个) - [取证工作流](#-取证工作流) - [项目结构](#-项目结构) - [常见问题](#-常见问题) - [致谢](#-致谢) --- ## 🚀 一分钟上手 ```powershell # 1. 构建镜像(首次约 30 分钟) docker compose build # 2. 放入镜像文件 cp 你的磁盘镜像.E01 ./images/ # 3. 启动 MCP 服务器 make start # 4. 在 Claude Code 中说: # "请对 images/磁盘镜像.E01 做快速分诊分析" ``` 搞定。AI 会自动创建案件、添加数据源、运行分析、生成报告。 --- ## 🤖 什么是自动化取证 传统数字取证需要调查员手动操作 Autopsy GUI,逐个模块运行、逐项查看结果。本平台将这个过程**完全自动化**: ``` 传统方式:你 → 鼠标点击 Autopsy → 等待 → 手动导出报告 本平台: 你 → 一句话描述需求 → Claude Code → 调用 60 个 MCP 工具 → 自动生成报告 ``` **适用场景**: - 🚔 公安刑侦电子数据取证 - 🏢 企业安全事件响应 - 🎓 数字取证教学与 CTF 竞赛 - 🔍 恶意软件分析辅助 --- ## 🆚 与 Hermes / 通用 AI Agent 的对比 2024-2025 年,AI 取证领域出现了多种方案。最典型的是 **Hermes**(由 Nous Research 开发)——它是一个通用 CLI AI Agent,能自主执行安全任务。还有 **Agentropix MCP**(基于 SANS SIFT 工作站),提供了 73 个 MCP 工具和确定性取证流水线。 那么,我们的 Autopsy MCP 平台有什么独特价值? ### 本质区别:文件读取 vs 数据库取证 | | Hermes / 通用 Agent | Autopsy MCP 平台 | | ----------- | -------------------------- | --------------------------------------------- | | **数据访问方式** | 逐个读取文件、`strings`/`grep` 遍历 | 数据库索引查询(毫秒级) | | **文件系统深度** | 只能看已分配文件 | 已删除恢复、$MFT 解析、ADS 检测、文件雕刻 | | **时间线分析** | 手动比较时间戳 | 自动 MACB 四时间轴重建、去噪、关联 | | **结构化制品** | 需要自己写解析器 | 内置:网页历史、邮件、通话记录、USB 记录、LNK/Shellbags/$UsnJrnl | | **哈希库比对** | 一个个文件算 MD5 | 百万级 NSRL/VirusShare 库秒查 | | **加密检测** | 无 | 自动熵分析 + 文件签名检测 | | **扩展名伪装** | 需要手动判断 | 自动检测 MIME 与扩展名不匹配 | | **YARA 规则** | 需手动安装配置 | 内置扫描引擎 | | **PE 文件分析** | 无 | PE头/熵值/ASLR/加壳/可疑API 自动检测 | | **跨盘关联** | 无 | 哈希自动交叉比对追踪文件流转 | | **规模上限** | ~几千个文件 | 数百万个文件(数据库索引) | | **监管链/审计** | 无 | ✅ NIST SP 800-86 标准 | | **法庭报告** | 需手动整理 | 一键 HTML/Excel/KML | | **工具数量** | ∞(任意命令) | **60 个 MCP 工具**(专业取证封装) | ### 互补而非替代 Hermes 和通用 AI Agent 的核心优势是**灵活**——它们没有固定工具集,可以随时组合 Linux 命令解决问题。这在 CTF 中极为有效(问题明确、镜像小)。 本平台的定位不同:**面对实战中的 1TB 企业硬盘、几十万个文件、复杂的 NTFS 文件系统结构**,需要有专业取证引擎做底层支撑。Autopsy 的数据库索引、文件雕刻、哈希比对、时间线重建是通用 Agent 做不到的。 **理想方案是二者共存**:AI Agent 作为"大脑"调度工具,Autopsy MCP 作为"取证实验室"提供专业分析能力。 > 参见:[Hermes Agent 逆向工程自动化案例 (ctfiot.com)](https://www.ctfiot.com/311576.html) · [Agentropix MCP DFIR 框架 (devpost.com)](https://devpost.com/software/agentropix-mcp-agentic-forensics-incident-response) --- ## 🏗 双模式架构 ``` ┌──────────────────────────────────────────────────────────────┐ │ Claude Code (AI) │ ├──────────────────────────────────────────────────────────────┤ │ MCP 桥接器 (STDIO) │ Direct TSK Mode │ │ 60 个 MCP 工具 │ Python + Sleuth Kit │ │ 完整 Autopsy 功能 │ 零依赖回退 │ ├─────────────────────────────┼─────────────────────────────────┤ │ Autopsy NetBeans 平台 │ fls / icat / fsstat / │ │ Javalin HTTP :8743 │ tsk_utils.py / triage.py / │ │ + McpBootstrap 自动启动 │ pe_analyzer.py / deep_search │ └─────────────────────────────┴─────────────────────────────────┘ │ Docker 容器 │ └────────────────────────────────────────────────────────────────┘ ``` | | MCP Mode | Direct TSK Mode | | -------- | ------------------- | ----------------------- | | **启动方式** | `make start` | `make triage IMAGE=...` | | **工具数量** | **60 个** MCP 工具 | 6 个 Python 脚本 | | **适用场景** | 完整调查、监管链、AI 驱动 | 快速分诊、无 GUI、手动分析 | | **前置条件** | MCP 服务器 + STDIO 桥接器 | 镜像文件可读 | --- ## 📦 安装与构建 ### 前置要求 - **Docker Desktop**([下载](https://www.docker.com/products/docker-desktop/)) - **8GB+ 可用内存**(给 Docker 至少 4GB) - **20GB+ 可用磁盘空间**(镜像约 10GB) ### 构建 ```powershell cd "自动化磁盘取证" docker compose build ``` 首次构建约 20-40 分钟(需要编译 Sleuth Kit 和 Autopsy),后续增量构建 2-5 分钟。 ### 启动 MCP 服务器 ```powershell # 后台启动(用于 MCP Mode) make start # 检查状态 make status ``` --- ## ⚡ 快速使用 ### 方式一:Makefile(推荐) ```bash make help # 查看所有命令 make start # 启动 MCP 服务器 make stop # 停止 make status # 检查服务器状态 make shell # 进入容器交互式 shell # 取证操作 make triage IMAGE=./images/disk.E01 # 快速分诊 make recover IMAGE=./images/disk.E01 ARGS="--all-deleted" # 文件恢复 ``` ### 方式二:Docker 直接使用 ```bash # 进入容器 docker compose run --rm --entrypoint bash autopsy # 容器内使用 TSK 工具 fls -r /images/disk.E01 icat /images/disk.E01 40 > /reports/file.bin # 使用增强的 Python 分析脚本 python3 /opt/scripts/triage.py /images/disk.E01 python3 /opt/scripts/pe_analyzer.py /path/to/suspicious.exe --json python3 /opt/scripts/deep_search.py /images/disk.E01 --pattern "*.docx" python3 /opt/scripts/powershell_recovery.py /images/disk.E01 --recover-ps1 ``` ### 方式三:MCP Mode(配合 Claude Code) ```bash # 1. 启动 MCP 服务器 make start # 2. 在 Claude Code 中直接对话 # "帮我分析这个磁盘镜像,找出所有可疑文件" # Claude Code 会自动调用 60 个 MCP 工具完成全流程 ``` --- ## 🔧 MCP 工具速查(60 个) ### 基础操作(46 个)
点击展开基础工具 **案件管理**:`create_case` · `open_case` · `close_case` · `get_case_summary` · `get_case_metrics` **数据源**:`add_data_source` · `query_data_sources` · `list_data_sources_full` · `get_data_source_tree` **文件查询**:`query_files` · `get_file_content` · `export_file` · `summarize_files` · `tag_file` · `query_tags` **取证分析**:`run_ingest` · `run_triage` · `get_ingest_progress` · `cancel_ingest` · `list_ingest_profiles` · `list_ingest_modules` **制品查询**:`query_data_artifacts` · `query_analysis_results` **时间线**:`query_timeline` · `summarize_timeline` **搜索**:`search_raw_content` · `lookup_hash` **通信**:`get_communications_accounts` · `get_account_relationships` **系统**:`get_hosts` · `get_os_accounts` · `get_data_source_tree` · `get_object_children` **报告**:`generate_report` · `list_reports` · `get_report_content` **监管链**:`register_evidence` · `log_custody_event` · `get_custody_log` · `verify_evidence` **审计**:`add_examiner_note` · `get_examiner_notes` · `get_audit_trail` **专项**:`get_usb_timeline` · `get_execution_history` · `get_browser_summary`
### 🆕 v2.0 增强工具(14 个) | 工具 | 类别 | 实战场景 | | ---------------------------- | ------- | ------------------------------------ | | `quick_confidential_scan` | 涉密检查 | 🔴 自动筛选Office/PDF/压缩包,按优先级排序 | | `unified_timeline` | 时间线 | 🔴 文件+USB+网页+邮件+执行 五合一时间线 | | `detect_timestamp_anomalies` | 时间线 | 🔴 检测时间戳篡改/零值/未来时间 | | `get_browser_full_report` | 浏览器 | 🔴 Chrome/Firefox/Edge/360/QQ 一键汇总 | | `query_lnk_files` | Windows | 🟡 LNK 快捷方式访问历史 | | `query_shellbags` | Windows | 🟡 文件夹访问历史(即使已删除) | | `query_mountpoints` | Windows | 🟡 外部设备/网络共享挂载记录 | | `query_usn_journal` | Windows | 🟡 NTFS 文件变更日志(创建/删除/重命名) | | `recover_powershell_history` | Windows | 🟡 PSReadline + .ps1 + Prefetch 多源恢复 | | `trace_downloaded_file` | 追踪 | 🟡 从下载/邮件 → 文件系统 追踪文件改名 | | `cross_drive_correlation` | 追踪 | 🟡 跨盘哈希比对追踪文件流转 | | `trace_device_activity` | USB | 🟡 特定设备在特定时间段的文件操作 | | `deep_search_file` | 搜索 | 🟡 已分配 + 未分配空间 + MFT 残留 | | `analyze_pe_file` | 分析 | 🟡 PE头/编译时间/熵值/ASLR/加壳检测 | > **所有工具通过 MCP STDIO 桥接器自动调用**,无需手动指定 JSON-RPC 格式。Claude Code 的 `.mcp.json` 配置会自动处理协议转换。 > 完整工具定义参见 `CLAUDE.md` 和 `TskQueryService.listTools()`。 --- ## 📋 取证工作流 ### 流程 1:快速分诊(5 分钟) ``` create_case → add_data_source → run_triage → get_case_metrics → quick_confidential_scan → query_analysis_results(HASHSET_HIT/ENCRYPTION/YARA) → detect_timestamp_anomalies → 输出分诊报告 ``` ### 流程 2:完整调查(NIST SP 800-86) ``` Phase 1 - 收集: register_evidence → create_case → add_data_source → verify_evidence Phase 2 - 检查: run_ingest → summarize_files → get_case_metrics Phase 3 - 分析: unified_timeline → get_usb_timeline → get_execution_history → query_lnk_files → query_shellbags → query_usn_journal → recover_powershell_history → get_browser_full_report → trace_downloaded_file → cross_drive_correlation → search_raw_content → deep_search_file Phase 4 - 报告: generate_report(html+excel) → get_audit_trail → get_custody_log ``` ### 流程 3:针对性调查 ``` open_case → query_files(特定条件) → analyze_pe_file → get_file_content → export_file → tag_file → add_examiner_note → generate_report ``` --- ## 📁 项目结构 ``` 自动化磁盘取证/ ├── autopsy/ # Autopsy 4.23.0 源码(已改造) │ └── Core/src/.../ │ ├── headless/ # 无头操作服务(HeadlessOperations) │ ├── mcp/ # MCP 服务器(60 个工具,含 UsnJrnlParser) │ └── commandlineingest/ # CLI 命令行系统 │ ├── scripts/ # 🆕 辅助取证脚本(Python) │ ├── tsk_utils.py # TSK Python 封装库(含 PE检测/USN解析/PS恢复) │ ├── triage.py # 快速分诊 │ ├── recover.py # 文件恢复 │ ├── pe_analyzer.py # 🆕 PE 文件分析 │ ├── deep_search.py # 🆕 深度搜索(未分配+MFT+USN) │ └── powershell_recovery.py # 🆕 PowerShell 历史恢复 │ ├── docs/ # 技术文档(含 31 项优化计划) ├── reports/ / cases/ / images/ # 挂载目录 │ ├── Makefile # 一键操作入口 ├── Dockerfile # 多阶段 Docker 构建 ├── docker-compose.yml # Docker 服务编排 ├── docker-entrypoint.sh # 容器入口脚本 ├── .env # 环境变量 │ ├── .claude/ # Claude Code 配置 │ ├── settings.json # 项目权限与钩子 │ └── skills/ # 4 个取证技能(含新工具) │ ├── .mcp.json # MCP STDIO 桥接器配置 ├── CLAUDE.md # AI 项目指令(含 60 工具速查表) └── README.md # 本文件 ``` --- ## ❓ 常见问题 ### Docker 构建失败? ```bash # 最常见原因:网络波动导致 npm install 失败 # v2.0.1 已修复:node_modules 预置在源码中,Docker 构建时跳过网络下载 docker compose build # 修改 Java 源码后增量构建约 25 分钟(TSK 编译 + apt 层缓存命中) ``` ### MCP 服务器连不上? ```bash # 检查状态 make status curl -s http://127.0.0.1:8743/mcp # HTTP 401 → 服务器正常运行(需要 token 认证) # HTTP 000 → 启动失败,查 Docker 日志:docker compose logs --tail=50 ``` ### 容器启动后 MCP 工具不可用? 确认 `.mcp.json` 配置正确,且 `settings.local.json` 已启用 `autopsy` MCP server。MCP 通过 STDIO 桥接器(`node autopsy/Tools/autopsy-mcp-stdio/autopsy-mcp-stdio.js`)通信。 **自动恢复机制**:桥接器内置指数退避重试(最多 10 次,总计 ~173s)+ 后台恢复循环(每 5s 轮询)。容器启动后通常 10 秒内自动恢复全部 60 个工具。 **手动验证**: ```bash # 自检(无需设置环境变量,自动检测 .mcp/) node autopsy/Tools/autopsy-mcp-stdio/autopsy-mcp-stdio.js --test ``` ### create_case / open_case 超时? Java NetBeans 平台冷启动时案件操作可能耗时 30-60 秒。桥接器已配置 **120s 超时 + 3 次重试**(总计约 8 分钟覆盖)。如持续超时: ```bash docker logs autopsy-forensics --tail 30 cat .mcp/mcp-stdio.log ``` ### MCP 桥接器进程意外终止? Claude Code 当前**不会自动重启** MCP STDIO 桥接器进程。如果桥接器被 kill 或异常退出,MCP 工具会全部变为不可用。 **这是 Claude Code 的 MCP 客户端层面的限制,不是桥接器本身的问题。** 桥接器内部已做好崩溃防护(`uncaughtException`/`unhandledRejection` 不退出),但外部强制 kill(如 `taskkill`)无法防御。 **恢复方法**:重启 Claude Code 会话即可。 ### 不想用 MCP? 直接用 Direct Mode: ```bash make triage IMAGE=./images/disk.E01 ``` ### 内存不足? 编辑 `docker-compose.yml` 中的 `JAVA_OPTS=-Xmx4g`,降低为 `-Xmx2g`。 ### 镜像文件放哪里? 放到 `./images/` 目录,Docker 自动挂载为 `/images/`(只读)。支持 E01、DD、VMDK、VHD 格式。 --- ## 🙏 致谢 ### Autopsy 开源团队 本平台基于 **[Autopsy](https://www.sleuthkit.org/autopsy/)** 4.23.0 改造,感谢以下开源项目和团队: | 项目 | 用途 | 致谢 | | -------------------------- | ---------------- | -------------------------------------------------------------- | | **Autopsy** | 数字取证平台核心 | Brian Carrier & [Basis Technology](https://www.basistech.com/) | | **The Sleuth Kit (TSK)** | 底层文件系统取证库 | [sleuthkit.org](https://www.sleuthkit.org/) | | **Apache NetBeans** | 富客户端平台 (RCP v15) | [Apache Software Foundation](https://netbeans.apache.org/) | | **Javalin** | 轻量级 HTTP 服务器 | [javalin.io](https://javalin.io/) | | **Model Context Protocol** | AI-工具交互协议 | [Anthropic](https://www.anthropic.com/) | 特别感谢 **Brian Carrier** (@carrier) 和 **Sleuth Kit Labs** 二十年来在开源数字取证领域的卓越贡献。 > *"We stand on the shoulders of giants."* ### 许可证 本项目继承 Autopsy 的 [Apache License 2.0](LICENSE-2.0.txt)。 ---

Made with ❤️ for the digital forensics community