mac_forensics-mcp
用于macOS数字取证和事件响应(DFIR)的MCP(模型上下文协议)服务器。
概述
此MCP服务器为macOS分类收集提供了结构化的取证分析工具,减少了调查LLM事件时的上下文开销。
主要优势:
- 结构化查询,而不是通过大量文件的原始grep
- 自动时间戳归一化(Mac绝对时间→ UTC)
- 预构建的安全事件检测模式
- 交叉伪影相关性和时间线构建
- 分页以避免上下文溢出
- 发现文物,了解可用物品
23工具 涵盖:统一日志、FSEvents、Spotlight、Plists、SQLite数据库、扩展属性、系统日志等。
安装
cd /opt/macOS/mac_forensics-mcp
# Create virtual environment and install dependencies
uv venv
uv pip install -e .Claude代码配置
选项1:使用 claude mcp add (推荐)
# Add to user settings (available in all projects)
claude mcp add mac-forensics -s user -- /opt/macOS/mac_forensics-mcp/.venv/bin/python -m mac_forensics_mcp.server
# Or add to current project only
claude mcp add mac-forensics -- /opt/macOS/mac_forensics-mcp/.venv/bin/python -m mac_forensics_mcp.server要验证是否已添加:
claude mcp list要删除:
claude mcp remove mac-forensics -s user选项2:手动JSON配置
增添 ~/.claude/settings.json (用户级别)或 .claude/settings.json (项目层面):
{
"mcpServers": {
"mac-forensics": {
"command": "/opt/macOS/mac_forensics-mcp/.venv/bin/python",
"args": ["-m", "mac_forensics_mcp.server"],
"env": {}
}
}
}可用工具(23)
发现
| 工具 | 说明 |
|---|---|
mac_list_artifacts | 在分类集合中发现可用工件 |
统一日志
| 工具 | 说明 |
|---|---|
mac_unified_logs_search | 使用正则表达式、过滤器和时间范围搜索日志 |
mac_unified_logs_security_events | 获取预定义的安全事件(user_created、ssh_session等) |
mac_unified_logs_stats | 获取日志统计信息:时间范围、顶级子系统 |
Plist文件
| 工具 | 说明 |
|---|---|
mac_plist_read | 读取并解析plist,可选择提取密钥路径 |
mac_plist_search | 搜索匹配模式的密钥 |
mac_plist_timestamps | 使用UTC转换提取所有时间戳值 |
数据库
| 工具 | 说明 |
|---|---|
mac_knowledgec_app_usage | 来自KnowledgeC.db的应用程序使用情况 |
mac_safari_history | Safari浏览历史记录 |
mac_safari_searches | 从Safari中提取搜索查询 |
mac_tcc_permissions | TCC权限(摄像头、麦克风、屏幕录制) |
mac_quarantine_events | 文件下载历史记录 |
用户分析
| 工具 | 说明 |
|---|---|
mac_get_user_accounts | 列出包括已删除帐户在内的用户 |
mac_get_user_timeline | 为特定用户帐户构建时间表 |
FS活动
| 工具 | 说明 |
|---|---|
mac_fsevents_search | 搜索文件系统事件(创建、删除、修改、重命名) |
mac_fsevents_stats | 获取FSEvents统计信息 |
扩展属性和聚光灯
| 工具 | 说明 |
|---|---|
mac_get_extended_attributes | 获取文件的xattr(隔离、下载URL等) |
mac_spotlight_search | 在Spotlight索引中搜索文件元数据 |
mac_spotlight_stats | 获取Spotlight索引统计信息 |
系统日志
| 工具 | 说明 |
|---|---|
mac_parse_fsck_apfs_log | 解析fsck_apfs.log以创建卷、外部设备、反取证 |
mac_fsck_apfs_stats | 获取fsck_apfs.log统计信息:设备、卷、时间范围 |
相关性与调查
| 工具 | 说明 |
|---|---|
mac_build_timeline | 从多个工件构建统一的时间线 |
mac_investigate_event | 深入调查,证据关联 |
安全事件类型
这 mac_unified_logs_security_events 该工具支持以下事件类型:
| 事件类型 | 描述 |
|---|---|
user_created | 用户帐户创建 |
user_deleted | 用户帐户删除 |
user_modified | 用户帐户更改 |
ssh_session | SSH连接 |
sudo_usage | Sudo命令执行 |
auth_success | 身份验证成功 |
auth_failure | 身份验证失败 |
process_exec | 流程执行 |
gatekeeper | 看门人/隔离事件 |
tcc_prompt | TCC权限提示 |
login | 用户登录 |
logout | 用户注销 |
screen_lock | 屏幕锁定事件 |
screen_unlock | 屏幕解锁事件 |
remote_login | 远程登录服务 |
persistence | 持久性机制 |
调查事件类型
这 mac_investigate_event 该工具支持对以下事件类型进行深入调查:
| 事件类型 | 描述 |
|---|---|
user_deletion | 使用时间线和证据相关性调查用户帐户删除 |
user_creation | 调查用户帐户创建 |
file_download | 调查文件下载(隔离、xattr、浏览器历史记录) |
ssh_session | 调查SSH会话活动 |
malware_execution | 调查潜在的恶意软件执行情况 |
privilege_escalation | 调查特权升级尝试 |
使用示例
在分类中发现工件
mac_list_artifacts(artifacts_dir="/path/to/triage")查找用户删除事件
mac_unified_logs_security_events(
log_path="/path/to/unified_logs.csv",
event_type="user_deleted"
)用户删除深度调查
mac_investigate_event(
artifacts_dir="/path/to/triage",
event_type="user_deletion",
target="username"
)获取Safari搜索历史记录
mac_safari_searches(
db_path="/path/to/History.db",
query_filter="delete"
)从plist读取已删除的用户
mac_plist_read(
plist_path="/path/to/com.apple.preferences.accounts.plist",
key_path="deletedUsers"
)查找外部设备活动
mac_parse_fsck_apfs_log(
log_path="/path/to/fsck_apfs.log",
external_only=True
)搜索特定卷
mac_parse_fsck_apfs_log(
log_path="/path/to/fsck_apfs.log",
volume_filter="suspicious_volume"
)构建用户活动时间线
mac_get_user_timeline(
artifacts_dir="/path/to/triage",
username="username"
)在FSEvents中搜索文件活动
mac_fsevents_search(
fseventsd_path="/path/to/.fseventsd",
path_filter="/Users/username",
event_types=["created", "deleted"]
)配置
外部刀具路径
外部取证工具可以通过环境变量进行配置。如果未设置,则默认为 /opt/macOS/ 路径。
| 环境变量 | 默认值 | 描述 |
|---|---|---|
MAC_FORENSICS_UNIFIEDLOG_ITERATOR_PATH | /opt/macOS/unifiedlog_iterator | unifiedlog_iterator二进制文件的路径 |
MAC_FORENSICS_FSEPARSER_PATH | /opt/macOS/FSEventsParser/FSEParser_V4.1.py | FSEParser脚本的路径 |
MAC_FORENSICS_SPOTLIGHT_PARSER_PATH | /opt/macOS/spotlight_parser/spotlight_parser.py | 聚光灯分析器脚本的路径 |
自定义路径示例:
{
"mcpServers": {
"mac-forensics": {
"command": "/opt/macOS/mac_forensics-mcp/.venv/bin/python",
"args": ["-m", "mac_forensics_mcp.server"],
"env": {
"MAC_FORENSICS_UNIFIEDLOG_ITERATOR_PATH": "/custom/path/unifiedlog_iterator",
"MAC_FORENSICS_FSEPARSER_PATH": "/custom/path/FSEParser.py",
"MAC_FORENSICS_SPOTLIGHT_PARSER_PATH": "/custom/path/spotlight_parser.py"
}
}
}
}依赖项
- Python 3.10+
- uv(用于虚拟环境和包管理)
- mcp>=1.0.0
- biplist(可选,用于格式错误的plist)
外部工具(可选,用于解析原始工件):
unifiedlog_iterator-用于解析.log归档包FSEParser-用于解析FSEvents(.feventsd)spotlight_parser-用于解析Spotlight索引
建筑
mac_forensics_mcp/
├── server.py # MCP server and tool definitions
├── config.py # Configurable external tool paths
├── parsers/
│ ├── plist_parser.py # Plist file parsing
│ ├── unified_log_parser.py # Unified log analysis
│ ├── sqlite_parser.py # SQLite databases (KnowledgeC, Safari, TCC)
│ ├── fsevents_parser.py # FSEvents parsing
│ ├── spotlight_parser.py # Spotlight index parsing
│ ├── xattr_parser.py # Extended attributes parsing
│ └── fsck_apfs_parser.py # fsck_apfs.log parsing
├── correlation/
│ ├── timeline_builder.py # Cross-artifact timeline correlation
│ └── event_investigator.py # Event-specific investigation
└── utils/
├── timestamps.py # Mac/WebKit/HFS timestamp conversion
└── discovery.py # Artifact discovery法医价值
此MCP服务器是基于真实的macOS DFIR调查开发的。关键取证能力:
| 能力 | 工具 |
|---|---|
| 用户帐户取证 | mac_get_user_accounts, mac_get_user_timeline, mac_investigate_event |
| 文件活动跟踪 | mac_fsevents_search, mac_spotlight_search |
| 下载分析 | mac_quarantine_events, mac_get_extended_attributes |
| 安全事件检测 | mac_unified_logs_security_events |
| 外部设备检测 | mac_parse_fsck_apfs_log |
| 交叉伪影相关性 | mac_build_timeline, mac_investigate_event |
参考文献
贡献
基于从macOS DFIR调查中吸取的经验教训。欢迎使用其他工具和事件模式。
______________________________________________________________________
作者
偏航距离
专为DFIR社区打造。

