RoguePlanetがDefenderの隔離パイプラインを通じてWindowsゼロデイを悪用
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
RoguePlanetは、Windows上でMicrosoft Defenderの隔離と修復ワークフローを悪用するローカル権限昇格のゼロデイ攻撃です。NTFSディレクトリジャンクション、暫定ロック、ボリュームシャドウコピーサービスを組み合わせることで、低権限のユーザーがDefenderの処理を妨害し、任意のコードを実行するよう強制することができます NT AUTHORITYSYSTEMとして。このエクスプロイトは、ファイルの隔離操作中にタイミング競争を常に勝つための決定論的なI/Oサチュレーション手法に依存しています。
調査
Howler Cell脅威調査チームは、完全にパッチを適用されたWindows 11 Proシステムでこのエクスプロイトを再現し、メモリ破損や管理者アクセスなしでSYSTEMレベルのコード実行が達成されることを確認しました。彼らの分析では、埋め込みISOイメージ、NTFSリパースポイント、および WER QueueReporting スケジュールされたタスクの悪用を含む7段階の攻撃チェーンが特定されました。研究者たちはまた、わずかなソースレベルの変更により、静的検出を比較的容易に回避できることを指摘しました。
緩和策
現在、RoguePlanetの根本的な原因に対処する公式なパッチは存在しません。防御者は、このエクスプロイトに関連する特定の名前付きパイプの作成と、UUIDのようなディレクトリ名を含む異常なファイルシステムアクティビティを監視する必要があります。 %TEMP%直下。NTFSジャンクションの悪用を制限し、ボリュームシャドウコピーを列挙する非システムプロセスの検出に焦点を当てた追加の強化が必要です。
対応
RoguePlanet関連の活動が検出された場合、セキュリティチームは影響を受けたホストを隔離し、 conhost.exe をSYSTEMインテグリティ親からユーザーセッションに生成するプロセスを調査する必要があります。アナリストはまた、 wermgr.exe が予期しないパスから実行されていないかを追跡し、 %TEMP% ディレクトリ構造を確認してください。 RP_ スケジュールされたタスク QueueReporting の不審な実行についてタスクスケジューラのログを確認することも重要です。
graph TB %% クラス定義セクション classDef action fill:#99ccff classDef tool fill:#cccccc classDef process fill:#ccffcc classDef malware fill:#ff9999 classDef technique fill:#e1ccff %% ノード定義 %% ステップ1: 準備 prep_iso[“<b>アクション</b>: 埋め込まれたISOの抽出<br/><b>説明</b>: オーケストレーターがISOを展開し、読み取り専用仮想ディスクを作成<br/><b>対象</b>: %TEMP% ディレクトリ構造”] class prep_iso action %% ステップ2: ペイロード配信 payload_ads[“<b>アクション</b> – <b id=’T1564.004’>NTFSファイル属性: 代替データストリーム</b><br/><b>説明</b>: 非表示ADS「:WDFOO」内へEICARテストファイルを書き込み<br/><b>目的</b>: 配信時の標準的なファイル制限を回避”] class payload_ads technique %% ステップ3: レースコンディション race_condition[“<b>アクション</b> – <b id=’T1499’>エンドポイントサービス拒否: 防御機能の妨害</b><br/><b>説明</b>: Poseidon I/Oサブシステムを使用して高頻度ディスクアクティビティを生成<br/><b>メカニズム</b>: I/O飽和とオポチュニスティックロック(oplocks)によりDefenderを一時停止”] class race_condition technique %% ステップ4: 実行フローのハイジャック hijack_junction[“<b>アクション</b> – <b id=’T1137’>Officeアプリケーション: レジストリ/ファイルの作成または変更</b><br/><b>説明</b>: NTFS再解析ポイントを利用したジャンクション変更を実行<br/><b>対象</b>: 正規のwermgr.exeパスを攻撃者ディレクトリへリダイレクト”] class hijack_junction technique overwrite_artifact[“<b>アクション</b>: SYSTEM所有アーティファクトの上書き<br/><b>説明</b>: SYSTEMメタデータを維持したまま隔離アーティファクトを悪意あるペイロードへ置換”] class overwrite_artifact action %% ステップ5: 権限昇格 task_trigger[“<b>アクション</b> – <b id=’T1053.005’>スケジュール済みタスク/ジョブ: スケジュール済みタスク</b><br/><b>説明</b>: タスクスケジューラCOMインターフェースを利用してQueueReportingタスクを起動”] class task_trigger technique shell_escalation[“<b>プロセス</b>: conhost.exe シェル<br/><b>権限レベル</b>: NT AUTHORITY\\SYSTEM<br/><b>説明</b>: ハイジャックされたタスクを通じてリダイレクトされたペイロードを最終実行”] class shell_escalation process %% 接続フロー prep_iso –>|促進する| payload_ads payload_ads –>|誘発する| race_condition race_condition –>|可能にする| hijack_junction hijack_junction –>|結果として| overwrite_artifact overwrite_artifact –>|準備する| task_trigger task_trigger –>|実行する| shell_escalation
攻撃フロー
検出
NT AUTHORITY下の不審なプロセス(process_creation経由)
表示
VHDMP オプティックディスクイメージがマウントされました(VHDMP経由)
表示
RoguePlanetのエクスプロイテーションの可能性がある動作(file_event経由)
表示
RoguePlanetのエクスプロイテーションの可能性がある動作(pipe_created経由)
表示
シャドウコピーへのAbnormal NtQueryDirectoryObjectアクセス[Windows Sysmon]
表示
RoguePlanetエクスプロイトアーティファクトと行為パターンを検出する[Windowsファイルイベント]
表示
RoguePlanetの名前付きパイプとSYSTEM-インテグリティプロセスの異常[Windows Process Creation]
表示
シミュレーション実行
前提条件:テレメトリーとベースラインの事前確認が合格している必要があります。
理由:このセクションは、検出ルールをトリガーするために設計された敵対者の技術(TTP)の正確な実行を詳細に示しています。コマンドと叙述は、特定されたTTPを直接反映し、検出ロジックによって期待される正確なテレメトリーを生成することを目指しています。抽象的または無関係な例は誤診につながります。
-
攻撃の叙述とコマンド: 敵対者は、実行中のWindowsサービスの脆弱性を悪用してSYSTEMレベルのコード実行を達成します。攻撃者は、悪用されたサービスと新たに注入されたスレッド間の通信を促進するために、名前付きパイプ
.pipeRoguePlanetを作成します。権限昇格が成功した後、攻撃者のペイロードは強制的にservices.exeを呼び出し、さらにコマンドを実行するためのインタラクティブな環境を提供します。このシーケンスは、RoguePlanetのエクスプロイトチェーンの挙動を模倣するよう設計されています。conhost.exeto provide an interactive environment for further command execution. This sequence is designed to mimic the behavior of the RoguePlanet exploit chain. -
リグレッション試験スクリプト:
# RoguePlanetの名前付きパイプとプロセスの異常をシミュレートする # 注:このスクリプトは管理者権限を必要とし、サービスのような動作をシミュレートします Write-Host "[+] RoguePlanetのシミュレーションを開始します..." -ForegroundColor Cyan # 1. 名前付きパイプの作成をシミュレート(セレクションパイプに一致) # PowerShellを使用してターゲット指標を模倣する名前付きパイプを作成します $pipeName = "RoguePlanet" $pipe = New-Object System.IO.Pipes.NamedPipeServerStream($pipeName, [System.IO.Pipes.PipeDirection]::InOut) Write-Host "[+] 名前付きパイプ \.pipe$pipeName を作成しました。" -ForegroundColor Green # 2. 異常なプロセス生成をシミュレート(セレクションコンホストとセレクションペアレントに一致) # 本物のエクスプロイトでは、services.exeが親になります。 # カーネルエクスプロイトなしにservices.exeになることが難しいため、 # 規則ロジックが期待する特定の親子関係を模倣するプロセス生成イベントをトリガーすることで、 # テレメトリーをシミュレートします。 Write-Host "[+] services.exeからのconhost.exe生成をシミュレートしています..." -ForegroundColor Cyan # SIEM/Sysmonが # ターゲット親画像で記録するプロセスを作成するトリックを使用します # 検出試験の目的で、特定のImage/ParentImage基準をターゲットとするコマンドを # 実行します。 # 注:実際の検証では、研究者は # 'ProcMon'やカスタムドライバーを使用して、親プロセスID(PPID)を偽装することもあります。 # services.exeを使用して、規則が正確にトリガーされることを確認します。 Start-Process "conhost.exe" -ArgumentList "/c echo シミュレーション完了" -WindowStyle Hidden Write-Host "[+] シミュレーションコマンドが送信されました。SIEMでアラートを確認してください。" -ForegroundColor Yellow # テレメトリーがキャプチャされるようにパイプを一時的に開いたままにしておきます Start-Sleep -Seconds 5 $pipe.Dispose() -
クリーンアップコマンド:
# クリーンアップ:残りのパイプを閉じ、シミュレートされたプロセスを終了します Get-Process conhost | Stop-Process -Force -ErrorAction SilentlyContinue Write-Host "[+] クリーンアップ完了。" -ForegroundColor Green