Extraindo o ShimCache de um dump de memória

3 min de leitura

TL;DR. O ShimCache vive em memória; a hive SYSTEM em disco só contém entradas gravadas no último desligamento limpo. Para recuperar entradas da sessão atual de um host em execução ou crashado, rode windows.shimcachemem do Volatility 3 (ou o artefato Windows.Registry.AppCompatCache do Velociraptor) contra uma imagem de memória.

O ShimCache vive em memória volátil enquanto o Windows está rodando, e só é gravado na hive SYSTEM em um desligamento limpo (mais sobre o timing). Isso significa que uma imagem de memória de um host em funcionamento é frequentemente o único lugar para encontrar entradas do ShimCache da última sessão — exatamente as entradas mais prováveis de serem relevantes para um incidente ativo.

Quando a cópia em memória importa mais que a do disco

Você quer o ShimCache em memória quando:

  • O host não foi desligado de forma limpa desde o incidente. A maioria dos reinícios forçados, BSODs e cortes forçados deixam o ShimCache da hive SYSTEM defasado.
  • Você suspeita de anti-forense. Um atacante que editou a hive em disco pode não ter tocado na cópia em memória (que é reconstruída a cada sessão). Veja detecção anti-forense.
  • Você precisa de entradas que foram expulsas da hive em disco no último flush. O limite de 1.024 entradas rotaciona as antigas, mas elas ainda podem estar em memória sob certas condições.

Com Volatility 2

O plugin clássico é shimcachemem. Contra uma imagem de memória XP–Win10:

vol.py -f memory.raw --profile=Win10x64_19041 shimcachemem

Ele percorre as estruturas AppCompatCache dentro da representação em memória da hive SYSTEM e imprime linhas (mtime, caminho) como um parser offline faria. Código-fonte e notas de uso do plugin ficam no repo do Volatility 2.

Com Volatility 3

O Volatility 3 leva isso adiante como windows.shimcachemem:

vol -f memory.raw windows.shimcachemem

Sem mais seleção de perfil (Vol 3 detecta o SO automaticamente). A documentação do Volatility 3 documenta o plugin junto com o restante do conjunto de artefatos Windows.

Com Velociraptor

Se você coleta em escala em vez de analisar um único dump, o artefato Windows.Registry.AppCompatCache do Velociraptor lê o ShimCache em memória diretamente de um endpoint em funcionamento via visão de registro ao vivo. É o mesmo ShimCache que o SO teria gravado no desligamento — sem esperar pelo desligamento.

Combinando as duas visões

Na prática, você frequentemente terá:

  • o ShimCache em memória de um plugin Volatility ou coleta Velociraptor,
  • o ShimCache em disco da hive SYSTEM do mesmo host.

A cópia em memória é um superconjunto da cópia em disco enquanto não houve desligamento limpo — mas a cópia em disco pode incluir entradas já expulsas da memória após uptime longo. Puxe ambas, desduplique por (caminho, mtime), e alimente a união no seu fluxo de caça.

Próximos passos úteis

Uma vez que você tem as entradas:

Leitura adicional

Artigos relacionados