Un-9oon/forensix
GitHub: Un-9oon/forensix
一款纯 Python 实现的模块化数字取证框架,无需依赖外部工具即可完成文件恢复、内存分析、磁盘取证、网络流量解析和反取证检测等全链路调查工作。
Stars: 0 | Forks: 0
# ForensiX
**高级数字取证与数据恢复工具包**
一个使用 Python 编写的全面、模块化的命令行取证框架。ForensiX 提供了 11 个专用模块,涵盖文件雕刻、内存分析、磁盘取证、网络 PCAP 分析、浏览器痕迹提取、反取证检测等功能——所有这些都不依赖任何外部取证工具。
## 功能
### 🔍 文件雕刻与数据恢复
- **基于签名的恢复** — 支持 25+ 种文件类型 (JPEG, PNG, PDF, ZIP, MP4, ELF, PE, SQLite, PCAP 等)
- **Slack 空间分析** — 从文件系统 slack 中恢复数据
- **深度熵扫描** — 检测加密/压缩的数据区域
- **碎片重组** — 通过匹配文件头和文件尾恢复碎片文件
- **雕刻后验证** — 使用特定格式的验证器消除误报
### 🧠 内存转储分析
- **进程检测** — 在内存转储中查找运行中的进程
- **凭证提取** — 密码、token、API 密钥、私钥
- **网络痕迹** — 内存中的 IP:port 对、URL、DNS 查询
- **代码注入检测** — shellcode 模式、NOP 雪橇、ROP gadgets
- **进程掏空检测** — 具有可疑镜像基址的未映射 PE 头
- **API 钩子检测** — 内联钩子、蹦床跳转、IAT 修改
- **PE/ELF 头扫描** — 查找加载到内存中的可执行文件
- **密码学材料** — RSA/DSA 密钥、AES S 盒、证书片段
### 💾 磁盘镜像分析
- **分区检测** — MBR, GPT, NTFS, FAT16/32, EXT2/3/4, HFS+, BTRFS, XFS
- **超级块解析** — 卷标、UUID、块大小
- **已删除分区恢复** — 扫描孤立的文件系统签名
- **未分配空间映射** — 查找分区之间的间隙
- **隐藏数据检测** — 扫描分区间的间隙和分区前空间
- **分区提取** — 从镜像中雕刻单个分区
### 🌐 网络取证 (PCAP)
- **原生 PCAP 解析** — 无需依赖 Wireshark/tshark
- **协议分析** — TCP, UDP, ICMP, ARP 明细
- **DNS 查询提取** — 提取所有查询的域名及其源 IP
- **HTTP 请求提取** — 方法、主机、路径、User Agent
- **可疑活动检测** — 端口扫描、C2 信标、数据泄露模式
- **流量统计** — 热门来源、目的地、端口及时间范围
### 🕵️ 反取证检测
- **时间戳篡改检测** — 元数据与文件系统时间戳的不一致
- **隐写术指标** — LSB 分析、附加数据、异常熵模式
- **加密容器检测** — TrueCrypt, VeraCrypt, LUKS, BitLocker 签名
- **数据隐藏技术** — ADS、slack 空间注入、文件头篡改
- **擦除工具痕迹** — 检测安全删除模式
### 🌍 浏览器取证
- **自动检测** — Chrome, Firefox, Edge, Chromium 配置文件发现
- **历史记录提取** — URL、标题、访问次数、时间戳
- **Cookie 分析** — 解析所有受支持浏览器的 cookie 数据库
- **下载历史** — 下载的文件、URL、时间戳
- **保存的凭证** — 登录数据提取(已加密)
- **完整痕迹导出** — 将所有浏览器数据导出为 JSON
### 📋 日志分析
- **多格式解析** — syslog, auth.log, Apache/Nginx, JSON 日志
- **异常检测** — 暴力破解尝试、提权、可疑命令
- **时间线缺口检测** — 通过缺失的时间范围识别日志篡改
- **风险评分** — 自动化严重性分类
- **IP 分析** — 活跃度最高的 IP、地理分布模式、暴力破解源识别
### 🔐 哈希与完整性
- **多算法** — MD5, SHA-1, SHA-256, SHA-512
- **完整性校验** — 将文件哈希值与已知值进行比对
- **目录哈希** — 递归计算整个目录的哈希值
- **重复文件检测** — 通过内容哈希查找相同文件
- **证据保管链** — 哈希验证的证据收集
### 📊 附加模块
- **元数据提取** — 文件系统属性、EXIF 数据、嵌入信息、magic byte 识别
- **字符串提取** — ASCII/Unicode 字符串、IOC 狩猎(电子邮件、URL、IP、API 密钥、凭证)、关键字搜索、十六进制转储、嵌入文件检测
- **时间线构建器** — 将文件系统事件、认证日志、syslog 和 Web 日志合并为统一的取证时间线(支持导出 JSON/CSV)
- **报告生成** — 自动生成 Text、JSON 和 HTML 格式的取证报告,包含证据链和调查结果
## 安装
```
# Clone 仓库
git clone https://github.com/Un-9oon/forensix.git
cd forensix
# Install 依赖
pip install click rich
# Run
python3 -m forensix.forensix --help
```
或者使用便捷脚本:
```
chmod +x run.sh
./run.sh --help
```
### 依赖项
| 包 | 用途 |
|---------|---------|
| `click` | CLI 框架 |
| `rich` | 终端格式化、表格、进度条 |
| Python 3.10+ | 必需 (使用现代 type hints) |
## 快速开始
### 一键取证扫描
```
# 快速扫描 — 一次扫描 hashes + metadata + IOCs
python3 -m forensix.forensix scan suspicious_file.bin
# 深度扫描 — 包含 anti-forensics 和 embedded file 检测
python3 -m forensix.forensix scan suspicious_file.bin --deep
```
### 文件雕刻
```
# 从磁盘镜像恢复已删除文件
python3 -m forensix.forensix carve recover disk.img -o ./recovered
# 针对特定文件类型
python3 -m forensix.forensix carve recover disk.img -t JPEG -t PNG -t PDF
# 针对加密区域的深度 entropy 扫描
python3 -m forensix.forensix carve deep disk.img
# 恢复 slack space 数据
python3 -m forensix.forensix carve slack disk.img
# 碎片恢复
python3 -m forensix.forensix carve fragments disk.img -t JPEG
```
### 内存分析
```
# 完整 memory dump 分析
python3 -m forensix.forensix memory analyze memory.dmp
# 检测 code injection
python3 -m forensix.forensix memory injections memory.dmp
# 检测 process hollowing
python3 -m forensix.forensix memory hollowing memory.dmp
# 检测 API hooks
python3 -m forensix.forensix memory hooks memory.dmp
```
### 磁盘镜像分析
```
# 分析分区和 filesystems
python3 -m forensix.forensix disk analyze disk.img
# 查找已删除的分区
python3 -m forensix.forensix disk deleted-partitions disk.img
# 扫描间隙中的隐藏数据
python3 -m forensix.forensix disk hidden disk.img
# 提取特定分区
python3 -m forensix.forensix disk extract-partition disk.img -p 0 -o partition.img
```
### 网络取证
```
# 分析 PCAP 文件
python3 -m forensix.forensix network analyze capture.pcap
# 提取 DNS 查询
python3 -m forensix.forensix network dns capture.pcap
# 提取 HTTP 请求
python3 -m forensix.forensix network http capture.pcap
```
### 浏览器取证
```
# 自动检测已安装的浏览器
python3 -m forensix.forensix browser detect
# 提取浏览器历史记录
python3 -m forensix.forensix browser history -b chrome
# 将所有 artifacts 提取为 JSON
python3 -m forensix.forensix browser all -b chrome -o artifacts.json
```
### 日志分析
```
# 分析 log file 以查找异常
python3 -m forensix.forensix logs analyze /var/log/auth.log
# 检测 log tampering(时间间隔)
python3 -m forensix.forensix logs gaps /var/log/syslog
```
### 字符串与 IOC 提取
```
# 从 binary 提取 strings
python3 -m forensix.forensix strings extract binary.exe
# 搜寻 IOCs(IPs、URLs、电子邮件、API keys)
python3 -m forensix.forensix strings ioc binary.exe
# 搜索关键词
python3 -m forensix.forensix strings search binary.exe "password" "secret" "token"
# Hex dump
python3 -m forensix.forensix strings hex binary.exe -o 0x1000 -l 512
# 检测 embedded files
python3 -m forensix.forensix strings embedded suspicious.doc
```
### 反取证检测
```
# 扫描 anti-forensics 技术
python3 -m forensix.forensix antiforensics scan target_file
# 用于自动化的 JSON 输出
python3 -m forensix.forensix antiforensics scan target_file -j
```
### 哈希与完整性
```
# 对文件进行 hash(所有算法)
python3 -m forensix.forensix hash all evidence.img
# 验证完整性
python3 -m forensix.forensix hash verify evidence.img abc123...
# 对整个目录进行 hash
python3 -m forensix.forensix hash dir /evidence/ -o hashes.json
# 查找重复文件
python3 -m forensix.forensix hash duplicates /evidence/
```
### 证据管理
```
# 依照 chain of custody 收集证据
python3 -m forensix.forensix evidence collect suspicious.bin -c case001 -d "Malware sample" -t malware -t urgent
# 验证证据完整性
python3 -m forensix.forensix evidence verify EVD-001 -c case001
# 列出收集的证据
python3 -m forensix.forensix evidence list -c case001
```
### 报告生成
```
# 生成取证报告(文本 + JSON + HTML)
python3 -m forensix.forensix report -c case001 -e "Examiner Name" -o ./reports
```
## 项目结构
```
forensix/
├── forensix.py # Main CLI (1028 lines) — all command definitions
├── run.sh # Convenience launcher
├── core/
│ ├── hasher.py # Cryptographic hashing engine
│ ├── evidence_handler.py # Evidence collection & chain of custody
│ └── signatures.py # 25+ file signatures & format validators
├── modules/
│ ├── file_carver.py # File carving & data recovery
│ ├── memory_analyzer.py # Memory dump forensics
│ ├── disk_analyzer.py # Disk image analysis
│ ├── network_forensics.py # PCAP analysis
│ ├── browser_forensics.py # Browser artifact extraction
│ ├── anti_forensics.py # Anti-forensics detection
│ ├── log_analyzer.py # Log analysis & anomaly detection
│ ├── string_extractor.py # String/IOC extraction
│ ├── metadata_extractor.py# File metadata extraction
│ ├── timeline_builder.py # Forensic timeline builder
│ └── report_generator.py # Report generation (TXT/JSON/HTML)
├── utils/
│ └── display.py # Rich terminal UI components
├── evidence/ # Evidence storage directory
└── reports/ # Generated reports directory
```
**总计:跨 15 个模块约 5,500 行 Python 代码**
## 支持的文件签名 (Carving)
| 类别 | 格式 |
|----------|---------|
| **图像** | JPEG, PNG, GIF (87a/89a), BMP, TIFF (LE/BE), PSD, WebP |
| **文档** | PDF, DOCX (Office Open XML) |
| **归档** | ZIP, 7z, RAR4, RAR5, GZIP |
| **音频** | MP3 (ID3/Sync), WAV, OGG, FLAC |
| **视频** | MP4, AVI |
| **可执行文件** | PE/EXE, ELF |
| **数据库** | SQLite |
| **网络** | PCAP, PCAPNG |
## 支持的分区签名 (磁盘分析)
| 文件系统 | 检测方法 |
|------------|-----------------|
| NTFS | Boot sector 签名 |
| FAT16/FAT32 | 固定偏移量处的 OEM 标签 |
| EXT2/3/4 | 偏移量 1080 处的 Superblock magic |
| HFS+ | 偏移量 1024 处的卷头 |
| GPT | 扇区 1 处的 EFI PART 签名 |
| BTRFS | 偏移量 65600 处的 Superblock |
| XFS | 偏移量 0 处的 XFSB magic |
## 输出格式
所有模块均支持 JSON 输出 (`-j` / `--json-output`),以便与其他工具进行自动化和集成。报告可以生成以下格式:
- **纯文本** — 人类可读的调查报告
- **JSON** — 机器可解析的结构化数据
- **HTML** — 适合共享和演示的格式化报告
## 许可证
仅用于教育和授权的取证调查目的。
## 作者
**Muhammad Umar Shahzad** — [GitHub](https://github.com/Un-9oon)
标签:JARM, Python, 内存分析, 子域名变形, 库, 应急响应, 数字取证, 数据恢复, 无后门, 磁盘取证, 自动化脚本, 逆向工具