x746b/winforensics-mcp

GitHub: x746b/winforensics-mcp

运行在KALI Linux上的Windows数字取证MCP服务器,通过AI辅助实现全面的事件响应和威胁狩猎能力。

Stars: 11 | Forks: 3

WinForensics MCP # Windows Forensics MCP 服务器 ## 相关项目 - **[mem_forensics-mcp](https://github.com/x746b/mem_forensics-mcp)** - 统一内存取证 MCP 服务器 - 结合 Rust 速度与 Vol3 覆盖率的多层引擎 - **[mac_forensics-mcp](https://github.com/x746b/mac_forensics-mcp)** - macOS DFIR - 统一日志、FSEvents、Spotlight、Plists、SQLite 数据库、扩展属性 ## 功能特性 ### 核心取证 | 类别 | 能力 | |----------|--------------| | **EVTX 日志** | 解析 Windows 事件日志,支持过滤、搜索和预置安全查询 | | **注册表** | 分析 SAM, SYSTEM, SOFTWARE, SECURITY, NTUSER.DAT 配置单元 | | **远程收集** | 通过 WinRM 收集工件(密码或哈希传递) | ### 执行痕迹 | 类别 | 能力 | |----------|--------------| | **PE 分析** | 静态分析,包含哈希 (MD5/SHA1/SHA256/imphash)、导入、导出、壳检测 | | **Prefetch** | 执行证据,包含运行次数、时间戳、加载的文件 | | **Amcache** | 来自 Amcache.hve 的 SHA1 哈希和首次发现时间戳 | | **SRUM** | 来自 SRUDB.dat 的应用程序资源使用、CPU 时间、网络活动 | ### 文件系统痕迹 | 类别 | 能力 | |----------|--------------| | **MFT** | 主文件表解析,具备反时间戳伪造检测 | | **USN Journal** | 用于文件操作和已删除文件恢复的变更日志 | | **Timeline** | 来自 MFT, USN, Prefetch, Amcache, EVTX 的统一时间线 | ### 用户活动 | 类别 | 能力 | |----------|--------------| | **浏览器** | Edge, Chrome, Firefox 历史记录和下载 | | **LNK 文件** | 用于最近访问文件的 Windows 快捷方式分析 | | **ShellBags** | 文件夹导航历史,具备可疑路径检测 | | **RecentDocs** | 基于注册表的最近文档跟踪 | ### 网络取证 | 类别 | 能力 | |----------|--------------| | **PCAP 分析** | 解析 PCAP/PCAPNG 文件 - 会话、DNS 查询、HTTP 请求、可疑连接 | ### API Monitor 捕获分析 | 类别 | 能力 | |----------|--------------| | **APMX 解析** | 解析 [API Monitor](http://www.rohitab.com/apimonitor) 捕获 (.apmx64/.apmx86) - 进程元数据、API 调用提取、参数值 | | **模式检测** | 从捕获的 API 调用序列中检测注入、挖空、凭据转储及其他攻击模式,并映射 MITRE ATT&CK | | **句柄关联** | 跟踪跨调用的句柄值以重建攻击链 (OpenProcess -> VirtualAllocEx -> WriteProcessMemory -> CreateRemoteThread) | | **注入分析** | 提取增强的注入链详情:目标 PID/进程、shellcode 大小、分配地址、技术分类 | | **API 知识库** | 26,944 个 Windows API 定义,包含参数签名、DLL 映射和类别浏览 | ### 恶意软件检测 | 类别 | 能力 | |----------|--------------| | **YARA 扫描** | 来自 [signature-base](https://github.com/Neo23x0/signature-base) 的 718 条规则 - APT、勒索软件、Webshell、黑客工具 | | **VirusTotal** | 哈希/IP/域名信誉查询,支持缓存和速率限制(支持免费层) | | **DiE 集成** | 通过 Detect It Easy 检测壳 (UPX, Themida, VMProtect)、编译器、.NET、安装程序 | ### 编排器 | 工具 | 功能 | |------|--------------| | `investigate_execution` | 关联 Prefetch + Amcache + SRUM 以回答“此二进制文件是否被执行过?” | | `investigate_user_activity` | 关联 Browser + ShellBags + LNK + RecentDocs 以生成用户活动时间线 | | `hunt_ioc` | 在所有工件源中搜索 IOC(哈希/文件名/IP/域名)+ 可选 YARA 扫描 | | `build_timeline` | 从多个来源构建统一取证时间线 | ### 实用工具 | 工具 | 功能 | |------|--------------| | `ingest_parsed_csv` | 导入 Eric Zimmerman 工具的 CSV 输出 (MFTECmd, PECmd, AmcacheParser) | ## 安装 ### 前置条件 ``` # 安装 uv (快速 Python 包管理器) curl -LsSf https://astral.sh/uv/install.sh | sh source ~/.bashrc # 确保 Python 3.10+ python3 --version ``` ### 从 PyPI 安装 ``` uv tool install winforensics-mcp ``` ### 从源码安装 ``` git clone https://github.com/x746b/winforensics-mcp.git cd winforensics-mcp # 使用 uv 安装 (推荐) uv sync # 或者安装所有可选 extras uv venv && source .venv/bin/activate uv pip install -e ".[all]" ``` ### 验证 ``` uv run python -m winforensics_mcp.server # 应正常启动且无报错 (按 Ctrl+C 退出) ``` ## 添加到 Claude CLI 从 PyPI 安装 ``` claude mcp add winforensics-mcp --scope user -- uv run winforensics-mcp ``` 从源码安装 ``` claude mcp add winforensics-mcp \ --scope user \ -- uv run --directory /path/to/winforensics-mcp python -m winforensics_mcp.server ``` 验证: ``` claude mcp list # 应显示 winforensics-mcp ``` ## LLM 集成 (CLAUDE.md) 对于 AI 辅助的取证分析,请将 [`CLAUDE.md`](CLAUDE.md) 包含在您的案例目录中。它提供: - **编排器优先指导** - 确保 LLM 在使用低层解析器之前先使用高层工具 - **Token 效率** - 通过正确的工具选择降低 50%+ 的 API 成本 - **调查工作流** - 确保分析一致性的分步方法论 ### 使用 将 `CLAUDE.md` 复制到您的案例目录: ``` cp /path/to/winforensics-mcp/CLAUDE.md /your/case/directory/ # 编辑 CLAUDE.md 中的路径以匹配你的情况 ``` LLM 将自动遵循编排器优先方法: | 问题 | 使用的编排器 | |----------|------------------| | "malware.exe 是否被执行过?" | `investigate_execution` | | "用户做了什么?" | `investigate_user_activity` | | "在任何地方查找此哈希" | `hunt_ioc` | | "构建事件时间线" | `build_timeline` | ## 快速入门示例 ### 此二进制文件是否被执行过? ``` Investigate if mimikatz.exe was executed on the system at /mnt/evidence ``` `investigate_execution` 编排器检查 Prefetch、Amcache 和 SRUM: ``` { "target": "mimikatz.exe", "execution_confirmed": true, "confidence": "HIGH", "evidence": [ {"source": "Prefetch", "finding": "Executed 3 times, last at 2024-03-15T14:23:45Z"}, {"source": "Amcache", "finding": "SHA1: abc123..., First seen: 2024-03-14T09:00:00Z"}, {"source": "SRUM", "finding": "Network: 15.2 MB sent; Foreground: 47 seconds"} ] } ``` ### 在所有工件中搜寻 IOC ``` Hunt for the hash 204bc44c651e17f65c95314e0b6dfee586b72089 in /mnt/evidence ``` `hunt_ioc` 工具搜索 Prefetch, Amcache, SRUM, MFT, USN, Browser, EVTX,以及可选的 YARA: ``` { "ioc": "204bc44c651e17f65c95314e0b6dfee586b72089", "ioc_type": "sha1", "found": true, "sources_with_hits": ["Amcache", "MFT"], "findings": [ {"source": "Amcache", "matches": 1, "details": "bloodhound.exe"}, {"source": "MFT", "matches": 1, "details": "Users\\Admin\\Downloads\\bloodhound.exe"} ] } ``` ## 工具参考 ### 编排器(高层调查) | 工具 | 描述 | |------|-------------| | `investigate_execution` | 关联 Prefetch/Amcache/SRUM 以证明二进制文件执行 | | `investigate_user_activity` | 关联 Browser/ShellBags/LNK/RecentDocs 以查看用户活动 | | `hunt_ioc` | 在所有工件中搜寻 IOC(哈希/文件名/IP/域名);`yara_scan=True` 添加 YARA 威胁情报 | | `build_timeline` | 从多个工件来源构建统一时间线 | ### 执行痕迹 | 工具 | 描述 | |------|-------------| | `file_analyze_pe` | 静态 PE 分析 - 哈希、导入、导出、壳检测 | | `disk_parse_prefetch` | 解析 Prefetch 以获取执行证据 | | `disk_parse_amcache` | 解析 Amcache.hve 以获取 SHA1 哈希和时间戳 | | `disk_parse_srum` | 解析 SRUDB.dat 以获取应用程序资源和网络使用情况 | ### 恶意软件检测 (YARA) | 工具 | 描述 | |------|-------------| | `yara_scan_file` | 使用 718 条 YARA 规则扫描文件 (Mimikatz, CobaltStrike, webshells, APT, 勒索软件) | | `yara_scan_directory` | 批量扫描目录以查找恶意软件 | | `yara_list_rules` | 列出可用/内置的 YARA 规则 | ### 威胁情报 | 工具 | 描述 | |------|-------------| | `vt_lookup_hash` | 在 VirusTotal 上查找文件哈希 (MD5/SHA1/SHA256) | | `vt_lookup_ip` | 获取 IP 地址信誉和地理位置 | | `vt_lookup_domain` | 获取域名信誉和分类 | | `vt_lookup_file` | 计算文件哈希并在 VirusTotal 上查找 | ### 网络取证 (PCAP) | 工具 | 描述 | |------|-------------| | `pcap_get_stats` | 获取 PCAP 统计信息 - 数据包计数、协议、主要通信者 | | `pcap_get_conversations` | 提取带有字节计数的 TCP/UDP 会话 | | `pcap_get_dns` | 提取 DNS 查询和响应 | | `pcap_get_http` | 提取带有 URL、方法、User-Agent 的 HTTP 请求 | | `pcap_search` | 在数据包负载中搜索字符串或正则表达式模式 | | `pcap_find_suspicious` | 检测 C2 指标、信标、DNS 隧道 | ### API Monitor 捕获分析 (APMX) | 工具 | 描述 | |------|-------------| | `apmx_parse` | 解析 .apmx64/.apmx86 捕获 - 进程信息、模块、调用计数 | | `apmx_get_calls` | 提取 API 调用,支持过滤、分页和时间范围 | | `apmx_get_call_details` | 包含参数值、返回值、时间戳的详细记录 | | `apmx_detect_patterns` | 检测攻击模式(注入、挖空、凭据转储)及 MITRE ATT&CK ID | | `apmx_correlate_handles` | 跟踪跨 API 调用的句柄生产者/消费者链 | | `apmx_get_injection_info` | 增强的注入链提取(目标 PID、shellcode 大小、技术) | | `apmx_get_calls_around` | 特定记录周围的调用上下文窗口 | | `apmx_search_params` | 在所有记录中搜索特定参数值 | | `api_analyze_imports` | 完整的 PE 导入分析,包含模式检测和 MITRE ATT&CK 映射 | | `api_detect_patterns` | 从 PE 导入表检测攻击模式 | | `api_lookup` | 查找 Windows API 签名(26,944 个 API,含参数、DLL、类别) | | `api_search_category` | 按类别浏览 API(如 "Process Injection", "File Management") | ### 壳检测 | 工具 | 描述 | |------|-------------| | `die_analyze_file` | 分析文件以查找壳、编译器、保护器、.NET | | `die_scan_directory` | 批量扫描目录以查找加壳可执行文件 | | `die_get_packer_info` | 获取壳信息(难度、脱壳工具) | ### 文件系统 | 工具 | 描述 | |------|-------------| | `disk_parse_mft` | 解析 $MFT,具备反时间戳伪造检测 | | `disk_parse_usn_journal` | 解析 $J 以获取文件操作和已删除文件 | ### 用户活动 | 工具 | 描述 | |------|-------------| | `browser_get_history` | 解析 Edge/Chrome/Firefox 历史记录和下载 | | `user_parse_lnk_files` | 解析 Windows 快捷方式以获取目标路径 | | `user_parse_shellbags` | 解析 ShellBags 以获取文件夹导航历史 | ### 事件日志 | 工具 | 描述 | |------|-------------| | `evtx_list_files` | 列出目录中的 EVTX 文件 | | `evtx_get_stats` | 获取事件计数、时间范围、Event ID 分布 | | `evtx_search` | 使用过滤器搜索(时间、Event ID、关键字) | | `evtx_security_search` | 预置的安全事件搜索(登录、进程创建等) | | `evtx_attack_summary` | 用于快速分类的紧凑 TSV 摘要 - 每个事件一行,仅包含攻击相关列 | | `evtx_explain_event_id` | 获取 Event ID 描述 | ### 注册表 | 工具 | 描述 | |------|-------------| | `registry_get_key` | 获取特定键和值 | | `registry_search` | 按模式搜索值 | | `registry_get_persistence` | 获取 Run 键和服务 | | `registry_get_users` | 从 SAM 获取用户帐户 | | `registry_get_usb_history` | 获取 USB 设备历史 | | `registry_get_system_info` | 获取 OS 版本、主机名、时区 | | `registry_get_network` | 获取网络配置 | ### 实用工具 | 工具 | 描述 | |------|-------------| | `ingest_parsed_csv` | 导入 Eric Zimmerman CSV 输出 (MFTECmd, PECmd, AmcacheParser, SrumECmd) | | `forensics_list_important_events` | 按通道列出重要的 Event ID | | `forensics_list_registry_keys` | 按类别列出取证表键 | ### 远程收集 | 工具 | 描述 | |------|-------------| | `remote_collect_artifacts` | 通过 WinRM 收集工件(密码或哈希传递) | | `remote_get_system_info` | 获取远程系统信息 | ## 配置 ### VirusTotal API 密钥 ``` # 选项 1:环境变量 export VIRUSTOTAL_API_KEY="your-api-key-here" # 选项 2:配置文件 mkdir -p ~/.config/winforensics-mcp echo "your-api-key-here" > ~/.config/winforensics-mcp/vt_api_key ``` 在 [virustotal.com](https://www.virustotal.com/gui/join-us) 获取您的免费 API 密钥。免费层限制速率为 4 次请求/分钟;客户端会处理速率限制并将结果缓存 24 小时。 ## 故障排除 ### DiE (Detect It Easy) 未找到 ``` # Debian/Ubuntu sudo apt install detect-it-easy # 或者从 https://github.com/horsicq/DIE-engine/releases 下载 ``` ### 移除 MCP 服务器 ``` claude mcp remove winforensics-mcp --scope user ``` ## 许可证 致谢:[omerbenamram/evtx](https://github.com/omerbenamram/evtx) (Rust EVTX 解析器), [Rohitab Batra](http://www.rohitab.com/apimonitor) (API Monitor), [Neo23x0/signature-base](https://github.com/Neo23x0/signature-base) (YARA 规则), [horsicq/DIE-engine](https://github.com/horsicq/DIE-engine) (Detect It Easy) MIT 许可证 | xtk | 为 DFIR 社区构建。无需 Windows >)
标签:Amcache, DAST, DNS 解析, Evtx日志, HTTPS请求, HTTP工具, KALI Linux, Kali工具, MCP服务器, MFT解析, Mr. Robot, PE分析, Prefetch, SecList, ShellBags, SRUM, USN Journal, Windows取证, 内存取证, 加密文件系统, 后渗透, 域渗透, 子域名变形, 库, 应急响应, 恶意软件分析, 搜索语句(dork), 数字取证, 无线安全, 注册表分析, 电子数据取证, 痕迹分析, 网络安全审计, 自动化脚本, 远程取证, 逆向工具