mavhezha/dfir-triage-tool
GitHub: mavhezha/dfir-triage-tool
基于真实Linux入侵事件构建的自动化DFIR分类工具,可对日志、内存、网络、磁盘和恶意软件进行多维度取证分析并生成HTML报告。
Stars: 0 | Forks: 0
# dfir-triage-tool
基于对模拟 Linux 入侵事件在六个取证领域的实际调查经验构建。
## 概述
`dfir-triage` 是一个用于数字取证和事件响应(Digital Forensics and Incident Response)的双组件自动化分类工具:
- **`dfir-triage.sh`**:Bash 脚本,可对所有证据类型进行快速自动化分析
- **`report.py`**:Python 报告生成器,可生成专业的多标签 HTML 报告
该工具旨在自动化解决完整 DFIR CTF 比赛时使用的精确手动调查步骤,重构攻击者的杀伤链,从初始侦察到 rootkit 部署和数据泄露。
## 检测内容
| 模块 | 证据来源 | 检测项 |
|--------|----------------|------------|
| 1: 日志分析 | auth.log、apache 日志、syslog、kern.log | 暴力破解 IP、Web shell 上传、后门用户、C2 回连、rootkit、cron 持久化 |
| 2: 内存取证 | Volatility 输出(pslist、cmdline、bash history、netscan) | 伪装进程、恶意二进制文件、攻击者命令、活跃 C2 连接 |
| 3: 网络取证 | 通过 tshark 分析 PCAP 文件 | C2 域名、DNS 数据泄露、端口扫描、反向 shell 会话 |
| 4: 磁盘取证 | 原始磁盘镜像(.dd、.img) | 隐藏目录、清理脚本、已删除文件恢复、文件雕刻 |
| 5: 恶意软件分析 | ELF/EXE 二进制文件、VBA 宏 | 硬编码 IP/URL、伪造 User-Agent、编码 payload、沙箱逃逸 |
| 6: 时间线构建 | 以上所有 | MITRE ATT&CK 映射的按时间顺序排列的攻击时间线 |
## 使用方法
```
# 使其可执行
chmod +x dfir-triage.sh
# 使用所有证据源运行
./dfir-triage.sh \
-l /path/to/logs \
-m /path/to/volatility/output \
-n /path/to/capture.pcap \
-d /path/to/disk.dd \
-w /path/to/malware/samples \
-a \
-c
# 生成 HTML 报告
python3 report.py --input ./output/ --title "Incident Report"
# 打开报告
open ./output//report.html
```
### 参数
| 参数 | 描述 |
|------|-------------|
| `-l ` | 包含日志文件的目录 |
| `-m ` | 包含 Volatility 输出文件的目录 |
| `-n ` | 用于网络取证的 PCAP 文件 |
| `-d ` | 磁盘镜像文件(.dd 或 .img) |
| `-w ` | 包含恶意软件样本的目录 |
| `-a ` | 已知的攻击者 IP 地址 |
| `-c ` | 已知的 C2 IP 地址 |
| `-o ` | 自定义输出目录 |
| `-h` | 显示帮助 |
## 输出
每次运行都会创建一个带时间戳的输出文件夹:
```
output/
└── 2026-04-04_18-20-28/
├── timeline.txt ← Chronological MITRE ATT&CK mapped attack timeline
├── findings.json ← All findings in structured JSON
├── report.md ← Markdown report
└── report.html ← Professional tabbed HTML report
```
### HTML 报告标签页
- **摘要**:按严重程度(严重 / 高 / 中 / 信息)分类的发现
- **发现**:完整的颜色编码发现表格
- **时间线**:按时间顺序排列的攻击时间线,包含 MITRE ATT&CK 阶段
- **MITRE ATT&CK**:覆盖摘要,显示观察到的阶段
## 跨模块关联
该工具的一个关键特性是模块之间的自动交叉引用。当模块 1 在防火墙日志中发现 C2 IP 时,模块 2 会检查该 IP 是否也出现在进程命令行参数中。当模块 5 在恶意软件样本中发现攻击者 IP 硬编码时,它会确认是否与模块 1 在暴力破解检测中发现的内容匹配。
这意味着发现不是孤立的:它们会在多个独立证据源中自动验证。
## 示例输出
```
════════════════════════════════════════════════════════════
MODULE 1: LOG ANALYSIS
════════════════════════════════════════════════════════════
[*] Analysing logs in: ./test-logs
[1.1] SSH Brute Force Detection
[CRITICAL] Brute Force: IP 198.51.100.47 made 83 failed SSH attempts
[1.2] Web Shell Detection
[CRITICAL] Web Shell Upload: PHP file uploaded via POST: /uploads/shell.php
[CRITICAL] Web Shell Execution: Shell executed 3 commands via HTTP
[1.3] Backdoor User Detection
[CRITICAL] Backdoor User: New user created: svc-backup
[1.4] C2 Callback Detection
[CRITICAL] C2 Callback: Outbound connection to 203.0.113.99:4444
[1.5] Rootkit Detection
[CRITICAL] Rootkit: Malicious kernel module loaded: rootkit_mod
[CRITICAL] Rootkit: Process hidden by rootkit: PID 31337
[1.6] Cron Persistence Detection
[HIGH] Cron Persistence: Malicious cron job: [*/5 * * * *] /tmp/.hidden/beacon.sh
[1.7] Directory Scanning Detection
[HIGH] Reconnaissance: Directory scanning detected: DirBuster from 198.51.100.47
```
## 需求
**Bash 脚本(`dfir-triage.sh`):**
- Bash 4.0+
- 标准 Unix 工具:grep、awk、sed、sort、uniq、find、strings、file、sha256sum
- 可选:tshark(网络取证)、foremost(文件雕刻)
**Python 报告(`report.py`):**
- Python 3.6+
- 无外部依赖:仅使用标准库
## 背景
该工具直接基于一个模拟 Linux Web 服务器入侵的六挑战 DFIR CTF 调查构建。工具中的每个检测都对应于该调查中的真实发现:
- 暴力破解检测发现相同的攻击者 IP `198.51.100.47`
- Web shell 检测发现相同的 `shell.php` 上传
- Rootkit 检测发现相同的 `rootkit_mod` 隐藏 PID `31337`
- C2 检测发现相同的 `203.0.113.99:4444` 回连
原始调查的完整分析报告可在 [linux-breach-investigation](https://github.com/mavhezha/linux-breach-investigation) 仓库中获取。
## 作者
**Arnold Mavhezha**
MS Cybersecurity:Yeshiva University
渗透测试工程师 | 安全工程师 | DFIR 分析师
[mavhezha.com](
标签:API接口, Atomic Red Team, BurpSuite集成, C2检测, CISA项目, Cloudflare, DAST, Go语言工具, HTML报告, IP 地址批量处理, MITRE ATT&CK, PCAP分析, Python, SecList, tshark, webshell检测, XXE攻击, 云安全监控, 免杀技术, 内存取证, 取证调查, 子域名变形, 库, 应急响应, 应用安全, 恶意软件分析, 持久化检测, 攻击链分析, 数字取证, 数据泄露, 数据泄露检测, 文件恢复, 文件雕刻, 无后门, 无线安全, 时间线构建, 暴力破解检测, 根kit检测, 横向移动, 磁盘取证, 编程规范, 网络信息收集, 网络安全审计, 自动化脚本, 静态分析