自动从易失性内存转储中提取取证时间线。
AutoTimeliner 对 Windows、Linux 和 macOS 内存镜像运行多个 Volatility3 插件,然后将它们的输出合并为一个单一的、排序后的 CSV 时间线:
| 插件 | 捕获内容 |
|---|---|
timeliner | 跨插件时间戳事件(支持时适用于所有操作系统系列) |
| 插件 | 捕获内容 |
|---|---|
timeliner | 来自进程、注册表、句柄等的时间戳 |
mftscan | 内存中找到的 MFT 文件条目 |
shellbags | 来自注册表配置单元的用户文件夹访问历史 |
| 插件 | 捕获内容 |
|---|---|
linux.pslist | 进程启动/退出时间线上下文 |
linux.bash | Shell 命令历史证据 |
linux.lsof | 来自进程的打开文件证据 |
| 插件 | 捕获内容 |
|---|---|
mac.pslist | 进程启动/退出时间线上下文 |
mac.bash | Shell 命令历史证据 |
mac.lsof | 来自进程的打开文件证据 |
| 插件 | 捕获内容 |
|---|---|
psscan | 带有时间戳的活动、已终止和隐藏进程 |
cmdline | 每个进程的命令行参数 |
userassist | 来自 Windows 注册表的程序执行证据 |
| 插件 | 捕获内容 |
|---|---|
netscan | 带有创建时间戳的网络连接 |
| 插件 | 捕获内容 |
|---|---|
malfind | 代码注入和可疑内存区域 |
svcscan | Windows 服务(有助于持久性检测) |
| 插件 | 捕获内容 |
|---|---|
dlllist | 每个进程加载的 DLL |
filescan | 采集时内存中打开的文件的文件 |
handles | 打开的句柄(文件、注册表键、互斥体) |
AutoTimeliner 会自动识别内存镜像的操作系统系列,并为 Windows、Linux 或 macOS 启用相应的插件集。 要加快启动速度,可以传递
--os-hint跳过自动检测。
git clone https://github.com/andreafortuna/autotimeliner.git
cd autotimeliner
poetry install
pip install .
autotimeliner -f IMAGEFILE [-t TIMEFRAME] [-o OUTPUT] [options]
从单个镜像提取完整时间线:
autotimeliner -f TargetServer.raw
过滤到特定时间窗口:
autotimeliner -f TargetServer.raw -t 2023-10-17..2023-10-21
处理目录中的所有 .raw 文件,指定输出路径:
autotimeliner -f './*.raw' -o /evidence/timeline.csv
当您已知转储的操作系统时加快启动:
autotimeliner -f TargetServer.raw --os-hint windows
使用 macOS 别名值以方便:
autotimeliner -f MacbookCapture.mem --os-hint darwin
仅运行 timeliner 和 shellbags(跳过 MFT 扫描):
autotimeliner -f TargetServer.raw --skip-mftscan
完整取证扫描(Windows 插件集 + 可选的扩展插件):
autotimeliner -f TargetServer.raw --with-dlllist --with-filescan --with-handles --with-envars
快速恶意软件聚焦扫描:
autotimeliner -f TargetServer.raw --skip-timeliner --skip-mftscan --skip-shellbags
面向 Linux 的时间线收集(自动启用 Linux 插件):
autotimeliner -f UbuntuWorkstation.mem
面向 macOS 的时间线收集(自动启用 macOS 插件):
autotimeliner -f MacbookCapture.mem
输出 CSV 包含以下列:
AutoTimeliner 包含多项优化以减少识别时间:
--os-hint 完全绕过自动操作系统探测。linux、ubuntu、macos)优化。路径 + 大小 + 修改时间)缓存。缓存文件:
~/.cache/autotimeliner/volatility3/.autotimeliner_profile_cache.json
在检测期间,日志会显示探测进度和结果消息,例如:
OS probe attempt: family=windows plugin=windows.info.Info
OS probe returned no rows: windows.info.Info
Memory image identification succeeded: os=linux profile=linux:... probe=linux.banners.Banners
参见 docs/migration.md 获取完整对比。
主要变化:
-p / --customprofile 已弃用 — 被静默忽略。mftparser → mftscan — 相同数据,新插件名称。mactime 现在是可选的 — 对于旧的 body 文件工作流,使用 --use-mactime。poetry install
poetry run pytest
MIT — 参见 LICENSE。
Andrea Fortuna — [email protected] — andreafortuna.org
envars| 进程的环境变量 |
| 依赖项 | 版本 | 备注 |
|---|
| Python | ≥ 3.9 | |
| Volatility3 | ≥ 2.5 | 通过 Poetry/pip 自动安装 |
| jsonschema | ≥ 4.0 | 启用 Volatility3 模式验证并避免 Dependency for validation unavailable: jsonschema 警告 |
| mactime | 任意 | 可选 — 仅在 --use-mactime 传统模式下需要 |
| 标志 | 描述 |
|---|
-f, --imagefile | 内存转储文件或通配符(例如 '*.raw') |
-t, --timeframe | 过滤为 YYYY-MM-DD..YYYY-MM-DD 范围 |
-o, --output | 输出 CSV 路径(默认:<imagefile>-timeline.csv) |
--os-hint | 强制设置镜像操作系统系列(windows、linux、mac;别名:win、macos、darwin)并跳过自动识别 |
--skip-timeliner | 跳过 timeliner 插件 |
--skip-mftscan | 跳过 mftscan 插件 |
--skip-shellbags | 跳过 shellbags 插件 |
--skip-psscan | 跳过进程扫描 |
--skip-cmdline | 跳过命令行提取 |
--skip-netscan | 跳过网络连接扫描 |
--skip-userassist | 跳过程序执行证据 |
--skip-svcscan | 跳过 Windows 服务扫描 |
--skip-malfind | 跳过恶意软件/注入检测 |
--with-dlllist | 启用 DLL 分析(慢) |
--with-filescan | 启用打开文件扫描(记录很多) |
--with-handles | 启用句柄扫描(记录很多) |
--with-envars | 启用环境变量提取 |
--use-mactime | 传统模式:使用外部 mactime 二进制文件 |
-v, --verbose | 启用调试日志 |
--version | 打印版本并退出 |
| 列 | 描述 |
|---|
Timestamp (UTC) | ISO 8601 UTC 时间戳 |
Source | 产生记录的插件 |
Description | 文件名、路径、进程或注册表键 |
Detail | 时间戳类型、用户或额外上下文 |
Inode | MFT inode 编号(如果适用) |
UID / GID | 用户/组标识符 |
Size | 文件大小(字节) |
Mode | 文件模式字符串 |