TL;DR. Sim. Uma entrada ShimCache persiste no registro independentemente de o arquivo ainda existir em disco. Excluir o binário não exclui sua entrada ShimCache — por isso o artefato é tão valioso para pegar ferramentas que um atacante soltou, usou e apagou.
«O ShimCache ainda mostra um arquivo depois de excluído?» é uma das perguntas mais frequentes na forense de execução de programas — e a resposta é a própria razão para extrair o artefato.
Resposta curta: sim
O ShimCache armazena um caminho + marca de última modificação dentro de um valor de registro. Esse registro não tem vínculo de volta ao sistema de arquivos. Quando o executável é excluído, o NTFS libera o arquivo — mas o valor de registro fica intacto. A entrada permanece até ser despejada por entradas mais novas (o cache comporta até 1.024) ou o próprio valor ser limpo.
Assim, um binário que um atacante soltou em C:\Users\Public\, executou e apagou dez minutos depois ainda pode deixar uma entrada ShimCache limpa e legível mostrando o caminho completo que ocupava.
Por que isso é poderoso na forense
Entradas de arquivos excluídos são muitas vezes a única evidência sobrevivente do ferramental do atacante:
- Um
mimikatz.exerenomeado apagado após o roubo de credenciais. - Um arquivo de staging removido após a exfiltração.
- Um dropper que se autoexcluiu após instalar um payload.
Em cada caso o arquivo sumiu, mas o caminho do ShimCache diz que ele existiu, onde, e (via a marca de última modificação) o liga a um build. É a espinha dorsal da caça a malware com o ShimCache e das investigações de ransomware, onde os atacantes rotineiramente apagam suas ferramentas.
Quanto tempo sobrevive uma entrada de arquivo excluído?
Dois limites se aplicam:
- Despejo. O cache é limitado (até 1.024 entradas). Num host movimentado, muita atividade de executáveis pode expulsar as entradas antigas. Num servidor tranquilo pode sobreviver por meses.
- Momento do descarregamento. Novas entradas só persistem na colmeia no desligamento limpo. Se o host não foi desligado desde a exclusão, a entrada sobrevivente pode estar ainda só na memória — extraia-a de uma imagem de memória (como). O modelo de armazenamento/descarregamento é tratado em onde o ShimCache é armazenado.
O que não prova
Uma entrada de arquivo excluído prova que o arquivo existiu e foi examinado naquele host. Não prova por si só que ele executou, nem diz quando foi excluído (a marca é o mtime do arquivo, não uma data de exclusão). Trate-a como uma forte testemunha de existência e corrobore a execução com Prefetch/AmCache — veja o ShimCache prova execução.
Para verificar quais entradas de uma colmeia apontam para arquivos que não existem mais, analise-a com o Shimcache Parser e cruze os caminhos — tudo roda localmente no seu navegador.
Leitura adicional
- Mandiant: leveraging the ShimCache — o argumento do ShimCache como testemunha de ferramentas excluídas.
- SANS DFIR: artefatos de execução de programas — onde o ShimCache se encaixa entre as evidências de execução.