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, 内存分析, 子域名变形, 库, 应急响应, 数字取证, 数据恢复, 无后门, 磁盘取证, 自动化脚本, 逆向工具