Alon101/postmortem-forensics-tool
GitHub: Alon101/postmortem-forensics-tool
一款基于 Bash 的自动化取证分诊脚本,通过一条命令对磁盘映像或内存捕获文件运行完整的提取、分析与报告 pipeline。
Stars: 0 | Forks: 0
# Postmortem — 取证分析工具
**单元:** NX212 · **作者:** Alon Agronov (s16) · **讲师:** Natalie Erez
## 功能简介
Postmortem 接收单个磁盘映像或内存捕获文件,并自动在其上运行完整的分诊 pipeline。唯一需要人工输入的是文件名——之后的所有操作(工具安装、文件提取、字符串提取、内存分析、报告生成和打包)均自动无人值守运行。
原本需要耗费一小时的繁琐且易错的手动工具操作,现在只需一条命令即可完成:
```
sudo ./postmortem.sh
```
## Pipeline
该脚本分为四个阶段进行:
**1. 设置案件** — 验证 root 权限,确认证据文件存在,检查所有必需的工具是否已安装(如缺失则自动安装),并创建带有时间戳的输出目录,以确保各次运行互不冲突。
**2. 恢复隐藏数据** — 四个提取工具分别负责寻找不同的内容:
- **Foremost** — 基于签名的文件提取
- **Binwalk** — 签名扫描 + 递归提取内嵌文件
- **Bulk Extractor** — 电子邮件、URL、网络捕获文件及其他特征
- **Strings** — 可读文本,过滤出凭证、token 和可执行文件引用
**3. 查看运行状态** *(仅适用于内存映像)* — 如果证据是有效的内存捕获文件,Volatility 3 将重建捕获时机器的状态:正在运行的进程、网络连接和注册表配置单元 (registry hives)。如果该文件不是内存映像,则自动跳过此阶段。
**4. 报告与打包** — 统计所有数据,编写结构化报告(包含发现、计数、运行时间),并将整个结果目录打包成一个 ZIP 归档文件。
## 环境要求
- Linux(在 Kali 上开发并测试)
- root 权限 (`sudo`)
- 若缺失则自动安装:`foremost`、`binwalk`、`bulk-extractor`、`binutils`
- **Volatility 3** — 可选;若未安装,将平滑跳过内存分析。可通过 `pipx install volatility3` 安装。
## 用法
```
# 带有文件名
sudo ./postmortem.sh evidence.raw
# 或者直接运行,它会进行提示
sudo ./postmortem.sh
```
### 输出
结果将写入带有时间戳的目录 `results__/` 中:
```
results_.../
├── foremost/ # carved files
├── binwalk/ # extracted files + signature scan
├── bulk_extractor/ # feature files, network captures
├── strings/ # full dump + per-keyword hit files
├── volatility/ # memory analysis output
├── logs/ # per-tool diagnostic logs
└── report/report.txt # summary report
```
...并且整个目录会被打包成同名的 ZIP 文件放置在其旁边。
## 备注与限制
- **仅支持 Volatility 3。** 刻意选择其而非 Volatility 2,因为后者需要手动进行 profile 检测,并且(在现代系统上)安装 Python 2 非常困难。权衡之处在于:部分 plugin 在旧版 OS 映像上不受支持——但程序会平滑处理而非报错崩溃。
- 内存分析**专注于 Windows 系统**。
- 这是一个**分诊**工具。其关键词匹配结果和提取出的文件仅作为深入人工检查的线索,而非最终结论。
*作为 NX212 单元的一部分开发。*
标签:HTTP工具, PB级数据处理, SecList, 内存取证, 安全运维, 库, 应急响应, 应用安全, 数字取证, 磁盘取证, 网络安全审计, 自动化分析, 自动化脚本, 跨站脚本