TL;DR. Ordem de prioridade que uso de facto na triagem: Prefetch (mais forte quando ativo), BAM/DAM (última execução por utilizador no Win10+, criminosamente subutilizado), AmCache (identificação por SHA-1), ShimCache (âncora de existência), UserAssist (apenas lançamentos iniciados pelo Explorer). Nenhum artefacto isolado encerra um caso. Triangule ou pare de afirmar execução.
Não existe um único artefacto do Windows que responda perfeitamente a "este programa correu, quando e por quem?". Quem lhe diga o contrário ou não trabalhou casos suficientes ou está a vender alguma coisa. O que funciona é uma lista curta de artefactos que cobrem cada um uma parte da pergunta e o hábito de cruzar referências.
A lista curta
| Artefacto | Localização | Regista | Fiabilidade para execução |
|---|---|---|---|
| Prefetch | C:\Windows\Prefetch\*.pf | Caminho, contagem de execuções, últimos 8 tempos de execução, ficheiros carregados | Muito alta. Só é escrito no arranque do processo. |
| AmCache | C:\Windows\AppCompat\Programs\Amcache.hve | Caminho, SHA-1, tamanho, publisher, instalação + primeira execução | Alta. Timestamps explícitos de execução. |
| ShimCache | hive SYSTEM …\Session Manager\AppCompatCache | Caminho, mtime do ficheiro | Média. Prova existência; muitas vezes (nem sempre) implica execução. |
| UserAssist | NTUSER.DAT …\UserAssist (registo) | Lançamentos de programas GUI por utilizador via Explorer | Alta, mas apenas iniciados pelo utilizador, nomes em ROT13. |
| BAM / DAM | hive SYSTEM …\bam\State e …\dam\State | Hora da última execução por utilizador para cada binário | Muito alta. Win10+, fácil de analisar, frequentemente esquecido. |
Ler por ordem de prioridade
1. Prefetch primeiro. Um ficheiro .pf é o mais perto que o Windows tem de um recibo "isto correu". Até oito tempos de execução, contagem total, lista de módulos carregados. SKUs de estação de trabalho mantêm o Prefetch ligado por defeito. O PECmd de Eric Zimmerman é o parser canónico. O Prefetch parser cobre o formato se quiser fazer o seu.
2. BAM / DAM em segundo. O Background and Desktop Activity Moderator limita apps em segundo plano e mantém timestamps por utilizador e por binário de "última execução" na hive SYSTEM em …\Services\bam\State e …\Services\dam\State. Presente no Windows 10 e 11, com pouco ruído, fácil de ler. Já encerrei casos com linhas BAM que ninguém da equipa IR original tinha extraído.
3. AmCache em terceiro. Faz de suporte ao Prefetch em servidores (onde o Prefetch é muitas vezes desativado) e em hosts onde o atacante limpou a pasta Prefetch. Os hashes SHA-1 são a funcionalidade matadora: quando o ficheiro está apagado, o hash é a única pega para VirusTotal e threat intel. Veja ShimCache vs AmCache.
4. ShimCache em quarto. Âncora de existência, não declaração de execução. O artigo sobre prova de execução cobre o raciocínio.
5. UserAssist por último. Forte prova de lançamento interativo via Explorer. Cego a tudo o que é lançado por uma shell, tarefa agendada ou serviço. Útil quando a pergunta é "o utilizador clicou nisto?". Leia com qualquer ferramenta de registo que lide com ROT13; o registry parser descodifica-o em linha.
Coisas que apanham
- O Prefetch pode estar desligado. SSDs, SKUs de servidor e políticas de grupo desativam-no. Prefetch vazio não é prova de ausência.
- A AmCache roda. Entradas antigas saem com a idade. Extraia a hive cedo na triagem.
- Os timestamps da ShimCache são mtime do ficheiro. Não hora de execução. Não hora de flush. O mtime do ficheiro. Releia até interiorizar.
- UserAssist é ROT13. Trivial de descodificar mas tropeça leitores casuais.
- BAM é subutilizado. Provavelmente o sinal mais limpo de "este binário correu para este utilizador?" no Windows moderno.
Outros artefactos a conhecer consoante o caso: RecentFileCache (legado Win7), SRUM para uso de rede e processos ao longo de 30 dias, jump lists e ficheiros LNK para atividade de shell, a MFT e o USN journal para timelines ao nível do sistema de ficheiros.
Ferramentas
Para parsing offline de alta fidelidade, a suite de ferramentas de Eric Zimmerman é a norma de facto. AppCompatCacheParser, AmcacheParser, PECmd, RBCmd, todas fiáveis. O Velociraptor lida com triagem ao vivo à escala de frota. Especificamente para a ShimCache, o Shimcache Parser lê uma hive diretamente no browser sem instalar nada.
Leitura adicional
- AppCompatCacheParser de Eric Zimmerman, parser de referência da ShimCache.
- Artefacto ShimCache do Velociraptor, lógica de recolha em sistema vivo.
- ShimCache & AmCache forensic analysis de Mehrnoush, descrição estendida orientada a casos.