一連の不運な(RMM)イベント
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
脅威アクターは、標的とする環境への初期アクセスを取得し、持続性を保持するために、正当なリモート監視および管理 (RMM) ソフトウェアを悪用することが増えています。レポートでは、オペレーターがまず GoTo Resolve や PDQ などの「主要な」RMM ツールをインストールし、その後 ScreenConnect、SimpleHelp、ITarian などの追加の RMM ユーティリティを展開した事件を強調しています。初期のインストーラは通常、フィッシングとソーシャルエンジニアリングを通じて配布され、攻撃者が管理するドメインにホストされていました。これらのツールは信頼できる商業ツールであるため、滅多に悪用されることはなく、通常の管理者活動に紛れ込み、長期間にわたり影響力をサポートすることができます。
調査
Huntress SOC はエンドポイントテレメトリを用いてレトロスペクティブ脅威ハンティングを実施し、GoTo Resolve、PDQ、ITarian のインストーラがフィッシングによって配布されることから始まる実行チェーンを特定しました。アナリストはその後、持続性と拡張のステップ(タスクスケジュールの作成、サービスのインストール/開始、二次の RMM バイナリ(ScreenConnect や SimpleHelp)をステージングしてデプロイするために使用されたファイルシステムパスを含む)を追跡しました。支援証拠として、VirusTotal の親プロセス実行コンテキストとローカルファイルシステムのアーティファクトが使用され、多段階の侵入フローを再構成しました。
緩和策
アプリケーションの許可リストを実装し、特に一時フォルダやユーザが書き込み可能なディレクトリから実行される未承認の RMM ツールを明示的にブロックします。一般的な RMM 製品に関連するタスクスケジュールとサービス作成イベントを監視し、新規登録や疑わしいドメインへの送信トラフィックを精査します。承認された RMM ソフトウェアの最新在庫を維持し、これらのツールがどこで、どのように、誰によって使用されているかを定期的に監査します。
対応
不正な RMM インストーラが特定された場合、エンドポイントを隔離し、関連するサービスとスケジュールされたタスクを停止し削除し、未許可のバイナリを削除します。配信中および C2 通信中に観測された攻撃者が制御するドメインと URL をブロックまたはシンクホールします。追加の持続性が残らないことを確認するために完全なフォレンジック検証を行い、「主要から二次 RMM」展開パターンに関する類似検出を調整します。
“graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef process fill:#ccffcc %% ノード u2013 アクション action_phishing[“<b>アクション</b> – <b>T1566.001 フィッシング: スピアフィッシングの添付ファイル</b><br /><b>説明</b>: 被害者は、Open Revised Contract.exeなどの悪意のある添付ファイルを含むフィッシングメールを受け取ります”] class action_phishing action action_user_exec[“<b>アクション</b> – <b>T1204.002 ユーザー実行: 悪意のあるファイル</b><br /><b>説明</b>: 被害者は添付ファイルからダウンロードしたRMMインストーラーを手動で実行します”] class action_user_exec action action_sched_task[“<b>アクション</b> – <b>T1053 スケジュールされたタスク/ジョブ</b><br /><b>説明</b>: 攻撃者は永続性を維持するためのWindowsスケジュールされたタスクを作成します”] class action_sched_task action action_service_exec[“<b>アクション</b> – <b>T1569.002 システムサービス:サービスの実行</b><br /><b>説明</b>: 悪意のあるRMMサービスはsc.exeを介してインストールおよび開始されます”] class action_service_exec action action_rmt_use[“<b>アクション</b> – <b>T1219 リモートアクセスツール</b><br /><b>説明</b>: インストールされたRMMは敵対者にリモートアクセス機能を提供します”] class action_rmt_use action action_remote_desktop[“<b>アクション</b> – <b>T1219.002 リモートアクセスツール: リモートデスクトップソフトウェア</b><br /><b>説明</b>: 特定のリモートデスクトップソフトウェア(ScreenConnect)が隠密制御のために展開されます”] class action_remote_desktop action action_lateral_transfer[“<b>アクション</b> – <b>T1570 ラテラルツール転送</b><br /><b>説明</b>: 攻撃者は初期RMMを使用して追加のRMMツールをダウンロードおよびインストールします”] class action_lateral_transfer action %% ノード u2013 ツール / ファイル tool_malicious_attachment[“<b>ツール</b> – <b>名称</b>: 悪意のあるRMMインストーラー<br /><b>ファイルタイプ</b>: .exe (例: Open Revised Contract.exe)”] class tool_malicious_attachment tool tool_goto_resolve[“<b>ツール</b> – <b>名称</b>: GoTo Resolve (RMM)<br /><b>能力</b>: リモート管理およびサポート”] class tool_goto_resolve tool tool_pdq[“<b>ツール</b> – <b>名称</b>: PDQ Deploy (RMM)<br /><b>能力</b>: ソフトウェアの展開と実行”] class tool_pdq tool tool_itarian[“<b>ツール</b> – <b>名称</b>: ITarian (RMM)<br /><b>能力</b>: リモート管理”] class tool_itarian tool tool_screenconnect[“<b>ツール</b> – <b>名称</b>: ScreenConnect (リモートデスクトップ)<br /><b>能力</b>: 画面共有とリモートコントロール”] class tool_screenconnect tool tool_simplehelp[“<b>ツール</b> – <b>名称</b>: SimpleHelp (RMM)<br /><b>能力</b>: リモートアシスタンス”] class tool_simplehelp tool process_sc_exe[“<b>プロセス</b> – <b>名称</b>: sc.exe<br /><b>目的</b>: Windowsサービスを作成および開始する”] class process_sc_exe process %% 接続 u2013 攻撃フロー action_phishing u002du002d>|添付ファイルを配信| tool_malicious_attachment tool_malicious_attachment u002du002d>|被害者によって実行| action_user_exec action_user_exec u002du002d>|インストール| tool_goto_resolve action_user_exec u002du002d>|インストール| tool_pdq action_user_exec u002du002d>|インストール| tool_itarian tool_goto_resolve u002du002d>|作成| action_sched_task tool_goto_resolve u002du002d>|使用| process_sc_exe process_sc_exe u002du002d>|サービスを開始する| action_service_exec action_service_exec u002du002d>|有効にする| action_rmt_use action_rmt_use u002du002d>|を通じてリモートデスクトップを提供| tool_screenconnect action_rmt_use u002du002d>|アクセスを維持する| tool_goto_resolve action_rmt_use u002du002d>|開始| action_lateral_transfer action_lateral_transfer u002du002d>|ダウンロードおよびインストール| tool_simplehelp action_lateral_transfer u002du002d>|ダウンロードおよびインストール| tool_screenconnect “
攻撃フロー
シミュレーションの実行
前提条件: テレメトリ & ベースライン前提チェックが完了している必要があります。
根拠: このセクションでは、敵の技術 (TTP) を正確に実行し、検出ルールを引き起こすために設計された TTPs を示しています。コマンドと物語は、検出ロジックによって予想される正確なテレメトリを生成することを目的として、識別された TTPs を直接反映する必要があります。
-
攻撃の物語 & コマンド:
攻撃者は、
Open Revised Contract (2).exeと名付けられた添付ファイルのフィッシングメールを送信します。ユーザーはこれを正当な契約書と信じて添付ファイルをクリックします。この実行可能ファイルは、悪意のある RMM MSI (276SpecialInvitation9756.msi) を%TEMP%ディレクトリにドロップし、msiexec.exeを通じて起動します。この MSI は不正な RMM サービスをインストールし、攻撃者の C2 にリバースシェルを開きます。このフローは以下にマッピングされます:- T1203 – クライアント実行 (ユーザーが EXE を実行します)。
- T1027.004 – コンパイルされたペイロード (この EXE はコンパイルされた悪意のあるバイナリです)。
- T1218.005 – Msiexec (EXE は
msiexec.exe /iを使用して MSI を実行します)。 - T1554 – クライアント ソフトウェア バイナリの妥協 (MSI が不正な RMM をインストールします)。
生成されたプロセス作成イベントは以下です:
C:Users<user>AppDataLocalTempOpen Revised Contract (2).exe– 初期の悪意のある EXE。C:WindowsSystem32msiexec.exeコマンドライン:/i "C:Users<user>AppDataLocalTemp276SpecialInvitation9756.msi" /quiet.
両方のパスは Sigma ルールにエントリと一致し、アラートを発するはずです。
-
回帰テストスクリプト:
# ------------------------------------------------------------ # シミュレーション スクリプト – 検出ロジックで定義された正確な # ファイル名を使用して Sigma ルールをトリガーします。 # ------------------------------------------------------------ $tempDir = "$env:TEMPRMM_Test" New-Item -Path $tempDir -ItemType Directory -Force | Out-Null # 1. 偽の悪意のある EXE をドロップ(notepad.exe をコピーしてシミュレーション) $malExe = "$tempDirOpen Revised Contract (2).exe" Copy-Item -Path "$env:SystemRootSystem32notepad.exe" -Destination $malExe -Force # 2. 偽の悪意のある MSI をドロップ(任意の MSI をコピーしてシミュレーション – 例: Windows SDK) $malMsi = "$tempDir276SpecialInvitation9756.msi" # 空のプレースホルダー MSI ファイルを作成 New-Item -Path $malMsi -ItemType File -Force | Out-Null # 3. EXE を実行 – これにより msiexec が起動され MSI がインストールされます Write-Host "[*] 悪意のある EXE を実行中..." Start-Process -FilePath $malExe -Wait # 4. msiexec 経由で MSI を直接起動して検出を確認(ステップ 3 が失敗した場合) Write-Host "[*] msiexec 経由で MSI を起動中..." $msiArgs = "/i `"$malMsi`" /quiet" Start-Process -FilePath "$env:SystemRootSystem32msiexec.exe" -ArgumentList $msiArgs -Wait Write-Host "[+] シミュレーション完了。2 つのプロセス作成に対するアラートを SIEM で確認してください。" # ------------------------------------------------------------ # クリーンアップ(希望する場合は別途実行) # ------------------------------------------------------------ # Remove-Item -Path $tempDir -Recurse -Force -
クリーンアップコマンド:
# シミュレーションによって作成されたすべてのアーティファクトを削除します $tempDir = "$env:TEMPRMM_Test" if (Test-Path $tempDir) { Remove-Item -Path $tempDir -Recurse -Force Write-Host "[*] クリーンアップ完了。" } else { Write-Host "[!] アーティファクトは見つかりませんでした。クリーンにするものはありません。" }