一連の不運な(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」展開パターンに関する類似検出を調整します。
攻撃フロー
シミュレーションの実行
前提条件: テレメトリ & ベースライン前提チェックが完了している必要があります。
根拠: このセクションでは、敵の技術 (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 "[!] アーティファクトは見つかりませんでした。クリーンにするものはありません。" }