Caçando malware com o ShimCache: um fluxo passo a passo

3 min de leitura

TL;DR. Parseie a hive SYSTEM → filtre caminhos em áreas graváveis pelo usuário (AppData, Temp) e caminhos de sistema inesperados → corrobore os hits com hashes do AmCache e Prefetch → pivote no SHA-1 quando o arquivo sumiu. O ShimCache coloca nomes na sua lista de caça; ele não fecha o caso sozinho.

O ShimCache é um dos pontos de pivô de maior sinal no threat hunting Windows: ele registra executáveis que o Windows examinou, inclusive aqueles já excluídos. Este post é um fluxo concreto para transformar um dump de ShimCache em uma lista curta de hosts e arquivos que merecem investigação.

Fluxo de cinco passos para caçar malware com o ShimCache

O fluxo em cinco passos

  1. Colete a hive SYSTEM. Puxe o arquivo offline de C:\Windows\System32\config\SYSTEM (com seus .LOG1 / .LOG2) ou use um coletor live como o Velociraptor. Para o contexto sobre quando o cache é realmente escrito, veja Onde o ShimCache fica armazenado.
  2. Parseie para uma lista plana. Decodifique o blob binário em linhas (caminho, mtime, formato). O Shimcache Parser faz isso no seu navegador; os parsers de referência fazem offline.
  3. Filtre caminhos suspeitos. A caça começa aqui — você procura padrões, não linhas isoladas.
  4. Corrobore a execução. Um hit no ShimCache prova existência, não execução. Combine cada linha interessante com Prefetch, AmCache ou logs de eventos (referência).
  5. Pivote no hash. Quando o arquivo em disco sumiu, o SHA-1 do AmCache é seu gancho para buscas em VirusTotal / TI (por que ambos os artefatos).

Padrões que vale a pena filtrar

Estes são os padrões de caminho que caçadores pontuam mais alto na prática:

  • Diretórios graváveis pelo usuário: \AppData\Local\Temp\, \AppData\Roaming\, \Users\Public\, \ProgramData\ — lugares onde usuários e serviços podem soltar binários sem privilégios de admin.
  • Sistema gravável mas não deveria: C:\Windows\Temp\, C:\PerfLogs\, C:\Recycler\$Recycle.Bin\ — qualquer coisa sob C:\Windows\ que não seja um caminho Windows conhecido.
  • Extensões duplas / mímica de binários do sistema: svchost.exe fora de \System32\, lsass.exe em locais incomuns, *.pdf.exe, *.docx.exe.
  • Compartilhamentos de rede e mídias removíveis: \\?\UNC\, letras de unidade diferentes de C:, \Device\HarddiskVolumeShadowCopy*.
  • Ferramentas one-shot: psexec.exe, winrm.cmd, wmiexec.exe, artefatos cobaltstrike — ferramentas legítimas de admin são frequentemente abusadas.

Não seja esperto demais com regex na primeira passada. Ordene por mtime e percorra as entradas recentes visualmente — isso encontra coisas que filtros heurísticos perdem.

Regras de triagem

Quando uma linha parece interessante, alguns checks rápidos separam sinal de ruído:

  • Tem um Prefetch irmão? Isso é quase prova de execução.
  • AmCache tem SHA-1? Procure-o. Um hash limpo assinado por fabricante leva a despriorizar rapidamente.
  • O mtime está suspeitamente perto de um horário de incidente conhecido? Um binário modificado nos minutos próximos a um alerta merece olhar mais a fundo.
  • O diretório-pai é o perfil do usuário, mas o usuário não deveria ser admin? Razoável, mas vigie indicadores de elevação (Sysmon 4688 com tokens elevados).

O que este fluxo não diz

O ShimCache sozinho não vai te contar quem lançou o binário, com quais argumentos, ou quando. Para isso, você precisará de Sysmon, logs de Segurança, ou uma timeline completa de execução de programas. O trabalho do ShimCache é colocar nomes na sua lista de caça — não fechar a investigação sozinho.

Leitura adicional

Artigos relacionados