Jump Lists¶
O que são Jump Lists¶
As Jump Lists sustentam os menus exibidos a partir das entradas de aplicativos na barra de tarefas e no menu Iniciar. As Jump Lists automáticas são históricos gerenciados pelo Windows dos itens usados por um aplicativo. As Jump Lists personalizadas são categorias e tarefas definidas pelo aplicativo. Ambas podem incorporar estruturas LNK com caminhos de destino, horários, contexto de volume/rede, referências MFT e argumentos de inicialização.
Os registros automáticos podem revelar arquivos ou pastas abertos por um aplicativo, a ordem/o horário do último uso, a contagem de interações e o estado de fixação. As listas personalizadas podem expor páginas “fechadas recentemente” ou tarefas do aplicativo — incluindo argumentos de comando maliciosos.
Melhor conclusão: o aplicativo proprietário registrou ou expôs o item/a tarefa em sua Jump List. O comportamento varia conforme o aplicativo; corrobore a execução/o acesso efetivo.
Locais e coleta¶
%APPDATA%\Microsoft\Windows\Recent\AutomaticDestinations\*.automaticDestinations-ms
%APPDATA%\Microsoft\Windows\Recent\CustomDestinations\*.customDestinations-ms
O prefixo hexadecimal do nome do arquivo é um AppID. Colete ambos os diretórios e preserve o caminho do perfil
do usuário. As listas automáticas são contêineres OLE Compound File com um fluxo DestList e fluxos LNK
numerados; as listas personalizadas usam seu próprio formato de categorias/links.
Cuidados para o analista¶
- As descrições de AppID vêm de um mapeamento conhecido; um AppID desconhecido não é suspeito por si só.
- Os campos
LastModified/ de último uso pertencem a uma entrada da DestList; os horários do destino incorporado são diferentes. - As contagens de interações existem apenas em versões compatíveis e não são uma contagem completa de aberturas.
- A fixação preserva itens além da recência normal; limpezas ou configurações do aplicativo podem remover outros.
- Uma lista pode conter fluxos obsoletos/desvinculados ou bytes de uma lista personalizada anterior e mais longa.
- Os argumentos e caminhos de LNK incorporados são controlados pelo atacante. A associação com o aplicativo é contexto, não confiança.
Analisar com o Juntei¶
Usage: juntei parse-file jump-lists <INPUT> [OPTIONS]
Input:
-d, --directory <DIR> Recursively find automatic/custom destination files
-f, --file <FILE> Parse one Jump List
--code-page <CP> ANSI code page for embedded links
Output:
-o, --output <PATH> Directory of CSV tables, or JSON/JSONL file
-t, --output-type <TYPE> csv, json, or jsonl
juntei parse-file jump-lists -d evidence/ -o jump-list-csv
juntei parse-file jump-lists -f sample.automaticDestinations-ms -t jsonl | jq .
Com auto-parse, as tabelas CSV são FileAndFolderOpening/JumpLists-AutomaticDestinations.csv
e FileAndFolderOpening/JumpLists-CustomDestinations.csv, diretamente sob cada computador.
O log compartilhado é JumpLists-logs.txt nessa categoria. Os manifestos listam os caminhos exatos
em OutputFiles. As exportações CSV independentes mantêm AutomaticDestinations.csv e
CustomDestinations.csv no diretório que você escolher. As exportações automáticas em JSON e JSONL são
arquivos únicos JumpLists.json ou JumpLists.jsonl; a estrutura dos registros não muda.
Campos CSV de AutomaticDestinations¶
| Grupo de campos | Campos e interpretação |
|---|---|
| Origem | SourceFile, SourceCreated, SourceModified, SourceAccessed: o contêiner da Jump List e seus horários do sistema de arquivos. |
| Aplicativo | AppId, AppIdDescription: AppID do nome do arquivo e mapeamento de aplicativo conhecido. Não infira a identidade a partir de um hash desconhecido. |
| Contêiner | HasSps, DestListVersion, LastUsedEntryNumber: estrutura/versão da DestList e contexto do cabeçalho. |
| Ordenação | MRU, EntryNumber: posição de uso mais recente e identificador hexadecimal da entrada/do fluxo. |
| Metadados de uso | CreationTime, LastModified, InteractionCount, PinStatus, PinPosition: ciclo de vida/uso/estado de fixação da DestList. Interprete conforme a versão. |
| Host/caminho | Hostname, MacAddress, Path, DisplayPath: local do destino e contexto de rastreamento. Host/MAC não é atribuição isolada. |
| IDs de rastreamento | FileBirthDroid, FileDroid, VolumeBirthDroid, VolumeDroid: correlacione destinos movidos e o rastreamento do LNK incorporado. |
| Notas | Notes: informa sobre fluxos desvinculados, sobras recuperadas ou outro contexto do analisador. |
| LNK incorporado | TargetCreated, TargetModified, TargetAccessed, FileSize, RelativePath, WorkingDirectory, FileAttributes, HeaderFlags, DriveType, VolumeSerialNumber, VolumeLabel, LocalPath, CommonPath, TargetIDAbsolutePath, TargetMFTEntryNumber, TargetMFTSequenceNumber, MachineID, MachineMACAddress, TrackerCreatedOn, ExtraBlocksPresent, Args: interprete conforme descrito em Atalhos LNK. |
| LNK adicional | NetworkPath, Name, IconLocation: campos de rede e de apresentação do atalho incorporado. |
| Validação | Problems: fluxos ausentes, truncamento, divergência de contagens ou danos no link. |
Campos CSV de CustomDestinations¶
A saída personalizada começa com SourceFile, SourceCreated, SourceModified, SourceAccessed, AppId,
AppIdDescription e EntryName (nome da categoria ou Tasks), seguidos de todos os campos de LNK incorporado
listados acima, e então Notes, NetworkPath, Name, IconLocation e Problems.
O JSON/JSONL preserva adicionalmente o cabeçalho da DestList, a pontuação/soma de verificação/repositório de propriedades de cada entrada,
DestListPropertyStore, os fluxos do arquivo composto, as categorias personalizadas, os bytes após a última categoria
e os campos aninhados de cada LNK incorporado.
Estratégia de investigação¶
- Identifique o usuário e o perfil de origem e, em seguida, associe o AppID ao aplicativo com cautela.
- Ordene as entradas automáticas por
LastModifiedeMRU; separe os itens fixados. - Revise caminhos, compartilhamentos de rede, números de série de volumes removíveis, referências MFT e argumentos.
- Inspecione
Notese links desvinculados/remanescentes — itens excluídos ou anteriores podem sobreviver ali. - Correlacione com RecentDocs, LNKs independentes da pasta Recent, Prefetch, SRUM,
$MFTe logs de eventos.