Caçar malware com a ShimCache: um workflow passo a passo

4 min de leitura

TL;DR. Analise a hive SYSTEM. Filtre caminhos em locais com permissão de escrita pelo utilizador (\AppData\, \Temp\) e caminhos de sistema inesperados. Corrobore acertos com hashes da AmCache e com o Prefetch. Pivote por SHA-1 quando o ficheiro desapareceu. A ShimCache põe nomes na sua lista de caça. Não encerra casos sozinha.

A razão pela qual a ShimCache ganha lugar num workflow de caça é porque sobrevive. Um atacante deixa cair uma ferramenta, corre-a, apaga-a, e o caminho continua na cache. Isto torna-a um pivô de alto sinal quando a AmCache e o Prefetch foram limpos ou nunca estiveram ligados. Eis como a uso de facto.

Workflow de caça a malware com ShimCache em cinco passos

O workflow em cinco passos

  1. Recolher a hive SYSTEM. Extraia C:\Windows\System32\config\SYSTEM e os seus irmãos .LOG1 e .LOG2, ou use o Velociraptor para recolha viva. O guia de aquisição cobre os métodos seguros. Lembre-se que a cache vive em memória até clean shutdown, portanto consulte tempos de armazenamento antes de assumir que a hive em disco está atual.
  2. Analisar para uma lista plana. Descodifique o blob binário em linhas (path, mtime, format). O Shimcache Parser faz isto no browser; o AppCompatCacheParser de Eric Zimmerman ou o Shim Cache Parser da Mandiant fazem-no offline.
  3. Filtrar por caminhos suspeitos. É aqui que a caça acontece de facto.
  4. Corroborar execução. Uma linha na ShimCache, isolada, prova existência, não execução. Empareje cada linha interessante com Prefetch, AmCache, ou EVTX / Sysmon. A matriz completa está na referência de artefactos de execução de programas.
  5. Pivotar por hash. Quando o ficheiro em disco desapareceu, o SHA-1 da AmCache é a sua pega para pesquisas no VirusTotal e em threat intel. A análise ShimCache vs AmCache explica porque deve extrair sempre as duas.

Padrões que vale a pena filtrar

Estes são os padrões de caminho que pontuam consistentemente mais alto em caças reais:

  • Diretórios com escrita do utilizador. \AppData\Local\Temp\, \AppData\Roaming\, \Users\Public\, \ProgramData\. Utilizadores e serviços podem largar binários aqui sem direitos de admin, e fazem-no.
  • Escrita de sistema onde não deveria. C:\Windows\Temp\, C:\PerfLogs\, qualquer coisa sob C:\Windows\ que não seja um caminho conhecido do Windows. Binários de serviço do PsExec e ferramentas de pipes nomeados aterram aqui o tempo todo.
  • Duplas extensões e parecenças. svchost.exe fora de \System32\, lsass.exe em qualquer sítio invulgar, *.pdf.exe, *.docx.exe. O OriginalFileName da AmCache costuma desmascarar o disfarce.
  • Partilhas de rede e media removível. \\?\UNC\, letras de unidade que não C:, \Device\HarddiskVolumeShadowCopy*. Mostram o caminho de staging. Cruze com ficheiros LNK para histórico da shell.
  • Ferramentas de uso único. psexec.exe, winrm.cmd, wmiexec.exe, mimikatz*.exe, artefactos do Cobalt Strike. Ferramentas de administração legítimas são abusadas; trate-as como achados a esclarecer, não como ruído a ignorar.

Não se faça de esperto com regex à primeira passagem. Ordene por mtime e percorra as entradas recentes a olho. Isso apanha as coisas que os filtros heurísticos perdem, incluindo binários que o atacante renomeou para fugir à sua lista de filtros.

Regras práticas de triagem

Algumas verificações rápidas separam sinal de ruído:

  • Tem um irmão Prefetch? Quase prova de execução.
  • A AmCache traz um SHA-1? Procure-o. Hash limpo e assinado de fornecedor: despriorize. Hash desconhecido num caminho com escrita do utilizador: escale.
  • O mtime está suspeitamente próximo de uma hora conhecida de incidente? Modificado em minutos a partir de um alerta vale uma análise mais profunda. Lembre-se de que o mtime é uma propriedade do ficheiro, não o momento em que o Windows o viu.
  • O diretório pai é o perfil do utilizador mas o utilizador não é admin? Razoável para instaladores; fique atento a indicadores de elevação em Sysmon Event ID 1 e em Security 4688 com tokens elevados.
  • O USN journal ou a MFT confirmam criação na janela de interesse? Corroboração forte quando o ficheiro ainda está em disco.

O que este workflow não lhe diz

A ShimCache por si só não lhe diz quem lançou o binário, com que argumentos, ou quando. Para isso precisa de Sysmon, logs de eventos de segurança, ou uma timeline completa de execução de programas. O trabalho da cache é pôr nomes na lista de caça, não encerrar a investigação.

Leitura adicional

Artigos relacionados