ChrisDanielW/Digital-Forensics-ToolKit
GitHub: ChrisDanielW/Digital-Forensics-ToolKit
一款用于 Linux 数字取证与应急响应的自动化工具包,整合证据收集、内存分析、日志解析与报告生成等流程。
Stars: 0 | Forks: 0
# 自动化应急响应与数字取证工具包
一个用于 Linux DFIR 的模块化 Python 工具包,可自动化证据收集、基础分析、完整性验证和报告生成。它专注于为学术和作品集用途编排常见的取证工作流。
## 当前功能
- 案件管理,每次运行包含结构化的证据、日志和报告
- 系统信息、进程分析和网络分析
- 日志收集与解析(auth/syslog/dmesg/bash history)
- 浏览器取证记录(Chromium/Chrome/Firefox)及可疑指标提取
- 针对 temp 和 downloads 目录的可疑文件扫描器
- 证据哈希计算与监管链记录
- 通过 Volatility 3 进行内存分析编排
- 时间线生成(CSV + 摘要)
- 报告生成(Markdown、HTML、PDF)
- 基于 Flask 的 dashboard,用于浏览案件和运行分析
## 项目结构
```
forensics_toolkit/
main.py
modules/
utils/
dashboard/
cases/
logs/
reports/
evidence/
```
## 安装说明
1. 创建虚拟环境并安装依赖:
```
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
```
2. 初始化 Volatility 3 子模块(推荐):
```
git submodule update --init --recursive
```
3. 以可编辑模式安装 Volatility 3:
```
cd volatility3
pip install -e ".[full]"
cd ..
```
4. 确认 Volatility 3 可正常运行(在项目根目录下执行):
```
python3 volatility3/vol.py -h
```
5.(Linux 内存分析)为您的内核生成匹配的 Linux ISF:
5.1 从您的内存镜像中识别内核 banner:
```
ROOT="/home/john-ubuntu/Desktop/Digital Forensics ToolKit"
python3 "$ROOT/volatility3/vol.py" \
-f /path/to/memory.lime \
-s "$ROOT/volatility3/symbols" \
banners.Banners
```
5.2 安装调试符号并构建 dwarf2json(在同一 VM/内核上运行):
```
sudo apt install ubuntu-dbgsym-keyring
echo "deb http://ddebs.ubuntu.com $(lsb_release -cs) main restricted universe multiverse
deb http://ddebs.ubuntu.com $(lsb_release -cs)-updates main restricted universe multiverse
deb http://ddebs.ubuntu.com $(lsb_release -cs)-proposed main restricted universe multiverse" | \
sudo tee /etc/apt/sources.list.d/ddebs.list
sudo apt update
sudo apt install linux-image-$(uname -r)-dbgsym golang-go git
cd ~
git clone https://github.com/volatilityfoundation/dwarf2json.git
cd dwarf2json
go build
```
5.3 生成 ISF 并将其放入 Volatility 符号目录中:
```
VMLINUX="/usr/lib/debug/boot/vmlinux-$(uname -r)"
OUT="$HOME/Ubuntu_$(uname -r)_x64.json"
~/dwarf2json/dwarf2json linux --elf "$VMLINUX" > "$OUT"
mv "$OUT" "$ROOT/volatility3/symbols/linux/"
```
5.4(可选)压缩 ISF:
```
xz -f "$ROOT/volatility3/symbols/linux/Ubuntu_$(uname -r)_x64.json"
```
6. 如果您使用 sudo 运行,请使用虚拟环境中的 python 以免出现包缺失的情况:
```
sudo -E .venv/bin/python -m forensics_toolkit.main CASE001 --run all
```
## 运行 CLI
运行完整收集:
```
python3 -m forensics_toolkit.main CASE001 --run all --investigator "Your Name" --notes "Initial collection"
```
运行单个模块:
```
python3 -m forensics_toolkit.main CASE001 --run logs
python3 -m forensics_toolkit.main CASE001 --run browser
python3 -m forensics_toolkit.main CASE001 --run timeline
```
内存分析(需要内存镜像和匹配的符号):
```
python3 -m forensics_toolkit.main CASE001 --run memory \
--memory-image /path/to/memory.lime --memory-os linux
```
为已有案件生成报告:
```
python3 -m forensics_toolkit.main CASE001 --run report \
--case-path /path/to/cases/case_CASE001_YYYYMMDD_HHMMSS \
--investigator "Your Name" --notes "Report only"
```
## 仪表板
启动 dashboard:
```
python3 -m forensics_toolkit.main CASE000 --run dashboard \
--case-root "/home/john-ubuntu/Desktop/Digital Forensics ToolKit/cases"
```
打开:
```
http://127.0.0.1:5000
```
dashboard 支持:
- 带有结果标签页的案件浏览
- 按需分析运行(异步或同步)
- 作为独立运行的内存分析
- 报告与取证记录预览
## 输出
- 案件数据位于 `cases/case__/`
- 证据记录位于 `evidence/`
- 日志和监管链位于 `logs/`
- 报告位于 `reports/`
## Volatility 3 符号
Linux 内存分析需要与内核 banner 匹配的 ISF。请将 ISF 存储在:
```
volatility3/symbols/linux/
```
符号文件特意不纳入 Git 跟踪。请将其保留在本地或使用外部存储。
## 使用 sudo 运行的注意事项
如果您使用 sudo 运行此工具包(为了访问特权日志),输出文件的所有者将被 chown 更改为调用用户,以确保文件仍可删除。如果遇到权限问题,请运行:
```
sudo chown -R $USER:$USER cases logs
```
## 致谢
本项目集成了 Volatility 3。详情请参阅 Volatility Foundation 仓库及其许可证:
https://github.com/volatilityfoundation/volatility3
标签:逆向工具