TL;DR. 把 ShimCache + AmCache + Prefetch + BAM/DAM + Security/Sysmon 融合成一条时间线。先用 ShimCache 定义 角色表(路径),再用其他源的时间戳逐行充实。务必为每个时间戳标注其来源语义 —— 不要把「文件 mtime」和「进程启动」塞进同一列。
程序执行时间线是 Windows IR 调查员最有用的单一产物。做得好,它能跨多源讲清楚一条时间线索;做得差,则会夸大证据并招来反驳。本文展示如何以 ShimCache 为脊梁构建这样一份时间线。
为什么 ShimCache 适合做脊梁
ShimCache 在任何单一字段上都未必是最准的源,但作为时间锚点它有独特优势:
- 它显式携带 文件路径(有些证据只有哈希或片段路径)。
- 它捕捉的是 Windows 仅仅 检查过 的可执行文件 —— 因此包括了运行短暂随即被删除、Prefetch 与 BAM 可能错过的二进制。
- 它能熬过许多会擦除其它证据的反取证手段(带 若干重要前提)。
用 ShimCache 定下时间线的 出场人物,再用佐证证据给每行赋予可靠时间。
需要融合的数据源
一份完整的程序执行时间线至少要拉这五个源:
| 源 | 给行带来什么 |
|---|---|
| ShimCache | 路径 + 文件 mtime |
| AmCache | SHA-1、大小、发布者、安装日期、首次执行日期 |
| Prefetch | 进程启动时间(最近 8 次),加载的文件 |
| BAM/DAM | Win10/11 每用户的「最后执行」时间戳 |
| Security/Sysmon | 带命令行、父进程、用户的进程创建事件 |
各自细节见 程序执行证据参考。
可复现的工作流
- 收集证据。 SYSTEM 配置单元(含事务日志)、
Amcache.hve、C:\Windows\Prefetch\*.pf、导出的 Security 事件日志、可获取时一并取 Sysmon 日志。 - 分别解析为规范表。 使用 Eric Zimmerman 工具集(
AppCompatCacheParser、AmcacheParser、PECmd),ShimCache 部分可在浏览器中用 Shimcache Parser。 - 按 (路径, 可选 SHA-1) 联接。 联接键是路径,AmCache 提供 SHA-1 时作为次要信号。注意:ShimCache 中的路径可能稍有差异(大小写、规范化)。
- 给每个时间戳标注来源语义。 不要把「AmCache 安装日期」与「Prefetch 运行时间」混在一列 —— 它们回答不同的问题。相邻列,但要分清。
- 用支持按行注明来源的工具来呈现。 Eric Zimmerman 的 Timeline Explorer (TLE) 与 Plaso / log2timeline 都做得很好。规模较小时,电子表格里的 CSV 也够用。
「好」的一行长什么样
一份能站得住的最终时间线,里面一行大致是:
2026-04-12 09:14:33 UTC C:\Users\alice\AppData\Local\Temp\setup.exe
ShimCache mtime : 2026-04-12 09:14:30 UTC
AmCache : SHA-1 a3b8c9…,签名者「Acme Updates」,安装 2026-04-12 09:14:33
Prefetch : 最后执行 2026-04-12 09:15:01 UTC(1 次)
Security 4688 : 2026-04-12 09:15:01 UTC,PID 4521,父 PID 1234 (svchost.exe)
每个时间戳都有来源,整行能经得起反驳。反过来 ——「ShimCache 显示 setup.exe 在 09:14:33 运行」—— 则把文件 mtime 混同为执行时间,正是会被报告驳回的那种主张。见 执行证明。
当来源彼此冲突时
冲突本身是有用的数据:
- ShimCache mtime ≠ Prefetch 首次执行。 正常 —— 它们度量的是不同事物。两个都记下,不要二选一。
- AmCache 说执行过,ShimCache 对该文件却为空。 可能原因:反取证擦除(检测模式)、被 1,024 上限挤出、二进制在上一次干净关机之后才运行。
- Prefetch 缺失。 服务器 SKU 与 SSD 为主的主机经常禁用 Prefetch —— 回退到 AmCache + BAM。
在合适的地方停下
时间线无需面面俱到才有价值。一个聚焦的窗口 —— 「主机 X 在 2026-04-11 14:00 至 18:00 之间运行了什么?」—— 严密构建出来,胜过一份大而失据的全景时间线。要选好这个窗口,恶意软件狩猎工作流 会帮上忙。
延伸阅读
- Plaso / log2timeline —— 能消化 ShimCache、AmCache、Prefetch 及数十种 Windows 证据的开源时间线引擎。
- Eric Zimmerman 工具集 —— 参考解析器与 Timeline Explorer。
- Velociraptor
Windows.Registry.AppCompatCache—— 规模化采集。