K3lgy/Forensic-Tools

GitHub: K3lgy/Forensic-Tools

一款跨平台数字取证自动化工具,按易失性顺序完成证据采集、保管链管理和后分析编排,帮助取证人员规范化处理调查现场。

Stars: 0 | Forks: 0

# ForensicTools — 获取、痕迹与分析 ## 项目功能 | 阶段(按易失性顺序) | Windows | Linux | macOS | |---|---|---|---| | 1. 实时易失状态(网络、ARP、路由、会话、进程、服务、计划任务) | `live_artifacts_win.py` | `live_artifacts_lin.py` | 集成在 `forensic_mac.py` 中 | | 2. 捕获 RAM | `forensic_win.py`(winpmem / fallback) | `forensic_lin.py`(LiME / kcore / /dev/mem / proc-mem) | **不尝试**(SIP/Apple Silicon — 见下文) | | 3. 磁盘逐位复制 | `forensic_win.py` | `forensic_lin.py` | `forensic_mac.py`(`/dev/rdiskN`) | | 4. 持久痕迹(事件日志、注册表、预读取、MFT/$LogFile / journald、syslog、浏览器/shell历史记录) | `persistent_artifacts_win.py` | `persistent_artifacts_lin.py` | 集成在 `forensic_mac.py` 中(unified logs、FSEvents) | | 5. 分析(volatility3、plaso、YARA、Sleuth Kit) | `analysis/run_analysis.py`(跨平台,需安装第三方工具) | 同上 | 同上 | | 证据保管链 | 操作员、地点、校验过的 NTP 时间戳、已签名的清单(`common/custody.py`) — 适用于所有平台 | | 案件管理 / 报告 | `common/case_manager.py` — CASE.json + RAPPORT.html,适用于所有平台 | `forensic_tools/common/` 包含共享模块:软件 write-blocking、第三方工具完整性验证、易失性顺序、 证据保管链、案件管理。 ## 快速使用 ``` # Linux — tout, dans l'ordre de volatilité, avec identité opérateur sudo python3 forensic_lin.py --live --ram --disk /dev/sda --persistent \ --operator "J. Dupont" --location "Bureau 3, Paris" --case-ref "2026-0472" # Windows (PowerShell admin) python forensic_win.py --live --ram --disk \\.\PhysicalDrive0 --persistent ^ --operator "J. Dupont" --location "Site client" --case-ref "2026-0472" # macOS (sudo) sudo python3 forensic_tools/macos/forensic_mac.py --live --persistent --disk /dev/rdisk0 # Menu interactif (recommandé pour un premier usage) — applique l'ordre de # volatilité automatiquement quel que soit l'ordre choisi dans le menu sudo python3 forensic_lin.py python forensic_win.py # Analyse post-acquisition (outils tiers à installer, voir analysis/README.md) python forensic_tools/analysis/run_analysis.py forensic_output --ram forensic_output/ram_dump_xxx.raw ``` ## 已知限制(实际使用前必读) 1. **Write-blocking**:`FILE_FLAG_NO_BUFFERING`/`O_DIRECT` 会绕过 缓存,它们并不是 write-blocking。`common/write_protect.py` 添加了尽力而为的软件保护(Linux 下使用 `blockdev --setro`, Windows 下使用注册表策略),但**无法替代经过认证的硬件 write-blocking**,而这对于严格的法律程序是必需的。 2. **第三方工具完整性**:`winpmem.exe` 会与参考 hash 进行比对验证(`common/TOOL_HASHES.json`),但此 hash 是在本项目打包时计算的,**并未向 Velocidex 独立验证**。在现场使用前请重新验证。 3. **证据保管链**:`custody.py` 对清单进行签名(如果安装了 `cryptography` 包则使用 RSA,否则使用 HMAC),并在 网络可用时通过 NTP 进行时间戳记录。这增强了技术可追溯性,但**无法替代**物理封条、证人,或 您所在司法管辖区的特定要求。 4. **macOS**:**不尝试**完整的 RAM 捕获 — SIP 和 Apple Silicon 保护机制会阻止原始内存访问,除非 破坏现场的完整性(禁用 SIP)。仅涵盖 磁盘、实时状态和持久痕迹(包括 FSEvents 和 unified logs)。 5. **分析**:`run_analysis.py` 会协调 volatility3/plaso/YARA/Sleuth Kit,**前提是它们已被单独安装** — 没有任何程序被捆绑(出于体积和 许可证考虑)。请参阅 `forensic_tools/analysis/README.md`。 6. **用户态工具与内核 rootkit 对比**:实时/持久化收集 依赖于系统实用程序(netstat、ps、tasklist...),这些 可能会被活动的 rootkit 欺骗。请始终与 RAM 分析进行交叉比对。 ## 项目结构 ``` forensic_win.py / forensic_lin.py — points d'entrée (identiques aux copies dans forensic_tools/) forensic_tools/ common/ — case_manager, custody, tool_integrity, write_protect, volatility_order windows/ — forensic_win.py, live_artifacts_win.py, persistent_artifacts_win.py, winpmem.exe linux/ — forensic_lin.py, live_artifacts_lin.py, persistent_artifacts_lin.py macos/ — forensic_mac.py analysis/ — run_analysis.py (orchestration volatility3/plaso/YARA/Sleuth Kit) lime-builder/ — build LiME pour Linux (inchangé) build.py — compilation PyInstaller (inchangé) ```
标签:JARM, Python, 内存分析, 库, 应急响应, 数字取证, 无后门, 漏洞挖掘, 自动化脚本, 调查工具, 逆向工具