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, 内存分析, 库, 应急响应, 数字取证, 无后门, 漏洞挖掘, 自动化脚本, 调查工具, 逆向工具