
Os arquivos de rastreamento, ou arquivos Prefetch, surgiram no Windows desde a época do XP. Desde então, eles têm ajudado especialistas em criminalística digital e na resposta a incidentes de computador a encontrar vestígios de execução de programas, incluindo os maliciosos. O principal especialista em criminalística digital da Group-IB Oleg Skulkin explica o que pode ser encontrado usando arquivos Prefetch e como fazê-lo.
Os arquivos Prefetch são armazenados no diretório %SystemRoot%Prefetch e servem para acelerar o processo de inicialização de programas. Se olharmos para qualquer um desses arquivos, veremos que seu nome é composto por duas partes: o nome do arquivo executável e um checksum do caminho para ele, consistindo em oito caracteres.
Os arquivos Prefetch contêm uma abundância de informações úteis do ponto de vista forense: o nome do arquivo executável, o número de vezes que foi executado, listas de arquivos e diretórios com os quais o arquivo executável interagiu e, claro, timestamps. Normalmente, os peritos utilizam a data de criação de um determinado arquivo Prefetch para determinar a data da primeira execução do programa. Além disso, esses arquivos guardam a data da última execução, e a partir da versão 26 (Windows 8.1), timestamps das sete últimas execuções.
Vamos pegar um dos arquivos Prefetch, extrair os dados dele usando o PECmd de Eric Zimmerman e olhar para cada parte. Para a demonstração, extraí os dados do arquivo CCLEANER64.EXE-DE05DBE1.pf.
Então, vamos começar pelo topo. Naturalmente, temos os timestamps de criação, modificação e acesso ao arquivo:

Em seguida, temos o nome do arquivo executável, o checksum do caminho, o tamanho do arquivo executável e a versão do arquivo Prefetch:

Como estamos lidando com o Windows 10, então veremos a contagem de execuções, a data e hora da última execução e mais sete timestamps indicando as datas anteriores de execução:

Em seguida, seguem as informações sobre a partição, incluindo seu número de série e data de criação:
![]()
E por último, mas não menos importante, uma lista de diretórios e arquivos com os quais o arquivo executável interagiu:

Assim, os diretórios e arquivos com os quais o executável interagiu são exatamente o que quero focar hoje. Esses dados permitem que especialistas em criminalística digital, resposta a incidentes de computação ou caça proativa a ameaças estabeleçam não apenas a execução de um arquivo específico, mas também, em alguns casos, reconstruam táticas e técnicas específicas dos atacantes. Hoje, os criminosos cibernéticos frequentemente utilizam ferramentas para a exclusão permanente de dados, como o SDelete, portanto, a capacidade de recuperar pelo menos vestígios da utilização de determinadas táticas e técnicas é simplesmente essencial para qualquer defensor moderno — seja um criminalista digital, um especialista em resposta a incidentes ou um especialista em ThreatHunter.
Vamos começar com a tática de Acesso Inicial (TA0001) e a técnica mais popular — Anexo de Spearphishing (T1193). Alguns grupos cibercriminosos são bastante criativos na escolha de tais anexos. Por exemplo, o grupo Silence usou arquivos no formato CHM (Microsoft Compiled HTML Help) para isso. Dessa forma, temos mais uma técnica — Arquivo HTML Compilado (T1223). Esses arquivos são executados pelo hh.exe, portanto, se extrairmos dados de seu arquivo Prefetch, saberemos qual arquivo específico foi aberto pela vítima:

Vamos continuar trabalhando com exemplos de casos reais e passar para a próxima tática de Execução (TA0002) e a técnica CSMTP (T1191). O Instalador de Perfil do Microsoft Connection Manager (CMSTP.exe) pode ser utilizado pelos atacantes para executar scripts maliciosos. Um bom exemplo é o grupo Cobalt. Se extrairmos dados do arquivo Prefetch cmstp.exe, novamente poderemos descobrir o que exatamente foi executado:

Outra técnica popular é a Regsvr32 (T1117). Regsvr32.exe também é frequentemente utilizada por atacantes para execução. Aqui está mais um exemplo do grupo Cobalt: se extrairmos os dados do arquivo Prefetch regsvr32.exe, novamente veremos o que foi executado:

As próximas táticas são Persistência (TA0003) e Escalação de Privilégios (TA0004), assim como o Application Shimming (T1138) como técnica. Esta técnica foi usada pelo Carbanak/FIN7 para se firmar no sistema. Geralmente, para trabalhar com bancos de dados de informações de compatibilidade de programas (.sdb), utiliza-se sdbinst.exe. Portanto, o arquivo Prefetch deste executável pode nos ajudar a descobrir os nomes desses bancos de dados e sua localização:

Como pode ser visto na ilustração, temos não apenas o nome do arquivo usado para a instalação, mas também o nome do banco de dados instalado.
Vamos dar uma olhada em um dos exemplos mais típicos de promoção na rede (TA0008) — PsExec, que utiliza recursos administrativos compartilhados (T1077). Um serviço chamado PSEXECSVC (naturalmente, qualquer outro nome pode ser usado se os atacantes usarem o parâmetro -r) será criado no sistema alvo, portanto, se extrairmos dados do arquivo Prefetch, veremos que foi iniciado:

Vou encerrar, talvez, com o que comecei — a exclusão de arquivos (T1107). Como já mencionei, muitos atacantes usam SDelete para excluir permanentemente arquivos em várias fases do ciclo de ataque. Se analisarmos os dados do arquivo Prefetch sdelete.exe, veremos o que foi realmente excluído:

Certamente, esta não é uma lista exaustiva de técnicas que podem ser detectadas durante a análise dos arquivos Prefetch, mas deve ser suficiente para entender que esses arquivos podem ajudar não apenas a encontrar vestígios de execução, mas também a reconstruir táticas e técnicas específicas dos atacantes.
Fonte: habr.com
