Communitygithub.com

Análisis de Archivos LNK y Artefactos de Jump Lists

Analiza archivos de acceso directo LNK de Windows y artefactos de Jump Lists utilizando LECmd y JLECmd.

¿Qué es Análisis de Archivos LNK y Artefactos de Jump Lists?

Esta habilidad se centra en el análisis forense de archivos LNK (accesos directos) y Jump Lists de Windows, artefactos críticos que registran el acceso a archivos, la ejecución de programas y el comportamiento del usuario. Los archivos LNK se crean automáticamente al abrir un archivo mediante el Explorador de Windows o los cuadros de diálogo Abrir/Guardar, almacenando metadatos como la ruta original, marcas de tiempo, número de serie del volumen y dirección MAC del sistema. Las Jump Lists, introducidas en Windows 7, complementan esta información manteniendo listas por aplicación de archivos recientes y frecuentes. La habilidad es útil para investigadores de seguridad que necesitan reconstruir actividades de usuario, detectar accesos a medios extraíbles o identificar conexiones a recursos compartidos en red. Soporta las herramientas EZ Tools (LECmd y JLECmd) de Eric Zimmerman, así como librerías de Python como pylnk3 o LnkParse3. Incluye ubicaciones clave de estos artefactos, la estructura del encabezado Shell Link, casos de uso de investigación, diferencias entre Windows 10 y 11, y ejemplos prácticos de comandos y salidas.

Compatible con~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

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace Análisis de Archivos LNK y Artefactos de Jump Lists?

Descripción General

Los archivos LNK (accesos directos) de Windows y las Jump Lists son artefactos forenses críticos que proporcionan evidencia de acceso a archivos, ejecución de programas y comportamiento del usuario. Los archivos LNK se crean automáticamente cuando un usuario abre un archivo a través del Explorador de Windows o del cuadro de diálogo Abrir/Guardar, almacenando metadatos sobre el archivo de destino, incluyendo su ruta original, marcas de tiempo, número de serie del volumen, nombre NetBIOS y dirección MAC del sistema anfitrión. Las Jump Lists, introducidas en Windows 7, amplían esta funcionalidad manteniendo listas por aplicación de archivos accedidos recientemente y con frecuencia. Estos artefactos persisten incluso después de que los archivos de destino se eliminan, lo que los hace invaluables para establecer que un usuario accedió a archivos específicos en momentos determinados.

Cuándo Usar

  • Al investigar incidentes de seguridad que requieren analizar artefactos de archivos LNK y Jump Lists
  • Al construir reglas de detección o consultas de búsqueda de amenazas para este dominio
  • Cuando los analistas del SOC necesitan procedimientos estructurados para este tipo de análisis
  • Al validar la cobertura de monitoreo de seguridad para técnicas de ataque relacionadas

Prerrequisitos

  • LECmd (Eric Zimmerman) para análisis de archivos LNK
  • JLECmd (Eric Zimmerman) para análisis de Jump Lists
  • Python 3.8+ con las bibliotecas pylnk3 o LnkParse3
  • Imagen forense o recopilación de triaje de un sistema Windows
  • Timeline Explorer para análisis CSV

Ubicaciones de Archivos LNK

UbicaciónDescripción
%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Recent\Archivos recientes accedidos
%USERPROFILE%\Desktop\Accesos directos creados por el usuario
%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Accesos directos del Menú Inicio
%USERPROFILE%\AppData\Roaming\Microsoft\Office\Recent\Documentos recientes de Office

Estructura del Archivo LNK

Encabezado Shell Link (76 bytes)

OffsetTamañoCampo
0x004HeaderSize (siempre 0x0000004C)
0x0416LinkCLSID (siempre 00021401-0000-0000-C000-000000000046)
0x144LinkFlags
0x184FileAttributes
0x1C8CreationTime (FILETIME)
0x248AccessTime (FILETIME)
0x2C8WriteTime (FILETIME)
0x344FileSize del destino
0x384IconIndex
0x3C4ShowCommand
0x402HotKey

Campos Forenses Clave en Archivos LNK

  • Marcas de tiempo del archivo destino: Tiempos de creación, acceso y modificación del archivo referenciado
  • Información del volumen: Número de serie, tipo de unidad, etiqueta del volumen
  • Información de recurso compartido de red: Ruta UNC, nombre del recurso compartido
  • Identificadores de máquina: Nombre NetBIOS, dirección MAC (desde TrackerDataBlock)
  • Seguimiento de enlaces distribuidos: ID de máquina y GUID del objeto

Análisis con Herramientas EZ

LECmd - Analizador de Archivos LNK

# Analizar todos los archivos LNK en la carpeta Recent
LECmd.exe -d "C:\Evidence\Users\suspect\AppData\Roaming\Microsoft\Windows\Recent" --csv C:\Output --csvf lnk_analysis.csv

# Analizar un solo archivo LNK con todos los detalles
LECmd.exe -f "C:\Evidence\Users\suspect\Desktop\Confidential.docx.lnk" --json C:\Output

# Analizar archivos LNK con niveles de detalle adicionales
LECmd.exe -d "C:\Evidence\Users\suspect\AppData\Roaming\Microsoft\Windows\Recent" --csv C:\Output --csvf lnk_all.csv --all

JLECmd - Analizador de Jump Lists

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

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

# Analizar todas las Jump Lists con salida detallada
JLECmd.exe -d "C:\Evidence\Users\suspect\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations" --csv C:\Output --csvf jumplists_auto.csv --ld

Estructura de la Jump List

Destinos Automáticos (automaticDestinations-ms)

Son archivos OLE Compound (Almacenamiento Estructurado) identificados por el hash del AppID en el nombre del archivo:

Hash del AppIDAplicación
5f7b5f1e01b83767Explorador de Windows (Anclados/Frecuentes)
1b4dd67f29cb1962Explorador de Windows (Recientes)
9b9cdc69c1c24e2bBloc de notas
a7bd71699cd38d1cNotepad++
12dc1ea8e34b5a6Microsoft Paint
7e4dca80246863e3Panel de control
1cf97c38a5881255Microsoft Edge
f01b4d95cf55d32aExplorador de Windows
9d1f905ce5044aeeMicrosoft Excel
a4a5324453625195Microsoft Word
d00655d2aa12ff6dMicrosoft PowerPoint
bc03160ee1a59fc1Outlook

Destinos Personalizados (customDestinations-ms)

Se crean cuando los usuarios anclan elementos a las Jump Lists de las aplicaciones. Estos archivos contienen entradas LNK secuenciales.

Script de Análisis en Python

import struct
import os
from datetime import datetime, timedelta

FILETIME_EPOCH = datetime(1601, 1, 1)

def filetime_to_datetime(filetime_bytes: bytes) -> datetime:
    """Convierte FILETIME de Windows (intervalos de 100 ns desde 1601) a 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:
    """Analiza el encabezado Shell Link de un archivo 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": "Encabezado 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 Investigación

Evidencia de Acceso a Archivos

  1. Analizar archivos LNK de la carpeta Recent para identificar documentos accedidos
  2. Cruzar referencias con marcas de tiempo de MFT y entradas del diario USN
  3. Tener en cuenta que los archivos LNK persisten incluso después de eliminar los archivos de destino

Acceso a Medios Extraíbles

  1. Los archivos LNK que hacen referencia a letras de unidad E:, F:, G: indican uso de medios extraíbles
  2. El número de serie del volumen en el LNK identifica el dispositivo específico
  3. La dirección MAC en TrackerDataBlock identifica la máquina de origen

Actividad en Recursos Compartidos de Red

  1. Los archivos LNK con rutas UNC (\servidor\recurso) indican acceso a archivos de red
  2. El nombre NetBIOS identifica el servidor remoto
  3. Las marcas de tiempo establecen cuándo ocurrió el acceso

Diferencias entre Windows 10 y Windows 11

Investigaciones recientes (IEEE 2025) muestran que Windows 11 produce artefactos LNK y Jump List diferentes:

  • Menos archivos LNK automáticos generados para ciertos tipos de archivo
  • Comportamiento modificado de Jump Lists para aplicaciones modernas
  • Las aplicaciones UWP/MSIX pueden no generar Jump Lists tradicionales
  • El Acceso Rápido de Windows 11 reemplaza algunas funcionalidades de Recent

Referencias

Ejemplo de Salida

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

LECmd v1.11.0 - LNK File Parser
================================

Procesando 47 archivos LNK...

--- Archivo LNK: Q4_Report.xlsx.lnk ---
  Origen:           C:\Evidence\Users\jsmith\Recent\Q4_Report.xlsx.lnk
  Ruta Destino:     C:\Users\jsmith\Downloads\Q4_Report.xlsm
  Creado Destino:   2024-01-15 14:33:45 UTC
  Modificado Destino: 2024-01-15 14:33:45 UTC
  Accedido Destino: 2024-01-15 14:35:12 UTC
  Tamaño Archivo:   251,904 bytes
  Tipo de Unidad:   Fija (C:)
  Serial del Volumen: A4E7-3F21
  ID de Máquina:    DESKTOP-J5M1TH
  Dirección MAC:    48:2A:E3:5C:9B:01

--- Archivo LNK: update_client.exe.lnk ---
  Origen:           C:\Evidence\Users\jsmith\Recent\update_client.exe.lnk
  Ruta Destino:     C:\ProgramData\Updates\update_client.exe
  Creado Destino:   2024-01-15 14:34:02 UTC
  Modificado Destino: 2024-01-15 14:34:02 UTC
  Accedido Destino: 2024-01-15 14:36:30 UTC
  Tamaño Archivo:   1,258,496 bytes
  Tipo de Unidad:   Fija (C:)
  Serial del Volumen: A4E7-3F21
  ID de Máquina:    DESKTOP-J5M1TH
  Directorio de Trabajo: C:\ProgramData\Updates
  Argumentos:       --silent --no-update-check
  Ventana de Ejecución: Oculto

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

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

JLECmd v1.5.0 - Jump List Parser
==================================

Procesando 23 archivos de AutomaticDestinations...

--- Aplicación: Microsoft Excel (AppID: 12dc1ea8e34b5a6) ---
  Entradas: 15
  Más recientes:
    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)

--- Aplicación: Explorador de Windows (AppID: f01b4d95cf55d32a) ---
  Entradas: 28
  Más recientes:
    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)

--- Aplicación: cmd.exe (AppID: 9b9cdc69c1c24e2b) ---
  Entradas: 5
  Más recientes:
    Entrada 0:  C:\Windows\System32\cmd.exe                       (2024-01-15 14:36:00 UTC)

Resumen:
  Total de archivos LNK procesados:    47
  Total de entradas en Jump Lists:     156
  Artefactos sospechosos:              3 (ejecución con ventana oculta, acceso a unidad USB, recursos compartidos de red)
  CSV exportado a:                     /analysis/lnk_output/ y /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,

Skills relacionados