Malware Espiègles : Rapport Exploitable pour les Équipes SOC
Detection stack
- AIDR
- Alert
- ETL
- Query
Analyse du Trojan Maverick
Le cheval de Troie Maverick est un maliciel bancaire sophistiqué ciblant le Brésil, qui exploite l’ingénierie sociale via WhatsApp Web pour livrer des archives ZIP malveillantes contenant des raccourcis LNK, lesquels déclenchent des chargeurs PowerShell et .NET obfusqués pour une chaîne d’infection sans fichiers. Le maliciel vérifie que le système victime est situé au Brésil (via des vérifications de fuseau horaire, de paramètre régional et de région), puis surveille les sessions de navigateur et cible une liste codée en dur de banques brésiliennes, d’échanges cryptographiques et de plateformes de paiement. Les chevauchements de code relient Maverick à la campagne précédente du Trojan Coyote, cependant, son architecture et ses méthodes de propagation représentent une évolution. Ce rapport équipe les équipes SOC avec le flux d’attaque, les indicateurs clés de compromission (IOC), les requêtes de détection, les contrôles d’atténuation et les directives de simulation nécessaires pour se défendre contre Maverick.
Enquête sur le Malware Maverick
Les chercheurs ont observé que le vecteur d’infection initial de Maverick est une archive ZIP livrée via WhatsApp Web, qui contient un fichier LNK malveillant. Le LNK exécute une chaîne PowerShell qui télécharge un chargeur initial depuis un serveur C2 (par exemple, sorvetenopote[.]com). Le chargeur décode et exécute un assembly .NET entièrement en mémoire sans déposer de fichiers sur le disque. Une branche d’exécution installe un module infecteur de WhatsApp en utilisant Selenium et WPPConnect pour détourner les sessions de navigateur et se propager. La deuxième branche charge le payload bancaire Maverick (« Maverick.Agent ») qui vérifie que la victime est brésilienne (fuseau horaire entre UTC-5 et UTC-2, paramètre régional « pt-BR »), établit la persistance via un HealthApp-<GUID>.bat dans le dossier de démarrage, surveille les fenêtres de premier plan du navigateur pour une liste compressée/chiffrée d’URLs bancaires et, lorsqu’une correspondance est trouvée, déchiffre un module et l’exécute pour effectuer le vol d’identifiants, l’enregistrement de frappes, la capture d’écrans, le hameçonnage par superposition et la communication C2. De nombreux schémas de réutilisation de code et des routines de chiffrement AES/GZIP identiques lient Maverick à Coyote.
Atténuation de l’Exploitation Maverick
Pour se défendre contre Maverick, les équipes SOC doivent appliquer des contrôles stricts et des défenses en couches. Limitez ou bloquez l’utilisation de WhatsApp Web pour les employés ayant accès à des systèmes sensibles. Mettez en œuvre une formation à la sensibilisation au hameçonnage axée sur les pièces jointes ZIP et les raccourcis provenant de plateformes de messagerie. Appliquez des politiques d’exécution PowerShell strictes (par exemple, restreignez les scripts non signés, consignez les utilisations intensives, bloquez les schémas IEX DownloadString). Surveillez la création de fichiers batch inhabituels dans les dossiers de démarrage (par exemple, « HealthApp-*.bat »). Utilisez des solutions de détection et réponse des points de terminaison (EDR) capables de détecter le chargement réflectif de .NET et l’exécution de shellcodes Donut en mémoire. Bloquez les domaines malveillants connus et l’infrastructure C2 tels que sorvetenopote[.]com et zapgrande[.]com aux niveaux DNS/pare-feu. Maintenez à jour les signatures antivirus/EDR et les flux de menaces, et désactivez ou surveillez les outils de détournement de sessions de navigateur automatisés.
Comment Répondre au Malware Bancaire Maverick
Lorsqu’une infection potentielle par Maverick est détectée, les répondants aux incidents doivent immédiatement isoler l’hôte affecté et commencer une enquête judiciaire. Utilisez les requêtes de détection dans votre SIEM/EDR pour trouver les invocations de PowerShell de DownloadString pour des domaines suspects, l’exécution en mémoire de .NET réfléchi, et les sous-processus lançant des fichiers batch depuis les dossiers de démarrage. Mettez en quarantaine tous les fichiers batch nommés « HealthApp-<GUID>.bat » et bloquez les domaines et les IPs C2 associés. Vérifiez les profils de navigateur pour des outils d’automatisation non autorisés tels que ChromeDriver ou Selenium. Réinitialisez les identifiants bancaires pour tous les utilisateurs affectés et appliquez l’authentification multi-facteurs (MFA) sur tous les accès aux services financiers. Assurez-vous d’un nettoyage minutieux en vérifiant qu’aucun module résiduel de Maverick ne subsiste et procédez à une analyse complète des logiciels malveillants sur le réseau.
graph TB %% Class Definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef process fill:#ccffcc classDef malware fill:#ff9999 classDef operator fill:#ff9900 %% Nodes delivery_content_injection[« <b>Action</b> – <b>T1659 Injection de contenu</b><br/><b>Description</b>: Fichiers ZIP/LNK malveillants envoyés via WhatsApp Web »] class delivery_content_injection action phishing_service[« <b>Action</b> – <b>T1566.003 Hameçonnage : Spearphishing via service</b><br/><b>Description</b>: Utilisation de WhatsApp comme service pour distribuer la charge malveillante »] class phishing_service action user_execution[« <b>Action</b> – <b>T1204.002 Exécution par l’utilisateur</b><br/><b>Description</b>: La victime ouvre le raccourci, déclenchant un cmd obfusqué »] class user_execution action cmd_tool[« <b>Outil</b> – <b>Nom</b> : cmd.exe »] class cmd_tool tool powershell_interpreter[« <b>Action</b> – <b>T1059.001 PowerShell</b><br/><b>Description</b>: Décode la charge Base64 et exécute les commandes »] class powershell_interpreter action powershell_tool[« <b>Outil</b> – <b>Nom</b> : PowerShell »] class powershell_tool tool obfuscation[« <b>Action</b> – <b>T1027.014 Fichiers ou informations obfusqués</b><br/><b>Description</b>: Code polymorphe, jetons séparés, boucles FOR imbriquées, Base64 et UTF‑16LE »] class obfuscation action location_discovery[« <b>Action</b> – <b>T1614.001 Découverte de la localisation du système</b><br/><b>Description</b>: Vérifie la langue/la géolocalisation et abandonne si ce n’est pas le Brésil »] class location_discovery action sandbox_evasion[« <b>Action</b> – <b>T1497.002 Évasion Virtualisation/Sandbox</b><br/><b>Description</b>: Vérifications basées sur l’activité utilisateur »] class sandbox_evasion action uac_bypass[« <b>Action</b> – <b>T1548.002 Abus du mécanisme d’élévation de contrôle : Contournement du contrôle de compte utilisateur</b><br/><b>Description</b>: Désactive Microsoft Defender et l’UAC »] class uac_bypass action persistence_startup[« <b>Action</b> – <b>T1037.004 Scripts d’initialisation au démarrage ou à la connexion : Scripts RC</b><br/><b>Description</b>: Dépose un fichier batch dans le dossier de démarrage »] class persistence_startup action batch_file[« <b>Processus</b> – <b>Nom</b> : HealthApp‑<GUID>.bat »] class batch_file process persistence_startup_item[« <b>Action</b> – <b>T1037.005 Scripts d’initialisation au démarrage ou à la connexion : Éléments de démarrage</b><br/><b>Description</b>: Le batch contacte périodiquement le C2 »] class persistence_startup_item action process_discovery[« <b>Action</b> – <b>T1057 Découverte de processus</b><br/><b>Description</b>: Énumère les processus du navigateur »] class process_discovery action session_hijack[« <b>Action</b> – <b>T1539 Vol de cookie de session web</b> / <b>T1185 Détournement de session de navigateur</b><br/><b>Description</b>: Capture les cookies des sites bancaires »] class session_hijack action web_c2_bidirectional[« <b>Action</b> – <b>T1102.002 Service Web : Communication bidirectionnelle</b><br/><b>Description</b>: Appels API HTTPS vers zapgrande.com »] class web_c2_bidirectional action web_c2_oneway[« <b>Action</b> – <b>T1102.003 Service Web : Communication unidirectionnelle</b><br/><b>Description</b>: Récupère des charges supplémentaires »] class web_c2_oneway action proxy_execution[« <b>Action</b> – <b>T1216 Exécution de script système par proxy</b> et <b>T1218 Exécution de binaire système par proxy</b><br/><b>Description</b>: PowerShell et cmd.exe agissent comme proxys pour exécuter des scripts distants en mémoire »] class proxy_execution action masquerading[« <b>Action</b> – <b>T1036.001 Déguisement</b><br/><b>Description</b>: Fichiers déguisés en .lnk, .zip, etc., avec des signatures invalides »] class masquerading action malware_payload[« <b>Malware</b> – <b>Nom</b> : Chargeur PowerShell obfusqué »] class malware_payload malware %% Operators op_and_location((« ET »)) class op_and_location operator %% Connections delivery_content_injection u002du002d>|livre| phishing_service phishing_service u002du002d>|conduit à| user_execution user_execution u002du002d>|exécute| cmd_tool cmd_tool u002du002d>|lance| powershell_interpreter powershell_interpreter u002du002d>|utilise| powershell_tool powershell_tool u002du002d>|exécute| obfuscation obfuscation u002du002d>|active| location_discovery location_discovery u002du002d>|passe| op_and_location sandbox_evasion u002du002d>|lié à| op_and_location op_and_location u002du002d>|permet| uac_bypass uac_bypass u002du002d>|établit| persistence_startup persistence_startup u002du002d>|crée| batch_file batch_file u002du002d>|appelle| web_c2_bidirectional web_c2_bidirectional u002du002d>|récupère| web_c2_oneway web_c2_oneway u002du002d>|fournit| proxy_execution proxy_execution u002du002d>|exécute| malware_payload malware_payload u002du002d>|dépose| persistence_startup_item persistence_startup_item u002du002d>|contacte périodiquement| web_c2_bidirectional process_discovery u002du002d>|identifie les navigateurs pour| session_hijack session_hijack u002du002d>|exfiltre via| web_c2_bidirectional proxy_execution u002du002d>|masqué par| masquerading %% Apply classes class delivery_content_injection action class phishing_service action class user_execution action class cmd_tool tool class powershell_interpreter action class powershell_tool tool class obfuscation action class location_discovery action class sandbox_evasion action class uac_bypass action class persistence_startup action class batch_file process class persistence_startup_item action class web_c2_bidirectional action class web_c2_oneway action class proxy_execution action class masquerading action class malware_payload malware class process_discovery action class session_hijack action
Flux d’Attaque
Détection des Logiciels Malveillants Maverick
Détecter l’Exécution du Trojan Bancaire Maverick via CMD et PowerShell [Création de Processus Windows]
Voir
Détection des Connexions de Domaines C2 du Malware Maverick [Connexion Réseau Windows]
Voir
IOC (ip) pour détecter : Maverick et Coyote : Analyse du Lien Entre Deux Trojans Bancaires Brésiliens en Évolution
Voir
IOC (hash) pour détecter : Maverick et Coyote : Analyse du Lien Entre Deux Trojans Bancaires Brésiliens en Évolution
Voir
Téléchargement ou Envoi via Powershell (via ligne de commande)
Voir
La Possibilité d’Exécution par Lignes de Commande PowerShell Cachées (via ligne de commande)
Voir
Charge Utile du Trojan Maverick
Instructions de Simulation
Prérequis : Le Check Télémetrie et Baseline Pre-flight doit avoir été passé.
Raison : Cette section détaille l’exécution précise de la technique de l’adversaire (TTP) conçue pour déclencher la règle de détection. Les commandes et le récit DOIVENT refléter directement les TTPs identifiés et viser à générer la télémétrie exacte attendue par la logique de détection. Des exemples abstraits ou non pertinents entraîneront un mauvais diagnostic.
-
Narration de l’Attaque & Commandes :
- Reconnaissance Initiale (un no-op pour la règle, omis).
-
Contact C2 : L’adversaire lance une commande PowerShell en une ligne qui résout
zapgrande.comet effectue une requête HTTP GET, imitant le signal du maliciel. Cela génère un événement Sysmon NetworkConnect avecDestinationHostname = zapgrande.com. -
Récupération de la Charge Utile : Juste après le GET, le script télécharge une petite charge utile exécutable du même hôte, stockée dans
%TEMP%.
L’attaquant utilise la commande native
Invoke-WebRequestpour éviter de créer un binaire malveillant séparé et rester en ‘vivant de la terre’. -
Script de Test de Régression :
# ------------------------------------------------- # Script de simulation pour le contact de domaine C2 Maverick # ------------------------------------------------- $maliciousDomains = @("zapgrande.com","sorvetenopote.com") foreach ($domain in $maliciousDomains) { try { Write-Host "[*] Contacting C2 host: $domain" # Résolution de DNS (crée des logs de requêtes DNS)