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
标签:逆向工具