用 ShimCache 狩猎恶意软件:分步工作流

约 1 分钟阅读

TL;DR. 解析 SYSTEM 配置单元 → 在用户可写区域(AppDataTemp)与异常的系统路径上过滤 → 用 AmCache 的哈希与 Prefetch 印证命中 → 文件已删除时以 SHA-1 为枢纽。ShimCache 把名字放上你的狩猎清单,并不能独自结案。

ShimCache 是 Windows 威胁狩猎中信号最强的支点之一:它记录了 Windows 检查过的可执行文件,连早已删除的也包含在内。本文给出一个具体的工作流,把一份 ShimCache 转储变成一份值得深入的主机与文件短名单。

用 ShimCache 狩猎恶意软件的五步工作流

五步工作流

  1. 采集 SYSTEM 配置单元。C:\Windows\System32\config\SYSTEM(连同 .LOG1 / .LOG2)离线提取,或使用 Velociraptor 之类的在线采集器。关于 何时 真正写入,请见 ShimCache 存储在哪里
  2. 解析为扁平列表。 把二进制 blob 解析为 (路径, mtime, 格式) 的行。Shimcache Parser 在浏览器里完成;参考解析器 离线完成。
  3. 按可疑路径过滤。 狩猎从这里开始 —— 你要找的是模式,不是单一行。
  4. 印证执行。 一次 ShimCache 命中只能证明存在,不能证明执行。把每一行有意思的记录与 Prefetch、AmCache 或事件日志结合(参考)。
  5. 以哈希为枢纽。 磁盘上的文件已不在时,AmCache 的 SHA-1 是你查 VirusTotal/威胁情报的把手(为何要两者)。

值得过滤的模式

实际中狩猎人最看重的路径模式:

  • 用户可写目录: \AppData\Local\Temp\\AppData\Roaming\\Users\Public\\ProgramData\ —— 用户与服务无须管理员权限即可投放二进制文件的位置。
  • 本不该可写的系统位置: C:\Windows\Temp\C:\PerfLogs\C:\Recycler\$Recycle.Bin\ —— 任何位于 C:\Windows\ 下但不属于已知 Windows 路径的内容。
  • 双扩展名 / 模仿系统二进制的命名: \System32\ 之外的 svchost.exe、出现在奇怪位置的 lsass.exe*.pdf.exe*.docx.exe
  • 网络共享与可移动介质: \\?\UNC\、非 C: 的盘符、\Device\HarddiskVolumeShadowCopy*
  • 一次性使用的工具: psexec.exewinrm.cmdwmiexec.execobaltstrike 相关产物 —— 合法的管理员工具常被滥用。

第一遍别在正则上太花哨。按 mtime 排序后用眼睛扫近期条目 —— 这能发现启发式过滤漏掉的东西。

分诊经验

当一行看起来可疑时,几个快速检查就能区分信号与噪声:

  • 它有对应的 Prefetch 吗? 那几乎就是执行证据。
  • AmCache 是否带 SHA-1? 查一下。来自正规厂商签名的干净哈希,让你迅速降低优先级。
  • mtime 是否可疑地接近已知事件时刻? 在告警发生前后几分钟内被修改的二进制,值得深入查看。
  • 父目录在用户配置文件但用户本不该是管理员? 有可能,但要查看权限提升迹象(带提升令牌的 Sysmon 4688)。

这一工作流不会告诉你的

ShimCache 单独并不能告诉你是谁用什么参数何时启动了该二进制。要回答这些,需要 Sysmon、Security 日志,或 一份完整的程序执行时间线。ShimCache 的职责是把名字放上你的狩猎清单 —— 而不是独自结案。

延伸阅读

相关文章