Jonnmy/ambar-forensics

GitHub: Jonnmy/ambar-forensics

Ámbar 是一款模块化的 Windows 数字取证获取框架,通过自动化哈希验证、监管链记录和命令日志,确保证据从获取到归档的全过程完整且可复现。

Stars: 0 | Forks: 0

Ámbar, forensic acquisition framework **English** · [Español](README.es.md) 琥珀能将其包裹的任何物质完好无损地保存数百万年。本文撰写地——多米尼加共和国,坐落于世界上一些最丰富的琥珀矿床之上。这正是该项目名字的全部灵感来源:证据在其中存取都能保持原封不动,并附带如何到达那里的记录。 Ámbar 是一款模块化的取证工具,将标准的取证实用程序集成到一个控制台菜单背后,并自行处理 hash 计算、监管链和命令日志记录。它支持 Windows 主机、VirtualBox、VMware 和 Hyper-V 虚拟机、Docker 容器以及通过 ADB 连接的 Android 设备。 使用 Batch 和 PowerShell 编写,除了其调用的第三方工具外,无需安装任何其他内容。 这是位于圣多明各的 Instituto Tecnológico de las Américas (ITLA) 数字取证专业的毕业项目。 ## 为什么需要 证据获取是一项容不得半点差错的重复性工作。漏算一个 hash、写入源磁盘,或者弄丢了运行过的命令记录,都会导致证据失去辩护力。这不是因为分析结果出错了,而是因为你再也无法证明这些结果是如何得来的。 手动驱动 `dc3dd`、KAPE、WinPmem 和 `qemu-img` 在当天处理的前几台机器上还能应付,但等到第四台时就会力不从心。这正是程序步骤被悄然遗漏的地方,而这些步骤恰恰是报告得以成立的基石。 因此,Ámbar 会自动记录这些关键信息: * 对每个镜像进行 SHA-256 计算,并与获取工具自身的日志进行交叉核对 * 自动生成监管链记录,因此不会成为任何人遗忘的步骤 * 将每个外部命令及其输出追加到中央日志中 * 在读取任何数据之前,将源磁盘标记为只读 操作员只需选择目标。框架负责确保整个过程可复现。 The Ambar main menu in the console 这是真实菜单文本及其配色方案的渲染图,而非屏幕照片。 ## 模块 | 模块 | 功能作用 | 调用工具 | |---|---|---| | **RAM 捕获** | 实时易失性内存转储,支持工具和架构选择 | DumpIt, WinPmem | | **分流** | 选择性痕迹收集。目标和模块在运行时从本地 KAPE 仓库中枚举,而非硬编码 | KAPE | | **磁盘获取** | 物理(全盘)和逻辑(文件或文件夹)镜像,带有交互式路径浏览器、格式选择和可配置的段大小 | dc3dd, dd, ewfacquire (E01), FTK Imager (RAW/S01) | | **虚拟机** | 从虚拟机获取磁盘和内存。将 Hyper-V 保存的状态(`.vmrs`/`.bin`)转换为 Volatility 3 实际可读的 RAW 镜像 | VBoxManage, vmrun, vmware-vdiskmanager, qemu-img | | **Docker** | 从运行中的容器获取证据 | Docker CLI | | **Android** | 通过 ADB 进行逻辑提取和应用备份 | platform-tools | | **写阻断器** | 设置和清除磁盘只读属性 | `Set-Disk` | | **命令日志** | 回读本次会话执行的所有中央日志 | | ## 设计说明 **完整性是经过验证的,而非假定的。** 在执行 `dc3dd` 获取后,框架会解析该工具自身的日志,提取其报告的 SHA-256,并在与生成的镜像进行比较之前,验证该字符串的格式和长度。缺失、被截断或不匹配的 hash 将被报告为失败。任何问题都不会被静默放过。 **缺失组件只会降级,不会崩溃。** 在启动时,Ámbar 会探测 PowerShell、WMIC、Docker、ADB、Hyper-V、VMware、VirtualBox 和 WSL 2,然后将缺少依赖项的模块置灰。你从未安装的工具只会是一个禁用的菜单项,而不是在获取磁盘镜像到一半时抛出的错误。 **隔离 `CTRL+C`。** 通常情况下,中断 Batch 文件会产生 `Terminate batch job (Y/N)?` 提示,并使输出处于未知状态。该框架在 PowerShell 包装器内重新启动自身以捕获该信号,因此中止操作是可控的且会被记录。如果 PowerShell 不可用,系统会提示并继续在不使用包装器的情况下运行。 **提权具有降级方案。** 磁盘和 RAM 模块需要管理员权限,因此脚本会通过 `Start-Process -Verb RunAs` 重新启动自身。如果没有 PowerShell,它会指明受限的模块并继续执行,而不是直接退出。 **启动检查。** 在显示菜单之前,引导例程会报告操作系统名称和版本号、架构、权限级别、固件类型、Secure Boot 状态以及每个工具的可用性,最后以 `N components OK / M warnings` 的摘要结束。 **旧版 Windows 仍然适用。** ANSI 颜色仅在支持渲染的版本(10586 及以上)上启用,在其他版本上回退为单色。x86 和 x64 架构的二进制文件会在运行时根据 `PROCESSOR_ARCHITECTURE` 进行选择。 ## 布局 ``` ambar-forensics/ ├── setup-tools.bat dependency checker and download helper ├── docs/ │ ├── Technical_Documentation.en.html English, source of the PDF │ ├── Documentacion_Tecnica.es.html Spanish │ ├── build-pdf.bat regenerates both PDFs │ └── dfir_command_catalog.html DFIR command reference └── Script/ ├── Evidencias/ default output (git-ignored) ├── Logs/ Forensic_Commands.log (git-ignored) └── Windows/ ├── ForensicScript.bat entry point └── Sistema/ ├── lib/ │ ├── forensic_wrapper.ps1 execution wrapper and logging │ ├── hv_savedstate_to_raw.ps1 Hyper-V saved state to RAW │ └── launch_noctrlc.ps1 CTRL+C isolation ├── poc/ proof-of-concept scripts, not production modules └── herramientas/ third-party binaries (not included) ``` ## 环境要求 | | | |---|---| | 操作系统 | Windows 10 或 11,x86 或 x64。Build 10586 及以上支持 ANSI 颜色 | | 权限 | 管理员权限,磁盘和 RAM 模块必需 | | PowerShell | 推荐 5.1 或更高版本。2.0 也可用。如果没有它,框架将以降级模式运行 | | 可选 | Docker Desktop, VMware Workstation, VirtualBox, Hyper-V, WSL 2, Python 3(用于 Volatility 3) | ## 设置 克隆仓库: ``` git clone https://github.com/Jonnmy/ambar-forensics.git ``` 刚接触这个?[安装教程](INSTALL.md) 详细介绍了每一个步骤,包括你需要自行下载哪些工具,以及为什么它们的许可证阻止了在这里分发它们。 在仓库根目录下运行依赖助手: ``` setup-tools.bat ``` 它不会在未经询问的情况下下载任何内容。菜单提供以下选项: 1. 检查哪些工具已经就位 2. 列出所有缺失的工具,提供官方下载页面和确切的目标文件夹 3. 自动下载可自由分发的工具(7-Zip, Android Platform-Tools, Sysinternals) 4. 将当前状态写入 `setup-report.txt` 5. 打开特定工具的下载页面 然后以管理员身份运行 Ámbar: ``` Script\Windows\ForensicScript.bat ``` 你不需要准备齐所有工具才能开始。框架会根据当前找到的工具运行。 ## 第三方工具 **此处不分发任何第三方二进制文件。** 每个工具都保留其各自的许可证,其中一些需要最终用户注册或接受 EULA。尤其是 KAPE,它是不可再分发的。 | 工具 | 用途 | 可用性 | |---|---|---| | [KAPE](https://www.kroll.com/kape) | 痕迹分流 | 需要注册,不可再分发 | | [FTK Imager](https://www.exterro.com/ftk-product-downloads/ftk-imager) | 磁盘镜像 (RAW/S01) | 需要注册 | | [DumpIt](https://www.magnetforensics.com/resources/magnet-dumpit-for-windows/) | RAM 捕获 | 需要注册 | | [dc3dd](https://sourceforge.net/projects/dc3dd/) | 带有内联 hash 计算的磁盘镜像 | 免费 (GPL) | | [dd for Windows](http://www.chrysocome.net/dd) | 磁盘镜像 | 免费 (GPL) | | [libewf](https://github.com/libyal/libewf) | E01 格式 | 免费 (LGPL) | | [WinPmem](https://github.com/Velocidex/WinPmem) | RAM 捕获 | 免费 (Apache 2.0) | | [HashMyFiles](https://www.nirsoft.net/utils/hash_my_files.html) | hash 计算 | 免费软件 (NirSoft) | | [QEMU](https://qemu.weilnetz.de/w64/) | 虚拟磁盘转换 | 免费 (GPL) | | [Volatility 3](https://github.com/volatilityfoundation/volatility3) | 内存分析 | 免费 (VSL) | | [Sysinternals](https://learn.microsoft.com/sysinternals/downloads/sysinternals-suite) | 辅助分析 | 免费软件 (Microsoft) | | VMware, VirtualBox | 虚拟机操作 | 随 hypervisor 附带 | ## 已知限制 提前声明,因为隐瞒这些限制正是导致证据失去效力的原因。 * **写阻断器是基于软件的。** 它通过 `Set-Disk` 将磁盘设置为只读。这是一种有效的、可记录的缓解措施,但它**不等同于**硬件写阻断器,必须在监管链中如实记录。 * **Volatility 3 无法直接打开 Hyper-V 保存的状态**(`.vmrs`, `.bin`)。参见 [volatility3#1886](https://github.com/volatilityfoundation/volatility3/issues/1886)。`hv_savedstate_to_raw.ps1` 会首先将它们转换为 RAW 物理镜像。 * **获取正在运行的虚拟机快照会捕获本质上不一致的状态。** 务必记录虚拟机当时是处于运行、挂起还是关机状态。 * **`Sistema\poc\` 包含概念验证代码**,涉及客户机操作和加密。它不属于生产模块的一部分。 ## 文档 | 文档 | 内容 | |---|---| | **技术文档** [PDF](docs/Technical_Documentation.en.pdf) · [HTML](docs/Technical_Documentation.en.html) | 十九章:涵盖架构、启动与能力检测、各个获取模块、完整性验证、中断处理核心、日志记录以及参考附录 | | **Documentación técnica** [PDF](docs/Documentacion_Tecnica.es.pdf) · [HTML](docs/Documentacion_Tecnica.es.html) | 相同文档的西班牙语版本 | | [项目网站](https://jonnmy.github.io/ambar-forensics/) | 双语模块概述、设计说明与设置指南 | | [`docs/dfir_command_catalog.html`](docs/dfir_command_catalog.html) | DFIR 命令参考 | ## 标准 | 标准 | 应用于 | |---|---| | RFC 3227 | 证据收集和归档指南,易失性顺序 | | UNE 197010 | ICT 鉴定报告标准 | | 监管链 | 自动记录操作员、主机、时间戳、工具和 hash | | SHA-256 | 所有获取证据的完整性验证 | ## 作者 **Euclides J. Ángeles Alcántara**,数字取证技术专家,ITLA。多米尼加共和国,圣多明各。 [LinkedIn](https://linkedin.com/in/euclides-j-angeles) · [EuclidesJ.Angeles@protonmail.com](mailto:EuclidesJ.Angeles@protonmail.com) ## 许可证 本仓库中的代码基于 [MIT 许可证](LICENSE) 发布。其调用的第三方工具受各自许可证的约束,如上所列。
标签:AI合规, Android, DSL, IPv6, PowerShell, 内存获取, 数字取证, 磁盘取证, 自动化脚本