🧨 De LNK à RAT : comment un raccourci peut ruiner ta journée (et ton SI)

Un .LNK, un ZIP, un faux PDF, et hop — bienvenue dans le club des machines qui parlent à des inconnus.

🔎 Contexte et mise en scène

Un fichier .LNK soyeusement déguisé en offre d’emploi ou en CV arrive via Discord (oui, Discord — là où on partage des memes et des fichiers dangereux). Quand la victime clique, le raccourci extrait Moq.zip dans C:\Users\Public\Nuget\, ouvre un faux PDF (pour jouer la comédie) et invoque la DLL Moq.dll via le binaire légitime odbcconf.exe /a {regsvr "...\moq.dll"}. Résultat : une RAT multi-fonction s’installe, désactive les protections, récolte des infos, prend des screenshots et bavarde avec ses maîtres (C2). Simple, élégant, vicieux.

🐍 Pourquoi c’est vicieux (techniquement)

  • Le vecteur .LNK : les raccourcis sont des petits chevaux de Troie non suspects. Tu vois offre.pdf.lnk et tu cliques. Pourquoi se méfier d’un fichier qui n’est pas un .exe ?
  • LOLBin + living-off-the-land : exécuter une DLL avec odbcconf.exe (un binaire Windows « propre ») évite pas mal d’alertes basiques. Les défenses regardent moins quand c’est Windows qui s’appelle lui-même.
  • AMSI et ETW mis KO : en neutralisant ces gardiens, le code malveillant passe sous le radar des antivirus et des solutions de télémétrie. C’est comme désactiver les détecteurs de fumée avant d’allumer un feu d’artifice.
  • Persistance Winlogon Shell : modifier HKCU\...\Winlogon\Shell pour relancer le bazar à chaque connexion. Pas subtil, mais efficace — et souvent ignoré.

🧾 Ce que fait le RAT (en clair)

  • collecte d’informations système et état des antivirus;
  • captures d’écran régulières;
  • exfiltration de fichiers (Dropbox, tokens, etc.);
  • exécution de commandes à distance et téléchargement de modules complémentaires;
  • modification des APIs de sécurité (patch AMSI/ETW);
  • persistance au démarrage via la clé Shell.

🚨 Signes d’infection (indices à surveiller)

  • Exécution d’odbcconf.exe avec des arguments étranges de type /a + regsvr.
  • DLLs récentes sous C:\Users\Public\Nuget\ ou %TEMP%.
  • Valeur Shell dans le registre HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon qui n’est pas explorer.exe.
  • Processus lançant PowerShell avec des commandes encodées après ouverture d’un .LNK.

🛠️ Détections et règles pratiques (exemples rapides)

  • Sysmon : alerte sur Image: odbcconf.exe et CommandLine contenant regsvr ou chemins publics (Public\Nuget).
  • SIEM : corréler création de fichiers .zip dans Public + exécutions de binaires système + modifications de clé Winlogon.
  • EDR : créer une règle d’intégrité mémoire pour détecter les patches sur AmsiScanBuffer et EtwEventWrite.

🧯 Mesures immédiates (si tu suspectes un poste)

  1. Isole la machine du réseau (oui, de suite).
  2. Dump mémoire + récupérer les DLL suspectes et les logs de création de processus.
  3. Vérifie la clé Winlogon et supprime toute valeur suspecte.
  4. Scanne pour exfiltration (comptes Dropbox/credentials) et change les identifiants sensibles.
  5. Remets le poste en état propre (réinstallation si nécessaire) — ne fais pas confiance à une simple suppression de fichier quand AMSI a été contourné.

🧱 Prévention — parce que prévenir c’est moins chiant que guérir

  • Désactive l’exécution automatique des .LNK reçus par des canaux non approuvés.
  • Bloque/filtre les extensions .lnk dans la messagerie et sur les points d’entrée externes.
  • Restreins les droits utilisateur : pas d’admin local, pas d’écriture libre dans C:\Users\Public.
  • Application Control (AppLocker / WDAC) : n’autorise que les binaires et DLL signés ou approuvés.
  • Formation : un micro-briefing pour l’équipe — « si c’est via Discord et que c’est un CV, c’est probablement pas un CV ». Répète-le souvent.

🎯 Conclusion

Ce qui commence par un petit raccourci se termine souvent par une belle pagaille : DLLs injectées, protections neutralisées, comptes potentiellement compromis. L’attaque n’est pas ultra-sophistiquée — elle est simplement maligneparce qu’elle combine ingénierie sociale, abus de binaires Windows légitimes et contournement des protections.


🧱 Voici la liste IOCs pour votre SIEM/EDR

voilà la liste d’IOCs (copiable/collable) extraite de l’analyse (format CSV simple : type,indicator,description). J’ai tiré ces IOCs de l’analyse publiée le 24 sept. 2025 (K7 / mirror Malware.news). Malware Analysis, News and Indicators

type,indicator,description
filename,cyber security.lnk,Nom du .LNK malveillant (vecteur initial / decoy)
filename,Cyber security.pdf,Decoy PDF extrait et ouvert pour distraire la victime
filename,Moq.zip,Archive ZIP embarquée extraite par le .LNK
filepath,C:\Users\Public\Nuget\moq.dll,Chemin complet de la DLL malveillante exécutée
filename,moq.dll,DLL principale (COM DLL avec export DllRegisterServer) utilisée comme RAT
filename,Dapper.dll,Lib .NET supporting chargée dynamiquement par Moq.dll
filename,Newtonsoft.dll,Lib .NET supporting chargée dynamiquement par Moq.dll
filename,Nunit,Payload/support file (~645KB) décodé et exécuté
commandline,odbcconf.exe /a {regsvr "C:\Users\Public\Nuget\moq.dll"},Commande utilisée pour enregistrer/exécuter la DLL via LOLBin
registry,HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell,Modification de la valeur Shell pour persistance (append du PowerShell)
filepath,%TEMP%/qwer.txt,Fichier local contenant l'ID machine unique (ou créé si absent)
domain,hotchichenfly.info,Serveur C2 hardcodé / URL de commande et contrôle
behavior,AMSI patch (AmsiScanBuffer patché),Patch mémoire appliqué à AmsiScanBuffer pour bypass AMSI
behavior,ETW patch (EtwEventWrite patché),Patch mémoire appliqué à EtwEventWrite pour désactiver ETW
filepath,%TEMP%,$Global:sacpath,temp path utilisé pour stocker commandes encodées du C2
protocol,HTTP(S) to C2,Canal de communication périodique vers C2 (encodé/base64)
filetype,.lnk,Vecteur de livraison (shortcut files) distribué via Discord

Notes rapides :

  • Le nom exact du .LNK observé dans l’analyse est cyber security.lnk et la decoy PDF Cyber security.pdf. Le payload ZIP s’appelle Moq.zip et est extrait dans C:\Users\Public\Nuget\ avant d’exécuter moq.dll.
  • Le C2 mentionné dans l’analyse est hotchichenfly.info (hard-coded fallback).
  • L’exécution se fait via un LOLBin : odbcconf.exe /a {regsvr "C:\Users\Public\Nuget\moq.dll"} — bonne règle de détection à créer. 

🔑 Allez et ça c’est cadeau

  1. un snippet Sysmon XML (à insérer dans ton Sysmon config sous <EventFiltering>), qui déclenche uniquement quand odbcconf.exe est lancé avec regsvr ET contient un chemin Public\Nuget (donc peu de faux positifs) ;
  2. un exemple JSON + un exemple CEF prêt à envoyer/ingérer dans ton SIEM/EDR pour enrichir / normaliser l’alerte.

Copie-colle direct. 👇


1) Règle Sysmon (XML) — coller dans ta config Sysmon sous <EventFiltering>

<!-- Detect odbcconf.exe used to regsvr a DLL in Public\Nuget -->
<ProcessCreate onmatch="include">
  <RuleGroup name="Detect odbcconf regsvr Public\Nuget" groupRelation="and">
    <!-- image must be odbcconf.exe (end with to handle system32 path) -->
    <Image condition="end with">\odbcconf.exe</Image>

    <!-- commandline must contain the regsvr flag (LOLBIN usage) -->
    <CommandLine condition="contains">regsvr</CommandLine>

    <!-- commandline must reference Public\Nuget (extraction path used by this campaign) -->
    <CommandLine condition="contains">Public\Nuget</CommandLine>
  </RuleGroup>
</ProcessCreate>

Notes d’implémentation

  • groupRelation="and" oblige les 3 conditions simultanées (image + regsvr + Public\Nuget) → réduit les faux positifs.
  • Si tu veux être plus strict, remplace contains Public\Nuget par contains C:\Users\Public\Nuget pour matcher le chemin complet.
  • Après modification, recharge la config Sysmon : sysmon -c <config.xml> (ou via ton outil d’orchestration).
  • Complète cette détection par une règle de FileCreate si tu veux surveiller l’apparition de *.dll sous C:\Users\Public\Nuget\.

2) Exemple JSON (format d’événement riche) — prêt à ingérer dans un SIEM/EDR

{
  "vendor": "SecuSlice",
  "product": "Sysmon",
  "event_id": "1001",
  "title": "Suspicious odbcconf.exe regsvr execution (Public\\Nuget)",
  "severity": 8,
  "host": {
    "hostname": "HOSTNAME_HERE",
    "ip": "HOST_IP_HERE",
    "user": "USERNAME_HERE"
  },
  "process": {
    "process_name": "odbcconf.exe",
    "process_path": "C:\\Windows\\System32\\odbcconf.exe",
    "command_line": "odbcconf.exe /a {regsvr \"C:\\Users\\Public\\Nuget\\moq.dll\"}",
    "pid": 1234
  },
  "file": {
    "path": "C:\\Users\\Public\\Nuget\\moq.dll",
    "name": "moq.dll",
    "sha256": "SHA256_PLACEHOLDER"
  },
  "registry": {
    "key": "HKCU\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\Shell",
    "value": "explorer.exe; powershell -EncodedCommand ..."
  },
  "network": {
    "c2_domain": "hotchichenfly.info",
    "protocols": ["HTTP","HTTPS"]
  },
  "ioc_tags": ["lnk","lolbin","regsvr","public\\nuget","amsi_bypass","etw_bypass"],
  "timestamp": "2025-09-24T17:44:38Z",
  "notes": "Detection rule: ProcessCreate where Image ends with \\odbcconf.exe AND CommandLine contains 'regsvr' AND 'Public\\Nuget'."
}

Conseils : mappe process.command_line vers le champ cs1 / CommandLine dans ton parser SIEM pour pouvoir rechercher plus tard sur l’argument exact. Remplis sha256 si tu as le hash de la DLL.


3) Exemple CEF (une seule ligne) — pour SIEMs qui acceptent CEF

Remplace les placeholders (HOSTNAME_HERE, IP, PID, SHA256) par les valeurs réelles.

CEF:0|SecuSlice|Sysmon|1.0|1001|Suspicious odbcconf regsvr execution|8|dvchost=HOSTNAME_HERE src=HOST_IP_HERE suser=USERNAME_HERE msg=odbcconf.exe /a {regsvr "C:\\Users\\Public\\Nuget\\moq.dll"} file=C:\\Users\\Public\\Nuget\\moq.dll dvc=HOSTNAME_HERE cn1=hotchichenfly.info cs1Label=CommandLine cs1=odbcconf.exe /a {regsvr "C:\\Users\\Public\\Nuget\\moq.dll"} flexString1=SHA256_PLACEHOLDER

Astuce : cn1 contient le C2 domain, cs1 la command line, flexString1 le hash. Adapte le mapping CEF → ton schéma SIEM.


4) Recommandations d’opérations / tuning (rapide)

  • Test en labo : pousse la règle sur un petit périmètre d’essai et vérifie les alertes pendant 24–48h avant déploi total.
  • Enrichissement : automatique lookup du hash (VirusTotal), résolution DNS du domaine hotchichenfly.info, et récupération de comportement réseau (URL, user-agent).
  • Rétention : conservez les CommandLine complets (au moins 30 jours) pour traçabilité.
  • Corrélation : alerte si odbcconf + regsvr ET création de .dll dans Public ET modification de Winlogon Shell → passage automatique au niveau incident.
🧨 De LNK à RAT : comment un raccourci peut ruiner ta journée (et ton SI)
Partager cet article : Twitter LinkedIn WhatsApp

🖋️ Publié sur SecuSlice.com

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut