Malware dans les fichiers LNK : comment les raccourcis Windows sont militarisés
· 5 min de lecture
Les fichiers raccourcis sont un vecteur de livraison de malware Windows fiable depuis quinze ans et plus. Ils sont petits, ils paraissent inoffensifs dans Explorer, l'extension est cachée par défaut, et le format leur permet de lancer n'importe quel exécutable avec n'importe quels arguments sous n'importe quelle icône. Les rapports de CISA, Mandiant, Trellix et SentinelOne à partir de 2023 continuent de signaler le même motif : .lnk est de retour en tête du kit d'outils d'accès initial. Le changement est réel, et l'astuce est qu'il n'y a rien à patcher, l'abus utilise des champs légitimes exactement comme spécifiés.
Deux saveurs d'abus de LNK
Exploitation du parser
Un petit nombre de CVE ont permis à un Shell Link d'exécuter du code simplement parce qu'Explorer l'a rendu.
- CVE-2010-2568, le bug d'analyse que Stuxnet a utilisé pour se propager via les clés USB. Explorer chargeait automatiquement une DLL malveillante en dessinant l'icône du raccourci. Aucun clic nécessaire.
- CVE-2017-8464, même famille, plus large. Patché, mais les systèmes non patchés sont restés des cibles pendant des années.
- CVE-2020-0729, CVE-2022-37969, problèmes côté parser ultérieurs avec un rayon d'impact plus petit.
Les Windows modernes patchent le parser, donc cette classe est rare en 2026. La menace active est tout ce qui suit dans la section suivante.
Militarisation des champs légitimes
La spec Shell Link permet à un raccourci de lancer n'importe quoi avec n'importe quels arguments sous n'importe quelle icône. Les campagnes actuelles abusent exactement de cela, sans exploit requis :
- Target pointe vers
C:\Windows\System32\cmd.exe,powershell.exe,mshta.exe,rundll32.exe,regsvr32.exe, ou un binaire living-off-the-land récemment populaire. Rarement l'application que l'icône prétend être. - Arguments porte une ligne qui télécharge ou décode une charge utile,
-enc <base64>,iex (iwr http://...),mshta http://...,rundll32 .\loader.dll,Entry, ou des chaînes de bypass AMSI. - WorkingDirectory pointe vers la racine de l'ISO/ZIP ou
%TEMP%/%APPDATA%, de sorte qu'une DLL ou un script sidecar se résout avec un chemin relatif. - IconLocation se résout vers une DLL système,
imageres.dll,-187est l'icône PDF,imageres.dll,-3est Word, pour correspondre au nom de fichier du leurre.Invoice_April.pdf.lnkrendu avec une icône PDF.
Depuis 2022, lorsque Microsoft a commencé à bloquer les macros VBA dans les docs Office tagués Mark-of-the-Web, c'est le motif de phishing dominant : conteneurs ZIP ou ISO, .lnk à l'intérieur, charge utile sidecar que le LNK invoque. Qakbot, Bumblebee, IcedID, les renaissances d'Emotet, et la plupart des admissions d'affiliés ransomware de 2023-2025 l'ont utilisé.
À quoi ressemble un LNK malveillant sous le capot
Analysez un vrai .lnk de phishing (déposez-le dans le parser de la page d'accueil, pas de téléversement, pas d'exécution) et vous verrez typiquement :
LinkInfo → LocalBasePath = C:\Windows\System32\cmd.exeoupowershell.exe. Pas le fichier que l'icône prétend être.StringData → COMMAND_LINE_ARGUMENTScontenant-enc,-EncodedCommand,iex,IEX,Invoke-Expression,mshta,rundll32.exe,regsvr32.exe, des URLs, ou des blobs base64 plus longs que ce que le LNK original est plausiblement autorisé à porter.StringData → WORKING_DIRpointant vers la racine de l'ISO/ZIP ou%TEMP%/%APPDATA%.StringData → ICON_LOCATIONpointant dansimageres.dlloushell32.dll, pas un vrai fichier.ShellLinkHeader → ShowCommand = 7(minimisé). Garder la fenêtre cmd hors de vue.- Blocs ExtraData assez riches pour divulguer la machine de build de l'attaquant via le nom NetBIOS et le GUID droid du TrackerDataBlock. Plusieurs victoires d'attribution publiques sont venues exactement de cela, les rapports Lazarus, APT37, APT41 le citent explicitement.
LinkFlagsavecHasArgumentsetHasIconLocationactivés, souvent avecIsUnicodeetHasExpStringpour le EnvironmentVariableDataBlock qui résout les chemins%USERPROFILE%ou%TEMP%à l'exécution.
Les motifs de détection se superposent naturellement à la sortie d'un parser. Le format CSV de LECmd d'Eric Zimmerman est ce que la plupart des règles de détection ciblent ; lnkparse3 et lnkinfo de libyal émettent des données équivalentes dans des schémas différents.
Checklist de triage
Avant d'ouvrir tout .lnk que vous n'avez pas créé vous-même :
- Confirmez que le fichier est ce qu'il prétend. Windows cache
.lnkpar défaut.Invoice.pdfpeut en réalité êtreInvoice.pdf.lnk. Affichez les extensions, ou faites un hex-dump des 20 premiers octets, un vrai LNK s'ouvre avec4C 00 00 00suivi du LinkCLSID00021401-0000-0000-C000-000000000046. - Lisez le LocalBasePath. Si ce n'est pas l'application à laquelle vous vous attendriez pour l'icône, arrêtez.
- Lisez les COMMAND_LINE_ARGUMENTS. Toute commande encodée, URL incorporée ou référence à un fichier sidecar dans la même archive est un drapeau rouge.
- Lisez l'ICON_LOCATION. Un chemin dans
imageres.dllalors que la cible estcmd.exeest le masque classique. - Lisez les blocs ExtraData. Le nom NetBIOS et le GUID droid du TrackerDataBlock vous remettront parfois la machine de build. Utilisez-les pour regrouper les échantillons.
- Détonez ailleurs. Si vous devez comprendre la charge utile, faites-le dans une VM isolée avec le réseau verrouillé. Jamais sur votre machine de travail.
Garde-fous défensifs
- Affichez les extensions de fichiers dans Explorer. Contrôlé par politique si vous ne pouvez pas faire confiance aux utilisateurs.
- Utilisez les règles Attack Surface Reduction : "Bloquer l'exécution de scripts potentiellement obfusqués" et "Bloquer le vol d'identifiants de LSASS" émoussent toutes deux la chaîne LNK typique.
- Appliquez Mark-of-the-Web aux conteneurs ISO et IMG téléchargés (cela a changé dans Windows 11 22H2 ; vérifiez votre build).
- Déployez une règle de détection basée sur parser qui signale les raccourcis dont la cible est
cmd.exe/powershell.exe/mshta.exe/rundll32.exe/regsvr32.exeen dehors d'une allowlist connue. - Assurez-vous que l'audit de ligne de commande EVTX (
4688avec lignes de commande, ou SysmonEventID=1) est activé. Le LNK est le déclencheur ; le processus engendré est où vous attrapez réellement la chaîne.
Pour aller plus loin
- La spécification [MS-SHLLINK] de Microsoft, les champs que ces campagnes abusent sont documentés là.
- CISA, avis sur les fichiers LNK malveillants à partir de 2023, détails au niveau campagne.
- Eric Zimmerman, LECmd, parser hors ligne dont le schéma de sortie est ciblé par la plupart des règles de détection.
- Pour les artefacts corroborants quand un LNK s'exécute : Prefetch, AmCache, EVTX, parser Jumplist pour la ligne DestList correspondante, parser MFT.