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 registreHKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
qui n’est pasexplorer.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
etCommandLine
contenantregsvr
ou chemins publics (Public\Nuget
). - SIEM : corréler création de fichiers
.zip
dansPublic
+ 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
etEtwEventWrite
.
🧯 Mesures immédiates (si tu suspectes un poste)
- Isole la machine du réseau (oui, de suite).
- Dump mémoire + récupérer les DLL suspectes et les logs de création de processus.
- Vérifie la clé Winlogon et supprime toute valeur suspecte.
- Scanne pour exfiltration (comptes Dropbox/credentials) et change les identifiants sensibles.
- 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 PDFCyber security.pdf
. Le payload ZIP s’appelleMoq.zip
et est extrait dansC:\Users\Public\Nuget\
avant d’exécutermoq.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
- un snippet Sysmon XML (à insérer dans ton
Sysmon
config sous<EventFiltering>
), qui déclenche uniquement quand odbcconf.exe est lancé avecregsvr
ET contient un cheminPublic\Nuget
(donc peu de faux positifs) ; - 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
parcontains 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
sousC:\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
dansPublic
ET modification de Winlogon Shell → passage automatique au niveau incident.