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)
- 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 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
- 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) ; - 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.
