Communitygithub.com

Analisando Artefatos de Arquivos LNK e Jump Lists

Analise arquivos de atalho LNK do Windows e artefatos de Jump Lists com LECmd, JLECmd e scripts Python para investigação forense.

O que é Analisando Artefatos de Arquivos LNK e Jump Lists?

Esta skill capacita analistas de segurança e profissionais de resposta a incidentes a analisar minuciosamente artefatos forenses do Windows, especificamente arquivos LNK (atalhos) e Jump Lists. Ela demonstra como esses artefatos registram evidências de acesso a arquivos, execução de programas e comportamento do usuário, persistindo mesmo após a exclusão dos arquivos originais. A skill fornece procedimentos estruturados para uso com ferramentas como LECmd e JLECmd (Eric Zimmerman), scripts Python personalizados e abrange localizações-chave, estruturas de dados e casos de uso de investigação, como identificação de acesso a arquivos, uso de mídia removível e atividade em compartilhamentos de rede. Suporta Windows 10 e Windows 11, observando diferenças nos artefatos gerados entre as versões, e é ideal para criar regras de detecção, consultas de caça a ameaças e validar a cobertura de monitoramento de segurança.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mukul975/Anthropic-Cybersecurity-Skills/tree/main/skills/analyzing-lnk-file-and-jump-list-artifacts

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que Analisando Artefatos de Arquivos LNK e Jump Lists faz?

Visão Geral

Arquivos LNK (atalhos) do Windows e Jump Lists são artefatos forenses críticos que fornecem evidências de acesso a arquivos, execução de programas e comportamento do usuário. Arquivos LNK são criados automaticamente quando um usuário abre um arquivo através do Windows Explorer ou das caixas de diálogo Abrir/Salvar, armazenando metadados sobre o arquivo de destino, incluindo seu caminho original, carimbos de data/hora, número de série do volume, nome NetBIOS e endereço MAC do sistema host. As Jump Lists, introduzidas no Windows 7, estendem isso mantendo listas por aplicativo de arquivos acessados recentemente e frequentemente. Esses artefatos persistem mesmo após os arquivos de destino serem excluídos, tornando-os inestimáveis para estabelecer que um usuário acessou arquivos específicos em horários específicos.

Quando Usar

  • Ao investigar incidentes de segurança que exigem a análise de artefatos de arquivos LNK e Jump Lists
  • Ao construir regras de detecção ou consultas de caça a ameaças para este domínio
  • Quando analistas de SOC precisam de procedimentos estruturados para este tipo de análise
  • Ao validar a cobertura de monitoramento de segurança para técnicas de ataque relacionadas

Pré-requisitos

  • LECmd (Eric Zimmerman) para análise de arquivos LNK
  • JLECmd (Eric Zimmerman) para análise de Jump Lists
  • Python 3.8+ com bibliotecas pylnk3 ou LnkParse3
  • Imagem forense ou coleta de triagem de um sistema Windows
  • Timeline Explorer para análise de CSV

Localizações de Arquivos LNK

LocalizaçãoDescrição
%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Recent\Arquivos recentes acessados
%USERPROFILE%\Desktop\Atalhos criados pelo usuário
%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Atalhos do Menu Iniciar
%USERPROFILE%\AppData\Roaming\Microsoft\Office\Recent\Documentos recentes do Office

Estrutura do Arquivo LNK

Cabeçalho Shell Link (76 bytes)

OffsetTamanhoCampo
0x004HeaderSize (sempre 0x0000004C)
0x0416LinkCLSID (sempre 00021401-0000-0000-C000-000000000046)
0x144LinkFlags
0x184FileAttributes
0x1C8CreationTime (FILETIME)
0x248AccessTime (FILETIME)
0x2C8WriteTime (FILETIME)
0x344FileSize do destino
0x384IconIndex
0x3C4ShowCommand
0x402HotKey

Campos Forenses Chave em Arquivos LNK

  • Carimbos de data/hora do arquivo de destino: Horários de criação, acesso e modificação do arquivo referenciado
  • Informações do volume: Número de série, tipo de unidade, rótulo do volume
  • Informações de compartilhamento de rede: Caminho UNC, nome do compartilhamento
  • Identificadores de máquina: Nome NetBIOS, endereço MAC (do TrackerDataBlock)
  • Rastreamento de Link Distribuído: ID da máquina e GUID do objeto

Análise com Ferramentas EZ

LECmd - Analisador de Arquivos LNK

# Analisar todos os arquivos LNK na pasta Recent
LECmd.exe -d "C:\Evidence\Users\suspect\AppData\Roaming\Microsoft\Windows\Recent" --csv C:\Output --csvf lnk_analysis.csv

# Analisar um único arquivo LNK com detalhes completos
LECmd.exe -f "C:\Evidence\Users\suspect\Desktop\Confidential.docx.lnk" --json C:\Output

# Analisar arquivos LNK com níveis de detalhe adicionais
LECmd.exe -d "C:\Evidence\Users\suspect\AppData\Roaming\Microsoft\Windows\Recent" --csv C:\Output --csvf lnk_all.csv --all

JLECmd - Analisador de Jump Lists

# Analisar Jump Lists Automáticas
JLECmd.exe -d "C:\Evidence\Users\suspect\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations" --csv C:\Output --csvf jumplists_auto.csv

# Analisar Jump Lists Personalizadas
JLECmd.exe -d "C:\Evidence\Users\suspect\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations" --csv C:\Output --csvf jumplists_custom.csv

# Analisar todas as jump lists com saída detalhada
JLECmd.exe -d "C:\Evidence\Users\suspect\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations" --csv C:\Output --csvf jumplists_auto.csv --ld

Estrutura da Jump List

Destinos Automáticos (automaticDestinations-ms)

São arquivos OLE Compound (Armazenamento Estruturado) identificados pelo hash AppID no nome do arquivo:

Hash AppIDAplicação
5f7b5f1e01b83767Windows Explorer Fixados/Frequentes
1b4dd67f29cb1962Windows Explorer Recentes
9b9cdc69c1c24e2bBloco de Notas
a7bd71699cd38d1cNotepad++
12dc1ea8e34b5a6Microsoft Paint
7e4dca80246863e3Painel de Controle
1cf97c38a5881255Microsoft Edge
f01b4d95cf55d32aWindows Explorer
9d1f905ce5044aeeMicrosoft Excel
a4a5324453625195Microsoft Word
d00655d2aa12ff6dMicrosoft PowerPoint
bc03160ee1a59fc1Outlook

Destinos Personalizados (customDestinations-ms)

Criados quando os usuários fixam itens nas jump lists dos aplicativos. Esses arquivos contêm entradas LNK sequenciais.

Script de Análise em Python

import struct
import os
from datetime import datetime, timedelta

FILETIME_EPOCH = datetime(1601, 1, 1)

def filetime_to_datetime(filetime_bytes: bytes) -> datetime:
    """Converte Windows FILETIME (intervalos de 100 ns desde 1601) para datetime."""
    ft = struct.unpack("<Q", filetime_bytes)[0]
    if ft == 0:
        return None
    return FILETIME_EPOCH + timedelta(microseconds=ft // 10)

def parse_lnk_header(lnk_path: str) -> dict:
    """Analisa o cabeçalho Shell Link de um arquivo LNK."""
    with open(lnk_path, "rb") as f:
        header = f.read(76)

    header_size = struct.unpack("<I", header[0:4])[0]
    if header_size != 0x4C:
        return {"error": "Cabeçalho LNK inválido"}

    link_flags = struct.unpack("<I", header[0x14:0x18])[0]
    file_attrs = struct.unpack("<I", header[0x18:0x1C])[0]

    result = {
        "header_size": header_size,
        "link_flags": hex(link_flags),
        "file_attributes": hex(file_attrs),
        "creation_time": filetime_to_datetime(header[0x1C:0x24]),
        "access_time": filetime_to_datetime(header[0x24:0x2C]),
        "write_time": filetime_to_datetime(header[0x2C:0x34]),
        "file_size": struct.unpack("<I", header[0x34:0x38])[0],
        "has_target_id_list": bool(link_flags & 0x01),
        "has_link_info": bool(link_flags & 0x02),
        "has_name": bool(link_flags & 0x04),
        "has_relative_path": bool(link_flags & 0x08),
        "has_working_dir": bool(link_flags & 0x10),
        "has_arguments": bool(link_flags & 0x20),
        "has_icon_location": bool(link_flags & 0x40),
    }
    return result

Casos de Uso de Investigação

Evidência de Acesso a Arquivos

  1. Analise os arquivos LNK da pasta Recent para identificar documentos acessados
  2. Faça referência cruzada com carimbos de data/hora do MFT e entradas do USN Journal
  3. Observe que os arquivos LNK persistem mesmo após os arquivos de destino serem excluídos

Acesso a Mídia Removível

  1. Arquivos LNK referenciando letras de unidade E:, F:, G: indicam uso de mídia removível
  2. O número de série do volume no LNK identifica o dispositivo específico
  3. O endereço MAC no TrackerDataBlock identifica a máquina de origem

Atividade de Compartilhamento de Rede

  1. Arquivos LNK com caminhos UNC (\servidor\compartilhamento) indicam acesso a arquivos em rede
  2. O nome NetBIOS identifica o servidor remoto
  3. Os carimbos de data/hora estabelecem quando o acesso ocorreu

Diferenças Entre Windows 10 e Windows 11

Pesquisas recentes (IEEE 2025) mostram que o Windows 11 produz artefatos diferentes de LNK e Jump Lists:

  • Menos arquivos LNK automáticos gerados para certos tipos de arquivo
  • Comportamento modificado de Jump Lists para aplicativos modernos
  • Aplicativos UWP/MSIX podem não gerar Jump Lists tradicionais
  • O Acesso Rápido do Windows 11 substitui algumas funcionalidades de Recentes

Referências

Exemplo de Saída

$ LECmd.exe -d "C:\Evidence\Users\jsmith\AppData\Roaming\Microsoft\Windows\Recent" --csv /analysis/lnk_output

LECmd v1.11.0 - Analisador de Arquivos LNK
============================================

Processando 47 arquivos LNK...

--- Arquivo LNK: Q4_Report.xlsx.lnk ---
  Origem:           C:\Evidence\Users\jsmith\Recent\Q4_Report.xlsx.lnk
  Caminho Destino:  C:\Users\jsmith\Downloads\Q4_Report.xlsm
  Destino Criado:   2024-01-15 14:33:45 UTC
  Destino Modificado: 2024-01-15 14:33:45 UTC
  Destino Acessado: 2024-01-15 14:35:12 UTC
  Tamanho do Arquivo: 251.904 bytes
  Tipo de Unidade:  Fixa (C:)
  Serial do Volume: A4E7-3F21
  ID da Máquina:    DESKTOP-J5M1TH
  Endereço MAC:     48:2A:E3:5C:9B:01

--- Arquivo LNK: update_client.exe.lnk ---
  Origem:           C:\Evidence\Users\jsmith\Recent\update_client.exe.lnk
  Caminho Destino:  C:\ProgramData\Updates\update_client.exe
  Destino Criado:   2024-01-15 14:34:02 UTC
  Destino Modificado: 2024-01-15 14:34:02 UTC
  Destino Acessado: 2024-01-15 14:36:30 UTC
  Tamanho do Arquivo: 1.258.496 bytes
  Tipo de Unidade:  Fixa (C:)
  Serial do Volume: A4E7-3F21
  ID da Máquina:    DESKTOP-J5M1TH
  Diretório de Trabalho: C:\ProgramData\Updates
  Argumentos:       --silent --no-update-check
  Janela de execução: Oculto

======================================================================

$ JLECmd.exe -d "C:\Evidence\Users\jsmith\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations" --csv /analysis/jumplist_output

JLECmd v1.5.0 - Analisador de Jump Lists
==========================================

Processando 23 arquivos de AutomaticDestinations...

--- Aplicação: Microsoft Excel (AppID: 12dc1ea8e34b5a6) ---
  Entradas: 15
  Mais Recentes:
    Entrada 0:  C:\Users\jsmith\Downloads\Q4_Report.xlsm         (2024-01-15 14:35:12 UTC)
    Entrada 1:  \\FILESERV01\Finance\Budget_2024.xlsx             (2024-01-14 09:22:30 UTC)
    Entrada 2:  C:\Users\jsmith\Documents\Expenses\Dec2023.xlsx   (2024-01-10 16:45:00 UTC)

--- Aplicação: Windows Explorer (AppID: f01b4d95cf55d32a) ---
  Entradas: 28
  Mais Recentes:
    Entrada 0:  C:\ProgramData\Updates\                           (2024-01-15 14:36:25 UTC)
    Entrada 1:  E:\Backup\                                        (2024-01-15 15:30:00 UTC)
    Entrada 2:  \\FILESERV01\HR\Employees\                        (2024-01-15 16:12:45 UTC)

--- Aplicação: cmd.exe (AppID: 9b9cdc69c1c24e2b) ---
  Entradas: 5
  Mais Recentes:
    Entrada 0:  C:\Windows\System32\cmd.exe                       (2024-01-15 14:36:00 UTC)

Resumo:
  Total de arquivos LNK processados:  47
  Total de entradas de Jump List:      156
  Artefatos suspeitos:                  3 (execução em janela oculta, acesso a unidade USB, compartilhamentos de rede)
  CSV exportado para:                  /analysis/lnk_output/ e /analysis/jumplist_output/

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

abusing-dpapi-for-credential-access

Extract and decrypt Windows DPAPI-protected secrets (Credential Manager, browser logins/cookies, Wi-Fi credentials, KeePass keys) online or offline using SharpDPAPI, SharpChrome, Mimikatz, or Impacket

abusing-shadow-credentials-for-privesc

Take over Active Directory accounts by writing attacker-controlled public keys to msDS-KeyCredentialLink (Shadow Credentials) with pyWhisker, Whisker, or Certipy, then authenticate via PKINIT to recover the target

achieving-cmmc-level-2-compliance

>-

acquiring-disk-image-with-dd-and-dcfldd

Create forensically sound bit-for-bit disk images with dd or dcfldd on a Linux forensic workstation, preserving evidence integrity through hash verification (MD5/SHA) during acquisition. Use when imaging a suspect drive, USB device, or memory card for investigation, preserving volatile disk evidence during incident response, or producing a verified copy for legal or law-enforcement proceedings before any destructive analysis.

analyzing-active-directory-acl-abuse

Detect dangerous ACL misconfigurations in Active Directory using ldap3

analyzing-android-malware-with-apktool

Perform static analysis of Android APK malware using apktool for resource decompilation, jadx for Java source recovery, and androguard for manifest inspection, dangerous permission-combination detection, and identification of obfuscated code, dynamic code loading, and reflection-based API calls. Use to statically triage a suspicious APK without executing it or to build mobile malware detection rules.

analyzing-api-gateway-access-logs

Parses API Gateway access logs (AWS API Gateway, Kong, Nginx) to detect

analyzing-apt-group-with-mitre-navigator

Query ATT&CK data with attackcti, mitreattack-python, and stix2, then build MITRE ATT&CK Navigator layers and multi-layer heatmap overlays mapping one or more APT groups

analyzing-azure-activity-logs-for-threats

Queries Azure Monitor activity logs and sign-in logs via azure-monitor-query

analyzing-bootkit-and-rootkit-samples

Analyzes bootkit and advanced rootkit malware infecting the Master

analyzing-browser-forensics-with-hindsight

Parse Chromium-based browser databases with Hindsight to extract and correlate browsing history, downloads, cookies, cached content, autofill data, saved passwords, and extensions from Chrome, Edge, Brave, Opera, and Vivaldi into a unified timeline (XLSX, JSON, or SQLite output). Use during incident response, insider-threat investigations, or criminal cases when you need to reconstruct a user

analyzing-campaign-attribution-evidence

Systematically evaluate cyber-campaign evidence to attribute an operation to a threat actor, using the Diamond Model and Analysis of Competing Hypotheses (ACH) to weigh infrastructure overlaps, TTP consistency, malware code similarity, and timing/language artifacts into confidence-weighted attribution assessments. Use when an incident investigation needs a defensible attribution confidence level.

analyzing-certificate-transparency-for-phishing

Monitor Certificate Transparency logs using crt.sh and Certstream to

analyzing-cloud-storage-access-patterns

Detect abnormal access in AWS S3, GCS, and Azure Blob Storage by analyzing CloudTrail Data Events, GCS audit logs, and Azure Storage Analytics for after-hours bulk downloads, new-IP access, and API-call spikes (e.g. GetObject) via statistical baselines and time-series anomaly detection. Use when investigating suspected cloud data exfiltration or building related detection rules.

analyzing-cobalt-strike-beacon-configuration

Extract and analyze Cobalt Strike beacon configuration from PE files

analyzing-cobaltstrike-malleable-c2-profiles

Parse and analyze Cobalt Strike Malleable C2 profiles with dissect.cobaltstrike (profiles and beacon-payload configs) and pyMalleableC2 (AST parsing) to extract HTTP/DNS transforms, URIs, headers, sleep/jitter, and injection behavior, then generate network detection signatures. Use when reverse-engineering a captured malleable profile or building detections against Cobalt Strike Beacon traffic.

analyzing-command-and-control-communication

Analyzes malware C2 communication over HTTP, HTTPS, DNS, and custom

analyzing-cyber-kill-chain

Analyzes intrusion activity against the Lockheed Martin Cyber Kill Chain

analyzing-disk-image-with-autopsy

Perform comprehensive forensic analysis of raw (dd), E01, or AFF disk images with Autopsy and The Sleuth Kit, recovering deleted files, examining metadata and embedded artifacts, keyword searching, and building investigation timelines with visual reports. Use for structured analysis of a forensic disk image or when stakeholders need visual reports from evidence.

analyzing-dns-logs-for-exfiltration

Analyzes DNS query logs to detect data exfiltration via DNS tunneling,

Habilidades Relacionadas