Communitygithub.com

Analyse des fichiers LNK et des listes de sauts Windows

Analysez les fichiers de raccourcis Windows LNK et les artefacts de listes de sauts à l'aide de LECmd.

Qu'est-ce que Analyse des fichiers LNK et des listes de sauts Windows ?

Cette compétence permet aux enquêteurs numériques et aux analystes SOC d'analyser en profondeur les fichiers LNK (raccourcis Windows) et les artefacts de listes de sauts (Jump Lists). Elle couvre les emplacements de stockage, la structure des en-têtes, les champs clés (horodatages, numéros de série de volume, adresses MAC) et les cas d'utilisation d'enquête tels que la preuve d'accès aux fichiers, l'utilisation de supports amovibles et les activités de partage réseau. L'utilisateur apprend à utiliser les outils EZ (LECmd et JLECmd) ainsi qu'un script Python personnalisé pour l'analyse de bas niveau. La compétence met en évidence les différences entre Windows 10 et 11, et comprend des exemples de commandes, une table de hachage d'AppID et un exemple de sortie concret. Elle est conçue pour les enquêtes de réponse aux incidents, la chasse aux menaces et la validation de la couverture de surveillance de sécurité.

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait Analyse des fichiers LNK et des listes de sauts Windows ?

Présentation

Les fichiers LNK (raccourcis) et les listes de sauts Windows sont des artefacts médico-légaux essentiels qui fournissent des preuves d'accès aux fichiers, d'exécution de programmes et de comportement de l'utilisateur. Les fichiers LNK sont créés automatiquement lorsqu'un utilisateur ouvre un fichier via l'Explorateur Windows ou la boîte de dialogue Ouvrir/Enregistrer, stockant des métadonnées sur le fichier cible, notamment son chemin d'origine, ses horodatages, le numéro de série du volume, le nom NetBIOS et l'adresse MAC du système hôte. Les listes de sauts, introduites dans Windows 7, enrichissent cela en maintenant des listes par application de fichiers récemment et fréquemment consultés. Ces artefacts persistent même après la suppression des fichiers cibles, ce qui les rend inestimables pour démontrer qu'un utilisateur a accédé à des fichiers spécifiques à des moments précis.

Quand utiliser

  • Lors d'enquêtes sur des incidents de sécurité nécessitant l'analyse d'artefacts de fichiers LNK et de listes de sauts
  • Lors de la création de règles de détection ou de requêtes de chasse aux menaces pour ce domaine
  • Lorsque les analystes SOC ont besoin de procédures structurées pour ce type d'analyse
  • Lors de la validation de la couverture de surveillance de sécurité pour les techniques d'attaque associées

Prérequis

  • LECmd (Eric Zimmerman) pour l'analyse des fichiers LNK
  • JLECmd (Eric Zimmerman) pour l'analyse des listes de sauts
  • Python 3.8+ avec les bibliothèques pylnk3 ou LnkParse3
  • Image médico-légale ou collecte de triage d'un système Windows
  • Timeline Explorer pour l'analyse CSV

Emplacements des fichiers LNK

EmplacementDescription
%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Recent\Fichiers récents consultés
%USERPROFILE%\Desktop\Raccourcis créés par l'utilisateur
%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Raccourcis du menu Démarrer
%USERPROFILE%\AppData\Roaming\Microsoft\Office\Recent\Documents Office récents

Structure du fichier LNK

En-tête Shell Link (76 octets)

DécalageTailleChamp
0x004HeaderSize (toujours 0x0000004C)
0x0416LinkCLSID (toujours 00021401-0000-0000-C000-000000000046)
0x144LinkFlags
0x184FileAttributes
0x1C8CreationTime (FILETIME)
0x248AccessTime (FILETIME)
0x2C8WriteTime (FILETIME)
0x344Taille du fichier cible
0x384IconIndex
0x3C4ShowCommand
0x402HotKey

Champs clés pour l'investigation dans les fichiers LNK

  • Horodatages du fichier cible : dates de création, d'accès et de modification du fichier référencé
  • Informations sur le volume : numéro de série, type de lecteur, nom du volume
  • Informations sur le partage réseau : chemin UNC, nom du partage
  • Identifiants de la machine : nom NetBIOS, adresse MAC (depuis le TrackerDataBlock)
  • Suivi de lien distribué : ID machine et GUID de l'objet

Analyse avec les outils EZ

LECmd - Analyseur de fichiers LNK

# Analyser tous les fichiers LNK du dossier Recent
LECmd.exe -d "C:\Evidence\Users\suspect\AppData\Roaming\Microsoft\Windows\Recent" --csv C:\Output --csvf lnk_analysis.csv

# Analyser un seul fichier LNK avec tous les détails
LECmd.exe -f "C:\Evidence\Users\suspect\Desktop\Confidential.docx.lnk" --json C:\Output

# Analyser les fichiers LNK avec des niveaux de détail supplémentaires
LECmd.exe -d "C:\Evidence\Users\suspect\AppData\Roaming\Microsoft\Windows\Recent" --csv C:\Output --csvf lnk_all.csv --all

JLECmd - Analyseur de listes de sauts

# Analyser les listes de sauts automatiques
JLECmd.exe -d "C:\Evidence\Users\suspect\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations" --csv C:\Output --csvf jumplists_auto.csv

# Analyser les listes de sauts personnalisées
JLECmd.exe -d "C:\Evidence\Users\suspect\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations" --csv C:\Output --csvf jumplists_custom.csv

# Analyser toutes les listes de sauts avec sortie détaillée
JLECmd.exe -d "C:\Evidence\Users\suspect\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations" --csv C:\Output --csvf jumplists_auto.csv --ld

Structure des listes de sauts

Destinations automatiques (automaticDestinations-ms)

Ce sont des fichiers composés OLE (stockage structuré) identifiés par le hachage AppID dans le nom du fichier :

Hachage AppIDApplication
5f7b5f1e01b83767Explorateur Windows Épinglés/Fréquents
1b4dd67f29cb1962Explorateur Windows Récents
9b9cdc69c1c24e2bBloc-notes
a7bd71699cd38d1cNotepad++
12dc1ea8e34b5a6Microsoft Paint
7e4dca80246863e3Panneau de configuration
1cf97c38a5881255Microsoft Edge
f01b4d95cf55d32aExplorateur Windows
9d1f905ce5044aeeMicrosoft Excel
a4a5324453625195Microsoft Word
d00655d2aa12ff6dMicrosoft PowerPoint
bc03160ee1a59fc1Outlook

Destinations personnalisées (customDestinations-ms)

Créées lorsque les utilisateurs épinglent des éléments aux listes de sauts des applications. Ces fichiers contiennent des entrées LNK séquentielles.

Script d'analyse Python

import struct
import os
from datetime import datetime, timedelta

FILETIME_EPOCH = datetime(1601, 1, 1)

def filetime_to_datetime(filetime_bytes: bytes) -> datetime:
    """Convertir un FILETIME Windows (intervalles de 100 ns depuis 1601) en 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:
    """Analyser l'en-tête Shell Link d'un fichier 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": "En-tête LNK invalide"}

    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

Cas d'utilisation d'investigation

Preuve d'accès aux fichiers

  1. Analyser les fichiers LNK du dossier Recent pour identifier les documents consultés
  2. Recouper avec les horodatages MFT et les entrées du journal USN
  3. Noter que les fichiers LNK persistent même après la suppression des fichiers cibles

Accès aux supports amovibles

  1. Les fichiers LNK faisant référence aux lettres de lecteur E:, F:, G: indiquent une utilisation de support amovible
  2. Le numéro de série du volume dans le LNK identifie le périphérique spécifique
  3. L'adresse MAC dans le TrackerDataBlock identifie la machine source

Activité de partage réseau

  1. Les fichiers LNK avec des chemins UNC (\serveur\partage) indiquent un accès aux fichiers réseau
  2. Le nom NetBIOS identifie le serveur distant
  3. Les horodatages établissent le moment de l'accès

Différences entre Windows 10 et Windows 11

Des recherches récentes (IEEE 2025) montrent que Windows 11 produit des artefacts LNK et de listes de sauts différents :

  • Moins de fichiers LNK automatiques générés pour certains types de fichiers
  • Comportement modifié des listes de sauts pour les applications modernes
  • Les applications UWP/MSIX peuvent ne pas générer de listes de sauts traditionnelles
  • L'accès rapide de Windows 11 remplace certaines fonctionnalités du dossier Recent

Références

Exemple de sortie

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

LECmd v1.11.0 - Analyseur de fichiers LNK
================================

Traitement de 47 fichiers LNK...

--- Fichier LNK : Q4_Report.xlsx.lnk ---
  Source :           C:\Evidence\Users\jsmith\Recent\Q4_Report.xlsx.lnk
  Chemin cible :      C:\Users\jsmith\Downloads\Q4_Report.xlsm
  Création cible :   2024-01-15 14:33:45 UTC
  Modification cible : 2024-01-15 14:33:45 UTC
  Accès cible :      2024-01-15 14:35:12 UTC
  Taille du fichier : 251 904 octets
  Type de lecteur :   Fixe (C:)
  Série du volume :  A4E7-3F21
  ID machine :       DESKTOP-J5M1TH
  Adresse MAC :      48:2A:E3:5C:9B:01

--- Fichier LNK : update_client.exe.lnk ---
  Source :           C:\Evidence\Users\jsmith\Recent\update_client.exe.lnk
  Chemin cible :      C:\ProgramData\Updates\update_client.exe
  Création cible :   2024-01-15 14:34:02 UTC
  Modification cible : 2024-01-15 14:34:02 UTC
  Accès cible :      2024-01-15 14:36:30 UTC
  Taille du fichier : 1 258 496 octets
  Type de lecteur :   Fixe (C:)
  Série du volume :  A4E7-3F21
  ID machine :       DESKTOP-J5M1TH
  Répertoire de travail : C:\ProgramData\Updates
  Arguments :        --silent --no-update-check
  Fenêtre d'exécution : Masquée

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

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

JLECmd v1.5.0 - Analyseur de listes de sauts
==================================

Traitement de 23 fichiers AutomaticDestinations...

--- Application : Microsoft Excel (AppID : 12dc1ea8e34b5a6) ---
  Entrées : 15
  Plus récentes :
    Entrée 0 :  C:\Users\jsmith\Downloads\Q4_Report.xlsm         (2024-01-15 14:35:12 UTC)
    Entrée 1 :  \\FILESERV01\Finance\Budget_2024.xlsx             (2024-01-14 09:22:30 UTC)
    Entrée 2 :  C:\Users\jsmith\Documents\Expenses\Dec2023.xlsx   (2024-01-10 16:45:00 UTC)

--- Application : Explorateur Windows (AppID : f01b4d95cf55d32a) ---
  Entrées : 28
  Plus récentes :
    Entrée 0 :  C:\ProgramData\Updates\                           (2024-01-15 14:36:25 UTC)
    Entrée 1 :  E:\Backup\                                        (2024-01-15 15:30:00 UTC)
    Entrée 2 :  \\FILESERV01\HR\Employees\                        (2024-01-15 16:12:45 UTC)

--- Application : cmd.exe (AppID : 9b9cdc69c1c24e2b) ---
  Entrées : 5
  Plus récentes :
    Entrée 0 :  C:\Windows\System32\cmd.exe                       (2024-01-15 14:36:00 UTC)

Résumé :
  Nombre total de fichiers LNK traités :   47
  Nombre total d'entrées de listes de sauts : 156
  Artefacts suspects :          3 (exécution en fenêtre masquée, accès à un lecteur USB, partages réseau)
  CSV exporté vers :               /analysis/lnk_output/ et /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 associés