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

约 1 分钟阅读

TL;DR. 解析 SYSTEM hive。过滤位于用户可写位置(\AppData\、\Temp\)以及非预期的系统路径下的路径。用 AmCache 哈希和 Prefetch 佐证命中。当文件已不在时,凭 SHA-1 进行枢转。ShimCache 把名字放进你的狩猎清单。它不会单独结案。

ShimCache 在狩猎工作流里占有一席之地的原因,是它能存活下来。攻击者投放工具、运行、删除,路径仍留在缓存里。这让它在 AmCache 和 Prefetch 被清除或本就没启用时成为高信号的枢转点。下面是我实际的使用方式。

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

五步工作流

  1. 采集 SYSTEM hive。 抓取 C:\Windows\System32\config\SYSTEM 及其同级的 .LOG1 和 .LOG2,或用 Velociraptor 进行活体采集。采集指南 介绍了安全的方法。请记住缓存在 clean shutdown 之前都驻留在内存中,因此在假设磁盘上的 hive 是最新之前,先查阅 存储时机。
  2. 解析为扁平列表。 把二进制 blob 解码为 (path, mtime, format) 行。Shimcache Parser 在浏览器中完成;Eric Zimmerman 的 AppCompatCacheParser 或 Mandiant 的 Shim Cache Parser 在离线完成。
  3. 按可疑路径过滤。 这里才是狩猎真正发生的地方。
  4. 佐证执行。 一行 ShimCache 只能证明存在,不能证明执行。把每条值得注意的行与 Prefetch、AmCache 或 EVTX / Sysmon 配对。完整矩阵见 程序执行工件参考。
  5. 凭哈希枢转。 磁盘上的文件不在时,AmCache 的 SHA-1 就是你在 VirusTotal 和威胁情报里查询的抓手。ShimCache vs AmCache 详解 解释了为何要同时拉两者。

值得过滤的模式

在真实狩猎中得分一贯最高的路径模式:

  • 用户可写目录。 \AppData\Local\Temp\、\AppData\Roaming\、\Users\Public\、\ProgramData\。用户和服务无需管理员权限即可在此投放二进制,而他们确实会这样做。
  • 系统可写但不该如此的位置。 C:\Windows\Temp\、C:\PerfLogs\、C:\Windows\ 下任何不属于已知 Windows 路径的内容。PsExec 服务二进制和命名管道工具经常落在这里。
  • 双扩展名和障眼法。 \System32\ 之外的 svchost.exe、在不寻常位置的 lsass.exe、*.pdf.exe、*.docx.exe。AmCache 的 OriginalFileName 通常会戳穿伪装。
  • 网络共享与可移动介质。 \\?\UNC\、非 C: 的盘符、\Device\HarddiskVolumeShadowCopy*。它们显示出 staging 路径。与 LNK 文件 交叉参照以了解 shell 历史。
  • 一次性工具。 psexec.exe、winrm.cmd、wmiexec.exe、mimikatz*.exe、Cobalt Strike 工件。合法的管理工具会被滥用;把它们当作需要查清的发现来对待,而不是可以忽略的噪声。

第一遍不要在正则表达式上耍小聪明。按 mtime 排序,并用眼睛扫一遍最近的条目。这能抓住启发式过滤器漏掉的东西,包括攻击者为了绕过你的过滤列表而改名的二进制。

分诊经验法则

几条快速检查能把信号从噪声中分离出来:

  • 它有对应的 Prefetch 同伴吗? 几乎是执行的证据。
  • AmCache 是否带有 SHA-1? 查一下。干净的厂商签名哈希意味着降低优先级。在用户可写路径上的未知哈希意味着升级。
  • mtime 是否可疑地接近某次已知事件时间? 在告警后几分钟内被修改值得深入查看。请记住 mtime 是文件的属性,而非 Windows 看到它的瞬间。
  • 父目录是用户的 profile,但该用户不是管理员? 对于安装器来说合理;要留意 Sysmon Event ID 1 和带提升 token 的 Security 4688 中的提升迹象。
  • USN journal 或 MFT 能否确认在感兴趣的时间窗口内有创建? 当文件仍在磁盘上时是强有力的佐证。

这个工作流不会告诉你的事

ShimCache 单独不会告诉你谁、用什么参数、何时启动了该二进制。要回答这些,你需要 Sysmon、Security 事件日志或一条 完整的程序执行时间线。缓存的工作是把名字放进狩猎清单,不是结案。

延伸阅读

相关文章