基于 Windows 的事件响应数字取证采集工具。
运行方式:将 dfirtriage.exe 放入目标或连接的 USB 驱动器,并以管理员权限执行,使用 -h 查看帮助。
本文档概述 DFIRtriage 工具的功能和正确使用方法。同时包含帮助分析输出结果的详细信息。目标是让事件响应者能够快速收集和分析数据。
DFIRtriage 是一款事件响应工具,旨在为事件响应者提供快速的主机数据。执行后,将收集选定主机数据和信息并放置到执行目录中。DFIRtriage 可以从 USB 驱动器运行,或在目标主机上远程执行。
输出结构重组
记录总运行时间
Bug 修复
新增单个系统工件参数
-sdb, --srumdb(SRUM 数据库),-hf, --hiberfil(hiberfil.sys),-p, --pagefile(pagefile.sys)改进的可执行文件哈希能力
运行中进程详情
BitLocker 密钥导出
-bl 或 --bitlocker 参数内存采集不再是默认操作
-m 或 --memory 参数执行结束时的用户提示已移除
-hl 或 --headless 参数来绕过结束时的用户提示,脚本将运行至完成、清理并退出,无需用户干预。Windows 防火墙
-elf 参数提取完整防火墙事件日志 (EVTX)改进的用户账户报告
dtfind - 移除管理员要求
第三方工具更新
外部 IP
PowerShell
-elf, --evtlogfiles 参数可提取完整的 PowerShell EVTX 文件系统信息
事件日志
-elf, --evtlogfiles 参数可提取完整的 PowerShell 和防火墙事件日志应用程序事件日志
安全事件日志
PowerShell 事件日志
Windows 防火墙事件日志
本地修改(级别 0、2、4)(2004, 2005, 2006, 2009, 2033)
工具仓库包含执行所需的所有工具集,并打包成一个名为 core.ir 的单个文件。这个 .ir 文件是 DFIRtriage 在 Python 中运行时唯一需要的依赖项,应位于名为 data 的目录中(例如 ./data/core.ir)。已编译版本的 DFIRtriage 嵌入了完整的工具集,不需要添加 ./data/core.ir 文件。
DFIRtriage 从执行它的主机上获取数据。在键盘操作中,最好从 USB 设备执行。对于远程主机的采集,需要将 DFIRtriage 文件复制到目标,然后通过远程 shell 执行(例如 SSH 或 PSEXEC)。
警告:不要使用 PSEXEC 参数将凭据传递给远程系统进行身份验证。这样做会将你的用户名和密码以明文形式通过网络发送。
正确使用 PSEXEC 应遵循以下步骤:
你可以使用此映射连接将 DFIRtriage 复制到目标。
现在我们可以使用 PSEXEC 向目标主机推送远程 shell。
psexec \\target\_host cmd
你现在有了目标上的远程 shell。此时执行的所有命令都是在目标主机上执行的。
用法
一旦在目标上建立了远程 shell,你可以更改目录到解压后的 DFIRtriage.exe 文件所在位置并执行。
默认情况下不进行内存采集。要转储内存,请传递以下参数:-m, --memory
DFIRtriage 必须以管理员权限执行。
完成后,按回车键清理输出目录。如果运行可执行文件,剩余的数据只有输出的压缩归档文件以及 DFIRtriage.exe。如果直接运行 Python 代码,则只保留 DFIRtriage Python 脚本和输出的压缩归档文件。
输出文件夹名称包含目标主机名和执行 DFIRtriage 时的日期/时间代码。日期/时间代码格式为 YYYYMMDDHHMMSS。
下表提供了 DFIRtriage v6.0 收集的信息和工件的总体列表。
| 工件 | 描述 |
| 内存 | 原始内存映像采集 |
| 系统信息 | 构建版本、已安装补丁、BitLocker 及卷影副本信息等 |
| 当前日期和时间 | 当前系统日期和时间 |
| 预读取 | 收集并解析预读取数据 |
| PowerShell 命令历史 | 收集所有用户(包括 SYSTEM 账户)的 PowerShell 命令历史 |
| 用户活动 | HTML 格式的近期用户活动报告 |
| 文件哈希 | 计算 OS 分区上所有 EXE 和 DLL 文件的 MD5、SHA-1 或 SHA-256 哈希 |
| 网络信息 | 网络配置、路由表、连接等 |
| DNS 缓存条目 | 完整 DNS 缓存内容列表 |
| ARP 表信息 | 完整 ARP 缓存内容列表 |
| NetBIOS 信息 | 活动 NetBIOS 会话、传输的文件等 |
| Windows 更新日志 | 收集更新信息并构建 Windows 更新日志 |
| Windows 事件日志 | 收集并解析多个 Windows 事件日志 |
| 进程信息 | 进程、PID、映像路径及完整命令行 |
| 远程打开的文件列表 | 远程主机在目标系统上打开的文件 |
| 隐藏目录列表 | 系统分区上所有隐藏目录的列表 |
| 备用数据流 | 包含备用数据流的文件列表 |
| 完整文件列表 | 系统分区上所有文件的完整列表 |
| 计划任务列表 | 所有已配置的计划任务列表 |
| 所有采集数据哈希 | DFIRtriage 采集的所有数据的 SHA-256 哈希 |
| 本地及域用户账户信息 | 用户名、配置文件路径、账户 SID 等 |
| 自动运行信息 | 所有自动运行位置及其内容 |
| 已登录用户 | 当前登录到目标系统的所有用户 |
| 注册表配置单元 | 提取所有注册表配置单元 |
| USB 工件 | 解析 USB 使用信息所需的数据 |
| 浏览器历史记录 | 浏览器历史的汇总报告 |
| SRUM 数据库 | SRUM(系统使用资源监控器)收集的系统使用信息 |
本手册的此部分旨在为分析 DFIRtriage 输出时提供指导。以下信息仅作为指南提供,因为详细描述这些数据的每一种可能用途并不现实。大部分分析将取决于具体情形和事件响应者的分析技能。
| 输出目录根目录 | 分析说明 |
|---|---|
| ForensicImages\ | 详见下方内容说明。 |
| LiveResponseData.zip | 压缩的采集数据归档 |
| triage_acquisition_hashlist.csv | 此文件包含 DFIRtriage 采集的所有数据的计算哈希值。此信息可用于验证输出数据的完整性。 |
| ForensicImages \ hdd | 分析说明 |
|---|---|
| .E01, .dd, 等 | 采集脚本不获取文件系统映像。此文件夹在此用于组织目的,以防采集了此类映像。 |
| ForensicImages \ memory | 分析说明 |
|---|---|
| memdump.raw | memdump.raw 是易失性内存的完整原始映像,应在目标机关机或重启之前采集。应使用多种内存分析工具对结果进行交叉验证。 |
| ForensicImages \ system-files | 分析说明 |
|---|---|
| hiberfil.sys | Hiberfil.sys 是系统休眠时创建的压缩 RAM 映像。 |
| pagefile.sys | Pagefile.sys 在 RAM 不可用时存储通常写入 RAM 的数据。 |
| srudb.dat | Srudb.dat 包含 SRUM(系统使用资源监控器)收集的系统使用信息 |
| LiveResponseData \ filesystem | 分析说明 |
|---|---|
| Alternate_data_streams.txt | 包含目标系统上所有含有备用数据流内容的文件。备用数据流可用于轻松隐藏信息甚至整个文件,同时不被用户察觉。 |
| full_file_list.csv.zip | 此报告有助于确定目标系统上是否存在已知文件夹或文件。 |
| List_hidden_directories.txt | 所有对用户隐藏的目录日志。应检查此日志,寻找位于不常见位置(例如用户临时文件夹)的可疑隐藏目录。 |
| psfile.txt | 检查信息,确定目标主机上是否有远程打开的文件。 |
| shadow_files.txt | 提供目标系统上可用的卷影副本点详细信息。 |