Windows Prefetch 执行历史取证分析:格式解析、工具链与威胁检测实战指南

发布时间:2026/9/10 9:31:49
Windows Prefetch 执行历史取证分析:格式解析、工具链与威胁检测实战指南 Windows Prefetch 执行历史取证分析格式解析、工具链与威胁检测实战指南【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills导读本文围绕 Anthropic-Cybersecurity-Skills 仓库中 analyzing-prefetch-files-for-execution-history 技能所配套的 API Reference 展开系统讲解 Windows Prefetch 文件的二进制格式、版本演化、主流解析工具PECmd、WinPrefetchView、Python以及基于 Prefetch 的恶意程序执行证据识别与时间线构建方法。读完本文你将能够独立完成从磁盘镜像提取 Prefetch → 解析执行历史 → 标记可疑程序 → 生成攻击时间线的完整取证流程并理解各版本文件头的底层字段偏移可在无图形化工具的环境下手工解析。Prefetch 文件格式速览Prefetch 是 Windows 为加速应用程序启动而引入的性能优化机制系统会在程序首次执行后记录其加载的文件、目录与执行次数用于后续预读prefetch。对取证人员而言它天然成为某程序是否被运行过、运行了多少次、最后一次运行时间的权威证据源。存储位置与命名约定Prefetch 文件固定存放于C:\Windows\Prefetch\目录其命名遵循EXECUTABLE_NAME-XXXXXXXX.pf约定EXECUTABLE_NAME—— 被执行程序的大写名称XXXXXXXX—— 可执行文件完整路径的哈希值8 位十六进制字符.pf—— Prefetch 文件扩展名。需要特别强调的是路径哈希基于可执行文件的完整路径计算因此同一程序从不同路径启动会生成不同的 Prefetch 文件。这也是取证中辨别程序来源路径的重要依据。仓库配套脚本 scripts/agent.py 中的parse_prefetch_filename函数即实现了从文件名中拆分程序名与哈希的逻辑按最后一个-分隔。版本历史与能力演化版本Windows OS说明17XP基础格式23Vista、7新增运行次数、时间戳268、8.1扩展时间戳8 条记录3010、11MAM 压缩、8 条时间戳版本差异直接影响字段偏移位置与可提取的证据数量Vista/7 起可获取运行次数run countWindows 8 起最多保存 8 次最近运行时间戳Windows 10/11 的 Prefetch 文件则改用 MAM4 压缩文件头以MAM\x04开头必须先解压才能解析。头部结构未压缩格式偏移大小字段04版本号44签名SCCA124文件大小1660可执行文件名UTF-16LE764Prefetch 哈希快速解析PECmdEric Zimmerman完整解析器PECmd 是 Eric Zimmerman 出品的 Prefetch 全功能解析工具支持单文件、整目录与 CSV/JSON 批量导出是取证实践中事实上的标准工具。仓库技能文档 SKILL.md 的工作流将其作为第二步的核心解析手段。常用语法PECmd.exe -f prefetch_file # 解析单个文件 PECmd.exe -d prefetch_directory # 解析整个目录 PECmd.exe -d dir --csv output_dir # 导出 CSV PECmd.exe -d dir --json output_dir # 导出 JSON PECmd.exe -f file -q # 安静模式输出字段说明字段说明SourceFilename可执行文件原始路径RunCount程序被执行次数LastRun最近一次执行时间戳PreviousRun0-7最近 8 次运行时间戳Win8FilesLoaded执行期间访问的 DLL 与文件Directories访问过的目录VolumeSerialNumber可执行文件所在卷的序列号PECmd 的输出价值不仅在于时间更在于FilesLoaded与Directories字段——它们记录了程序启动最初 10 秒内访问的文件与目录可用于还原恶意软件加载的 DLL 依赖与行为上下文。仓库脚本 scripts/agent.py 还提供了run_pecmd封装可通过 subprocess 在分析流程中直接调用 PECmd 并将结果输出为 CSV。WinPrefetchViewNirSoft图形化视图若需要快速人眼浏览NirSoft 的 WinPrefetchView 提供了图形化界面列出所有 Prefetch 文件及其执行细节展示运行次数、时间戳、引用的文件支持导出为 CSV、HTML 或纯文本支持任意列排序便于按时间、程序名或运行次数快速筛选。适合在解析结果量巨大时进行交互式钻取或作为对 PECmd 批量输出的交叉复核手段。Python 手工解析脱离图形工具的底层方案当取证环境缺少 Windows 工具或需要自动化批量处理时可直接用 Python 按二进制结构解析。仓库的 references/api-reference.md 给出了最小解析示例而 scripts/agent.py 则提供了完整可运行的参考实现。头部结构解析import struct with open(APP.EXE-HASH.pf, rb) as f: data f.read() version struct.unpack_from(I, data, 0)[0] signature data[4:8] # Should be bSCCA exe_name data[16:76].decode(utf-16-le).rstrip(\x00) pf_hash struct.unpack_from(I, data, 76)[0]FILETIME 时间戳转换Windows FILETIME 是以 1601-01-01 为纪元、单位 100ns 的 64 位整数转换代码如下import datetime def filetime_to_datetime(filetime): epoch datetime.datetime(1601, 1, 1) delta datetime.timedelta(microsecondsfiletime // 10) return epoch delta版本感知的字段偏移从仓库实现 scripts/agent.py 可以看出不同版本的关键字段偏移并不相同版本 17XP运行次数偏移 144最后运行时间偏移 120版本 23Vista/7运行次数偏移 152最后运行时间偏移 128版本 268/8.1运行次数偏移 208最后运行时间偏移 128版本 3010/11文件以MAM\x04压缩头起始需先解压lznt1等库才能解析。同时parse_filetime函数scripts/agent.py演示了将 FILETIME 换算为 ISO 时间戳的另一种等价写法减去 116444736000000000 后除以 10^7 再经datetime.utcfromtimestamp格式化。建议取证脚本对时间戳转换做OverflowError/ValueError容错避免异常时间戳导致批量解析中断。压缩格式识别if data[:4] bMAM\x04: import lznt1 # or use DecompressBuffer # Windows 10 prefetch files are compressed print( [Compressed Win10 format - use PECmd for full parsing]) return None可疑执行证据识别Prefetch 命名的可读性使其成为攻击者工具执行的天然留痕点。已知攻击工具特征名工具Prefetch 名称MimikatzMIMIKATZ.EXE-*.pfPsExecPSEXEC.EXE-*.pf、PSEXESVC.EXE-*.pfBloodHoundSHARPHOUND.EXE-*.pfRubeusRUBEUS.EXE-*.pfLaZagneLAZAGNE.EXE-*.pf仓库脚本内置了更完整的检测名单SUSPICIOUS_EXECUTABLESscripts/agent.py涵盖 Mimikatz、PsExec、Rubeus、BloodHound/SharpHound、LaZagne、Seatbelt、SecretsDump、NTDSUTIL以及 CERTUTIL、BITSADMIN、MSHTA、REGSVR32、RUNDLL32、PowerShell、Cmd、MSBUILD 等双用途工具还有 Netcat/Nmap/Masscan 等网络扫描器和 RAR/7Z/WinRAR/rclone 等压缩与传输工具。detect_suspicious_execution函数scripts/agent.py会对每个解析结果做子串匹配并输出HIGH级别告警。LOLBinsLiving Off the Land关注清单二进制关注点CERTUTIL.EXE文件下载、Base64 解码MSHTA.EXE通过 HTA 执行脚本REGSVR32.EXECOM scriptlet 执行BITSADMIN.EXE文件下载MSBUILD.EXE通过项目文件执行代码实战检索命令技能文档 SKILL.md 给出了直接基于文件名的快速筛选命令可在 Linux 分析机上对已提取的 Prefetch 目录执行# 搜索已知恶意工具名 ls /cases/case-2024-001/prefetch/ | grep -iE \ (MIMIKATZ|PSEXEC|WMIC|COBALT|BEACON|PWDUMP|PROCDUMP|LAZAGNE|RUBEUS|BLOODHOUND|SHARPHOUND|CERTUTIL|BITSADMIN) # 搜索脚本解释器潜在恶意执行 ls /cases/case-2024-001/prefetch/ | grep -iE \ (POWERSHELL|CMD\.EXE|WSCRIPT|CSCRIPT|MSHTA|REGSVR32|RUNDLL32|MSIEXEC) # 搜索远程访问工具 ls /cases/case-2024-001/prefetch/ | grep -iE \ (TEAMVIEWER|ANYDESK|LOGMEIN|VNC|SPLASHTOP|SCREENCONNECT|AMMYY) # 搜索数据外传工具 ls /cases/case-2024-001/prefetch/ | grep -iE \ (RAR|7Z|ZIP|RCLONE|MEGA|DROPBOX|ONEDRIVE|GDRIVE|FTP|CURL|WGET) # 按修改时间找出最近执行的程序 ls -lt /cases/case-2024-001/prefetch/ | head -20注意Prefetch 文件本身存在即代表程序至少执行过一次可结合 Shimcache、Amcache 等其他痕迹交叉验证。技能 SKILL.md 的 Key Concepts 指出运行计数可能发生回绕wrap around时间线分析时应结合文件系统时间戳综合判断。时间线集成Plaso / log2timeline 超级时间线Prefetch 解析结果可与系统其它取证痕迹统一纳入超级时间线log2timeline.py timeline.plaso /path/to/prefetch/ psort.py -o l2tcsv timeline.plaso prefetch_timeline.csv这使 Prefetch 的执行记录能够与进程创建、网络连接、注册表改动等证据在同一时间轴上对齐比对还原完整的攻击链条。基于解析结果的执行时间线构建技能文档 SKILL.md 展示了从 JSON 解析结果生成执行时间线 CSV 的完整流程遍历每个条目的last_run_timesWin8 最多 8 条或last_run单时间戳组装(timestamp, executable, run_count, source)记录后按时间排序即可输出execution_timeline.csv并针对可疑时间窗口如入侵发生日做过滤打印。仓库脚本 scripts/agent.py 的build_execution_timeline函数实现了同等的排序逻辑并对N/A、Invalid timestamp做了健壮性过滤。完整取证工作流结合仓库技能文档技能 SKILL.md 给出了五步实战工作流可直接套用于真实案件Step 1从磁盘镜像提取 Prefetch 文件。以只读方式挂载镜像mount -o ro,loop,offset$((2048*512))将Windows/Prefetch/*.pf复制到工作目录并对全部文件计算 SHA-256 以保障证据完整性。Step 2用 PECmd 解析。单文件用-f整目录用-d配合--csv/--json导出结构化结果。Step 3Linux 环境用 Python 解析。安装pip install prefetch后可使用上文的手工解析代码或直接运行仓库脚本 scripts/agent.py其 CLI 支持传入目录批量分析、传入单个.pf文件详细输出含版本、签名、文件大小、可执行名、哈希等 JSON 结构并自动输出执行历史、可疑程序告警与执行时间线。Step 4识别可疑执行证据。使用上文 grep 命令矩阵检索恶意工具、脚本解释器、远程访问与数据外传工具。Step 5构建执行时间线。输出按时间排序的 CSV聚焦可疑时间窗口与攻击阶段对齐。典型应用场景技能 SKILL.md 归纳了四类高频场景确认恶意软件执行搜索恶意程序名 → 依据 Prefetch 存在性确认执行 → 提取运行次数与最后运行时间 → 分析引用 DLL 理解行为 → 与注册表自启动项关联攻击者工具使用时间线定位 PsExec、Mimikatz、BloodHound 等工具 Prefetch → 按时间排序 → 推断攻击顺序侦察、凭据窃取、横向移动→ 与网络连接日志匹配数据暂存与外传查找压缩工具7z、WinRAR、zip、文件传输工具rclone、FTP 客户端与云存储客户端的执行记录定位数据暂存与传输时间反取证行为检测检查 CCleaner、Eraser、SDelete 等反取证工具的执行识别 Prefetch 目录是否被清空活跃系统上文件数异常偏少并将反取证行为时间与其它证据对照。配套工具生态工具用途PECmdEric Zimmerman 的 Prefetch 解析器支持 CSV/JSON 输出WinPrefetchViewNirSoft 图形化查看工具python-prefetchPython 解析库Prefetch Hash Calculator由可执行路径反算预期哈希KAPE自动化取证工件采集含 PrefetchAutopsy带 Prefetch 分析模块的取证平台Plaso/log2timeline含 Prefetch 解析器的超级时间线工具Velociraptor支持 Prefetch 采集与分析 Artifact 的端点代理这些工具与技能文档共同构成从采集、解析到时间线集成的完整闭环其元数据映射可在 mappings 与 index.json 中检索到本技能对应的框架覆盖信息。报告输出参考格式技能 SKILL.md 给出了规范的取证报告骨架包含系统信息、Prefetch 文件总量、执行统计、可疑执行明细与攻击时间线例如Prefetch Analysis Summary: System: Windows 10 Pro (Build 19041) Prefetch Files: 234 Suspicious Executions: MIMIKATZ.EXE-5F2A3B1C.pf Run Count: 3 | Last: 2024-01-16 02:30:15 UTC PSEXEC.EXE-AD70946C.pf Run Count: 7 | Last: 2024-01-16 02:45:30 UTC RCLONE.EXE-1F3E5A2B.pf Run Count: 2 | Last: 2024-01-17 03:15:00 UTC Attack Timeline (from Prefetch): 2024-01-15 14:32 - POWERSHELL.EXE (initial access) 2024-01-16 02:30 - MIMIKATZ.EXE (credential theft) 2024-01-16 02:45 - PSEXEC.EXE (lateral movement) 2024-01-17 03:15 - RCLONE.EXE (data exfiltration)关键概念速查概念说明PrefetchWindows 性能优化机制预载应用数据并记录执行情况SCCA 签名标识合法 Prefetch 文件的魔数路径哈希基于可执行路径的 CRC 哈希构成 .pf 文件名一部分运行次数程序被启动次数可能回绕最近运行时间戳Windows 8 最多保存 8 次最近执行时间引用文件程序启动最初 10 秒内访问的文件与目录列表卷信息标识来源卷的驱动器序列号与创建日期MAM 压缩Windows 10 Prefetch 使用 MAM4 压缩解析前需先解压适用前提与限制Prefetch 默认在客户端系统开启服务器系统默认关闭分析服务器镜像时可能无此证据源解析前需确认 Prefetch 版本17/23/26/30版本 30 必须处理 MAM 压缩本技能配套的 scripts/agent.py 面向 Linux 分析环境与 Windows 二进制解析运行次数、时间戳等字段偏移以本文与脚本注释为准Windows 10/11 压缩格式建议交给 PECmd 做完整解析取证操作应始终基于只读挂载或镜像副本避免污染原始证据。【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考