SOC Prime Bias: クリティカル

02 Jun 2026 19:43 UTC

ニュンバスマンティコアとそのサイドローディング感染チェーンの検出

Author Photo
SOC Prime Team linkedin icon フォローする
ニュンバスマンティコアとそのサイドローディング感染チェーンの検出
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

概要

UNC1549としても追跡されているNimbus Manticoreは、偽の採用ポータルを使用して標的型のフィッシングキャンペーンを実施し、マルチステージの.NETマルウェアチェーンを配布しました。この攻撃は、正規のMicrosoft Visual StudioコンポーネントとAppDomainハイジャックを悪用してカスタムDLLをロードし、その後、2番目のステージDLLを展開し、スケジュールタスクを通じて永続性を確立しました。コマンド・アンド・コントロールインフラストラクチャはAzureベースのドメインでホストされていました。キャンペーンは主に中東とヨーロッパの航空宇宙および防衛組織を標的にしていました。

調査

研究者たちはLinkedIn誘導からZIPアーカイブ、改変された setup.exe.config ファイル、暗号化されたステージャーに至る完全な感染チェーンを再構築しました。彼らの分析では、改名された ServiceHub.VSDetouredHost.exeの悪用が明らかになり、 TOTPGuard.dll ローダー、AES暗号化されたPEヘッダー、および BackupCheckというログオントリガのスケジュールタスクも判明しました。ネットワークインジケーターもまた、コマンド・アンド・コントロールコミュニケーションのために使用された多数のAzureホストされたドメインを指していました。

軽減策

組織は、採用テーマのソーシャルエンジニアリングの兆候に気づくように従業員を訓練し、新規登録されたドメインをブロックまたは厳重に監視し、ユーザ書込みディレクトリに対してAppLockerまたは同等のコントロールを施行するべきです。また、名前が BackupCheck のスケジュールタスクや、 doit 引数を使用して実行されるものに対して警戒すべきです。.NETアプリケーションにおけるAppDomainハイジャック振る舞いやAzureホストされたコマンド・アンド・コントロールドメインへの不審なトラフィックを監視することも推奨されます。

対応

関連する活動が検出された場合、影響を受けたエンドポイントを隔離し、悪意あるバイナリとスケジュールタスクの定義を収集し、関連するAzureドメインおよび偽の採用ポータルをブロックしてください。調査員は、 AppData2FAGuard フォルダーの法医学レビューを実行し、持続性タスクを削除し、同じYARA署名を使用して他のシステムで似た活動を捜索してください。検出ロジックを新たに識別されたインジケーターで更新する必要があります。

graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef file fill:#ccffcc classDef process fill:#ffdddd %% Nodes action_phishing[“<b>Action</b> – <b>T1566.002 スピアフィッシングリンク</b><br/>被害者は採用担当者を装ったLinkedInメッセージを受け取り、偽の求人ポータルへの悪意あるリンクをクリックする。”] class action_phishing action action_delivery[“<b>Action</b> – 悪意あるZIPによる配布<br/>偽ポータルはMicrosoftバイナリを偽装したファイルと隠しファイルを含むZIPを提供する。”] class action_delivery action file_malicious_zip[“<b>File</b> – <b>Name</b>: payload.zip<br/><b>Contains</b>: setup.exe および追加の隠しファイル”] class file_malicious_zip file file_setup_exe[“<b>File</b> – <b>Name</b>: setup.exe (ServiceHub.VSDetouredHost.exeにリネーム)<br/><b>Signature</b>: 有効なMicrosoftコード署名”] class file_setup_exe file action_execution_proxy[“<b>Action</b> – <b>T1218 システムバイナリプロキシ実行</b><br/>署名済みMicrosoftバイナリをプロキシとして悪意あるコードを実行する。”] class action_execution_proxy action action_masquerade[“<b>Action</b> – <b>T1036.001 無効なコード署名の偽装</b><br/>正規の署名付きバイナリを改名して無害に見せ、検知を回避する。”] class action_masquerade action action_hijack_path[“<b>Action</b> – <b>T1574.008 検索順序ハイジャック</b><br/>setup.exe.configにより検索順序を操作し、攻撃者制御コンポーネントを読み込む。”] class action_hijack_path action action_hijack_appdomain[“<b>Action</b> – <b>T1574.014 AppDomainManagerハイジャック</b><br/>.NETランタイムにTOTPGuard.dllをAppDomainManager経由で読み込ませる。”] class action_hijack_appdomain action file_totpguard[“<b>File</b> – <b>Name</b>: TOTPGuard.dll<br/><b>Purpose</b>: 攻撃ペイロードで使用されるカスタム2FA機能を提供する。”] class file_totpguard file action_ide_extension[“<b>Action</b> – <b>T1176.002 IDE拡張の悪用</b><br/>Visual Studioホストコンポーネントを悪用してペイロードを実行する。”] class action_ide_extension action action_persistence[“<b>Action</b> – <b>T1037.001 スケジュールタスク</b><br/>ログオン時に\”BackupCheck\”タスクを実行するスケジュールタスクを作成する。”] class action_persistence action action_env_keying[“<b>Action</b> – <b>T1480.001 環境キーイング</b><br/>AES暗号化されたペイロードを展開し、条件付き実行のためMZヘッダを暗号化する。”] class action_env_keying action action_virtual_instance[“<b>Action</b> – <b>T1564.006 仮想インスタンス実行</b><br/>正規の2FA GUIを組み込み、正常な操作を装いながら悪意ある活動を隠蔽する。”] class action_virtual_instance action %% Connections action_phishing –>|delivers| action_delivery action_delivery –>|provides| file_malicious_zip file_malicious_zip –>|contains| file_setup_exe file_setup_exe –>|used for| action_execution_proxy action_execution_proxy –>|combined with| action_masquerade action_masquerade –>|enables| action_hijack_path action_hijack_path –>|leads to| action_hijack_appdomain action_hijack_appdomain –>|loads| file_totpguard file_totpguard –>|enables| action_ide_extension action_ide_extension –>|supports| action_persistence action_persistence –>|establishes| action_env_keying action_env_keying –>|facilitates| action_virtual_instance

アタックフロー

シミュレーション実行

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

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

  • 攻撃のストーリーとコマンド:
    攻撃者は正規のVisual Studio setup.exe バイナリのコピーを入手し、その名前を変更せずに偽装するため setup.exe にリネームし、書き込み可能なディレクトリに配置しました。攻撃者は、ペイロードを含む悪意のあるDLL TOTPGuard.dll を作成しました。AppDomainをハイジャックするために、彼らはPDBパス引数に文字列 AppDomainInjection を埋め込みました。その後、攻撃者は以下のコマンドラインで実行可能ファイルを起動しました:

    C:Tempsetup.exe /install /doit /dll "C:TempTOTPGuard.dll" /pdb "C:TempAppDomainInjection.pdb"

    この正確な呼び出しはSigmaルールの中で3つの CommandLine|contains 条件を全て満たし、ProcessCreateイベントでルールが発火します。

  • リグレッションテストスクリプト:

    # -------------------------------------------------
    # Nimbus Manticore検出をトリガーするための回帰スクリプト
    # -------------------------------------------------
    $exePath   = "C:Tempsetup.exe"
    $dllPath   = "C:TempTOTPGuard.dll"
    $pdbPath   = "C:TempAppDomainInjection.pdb"
    
    # ファイルの存在を確認 (テスト用にダミーのプレースホルダーを作成)
    New-Item -ItemType File -Path $exePath -Force | Out-Null
    New-Item -ItemType File -Path $dllPath -Force | Out-Null
    New-Item -ItemType File -Path $pdbPath -Force | Out-Null
    
    # 悪意のあるコマンドラインをビルド
    $arguments = @(
        "/install"
        "/doit"
        "/dll `"$dllPath`""
        "/pdb `"$pdbPath`""
    ) -join " "
    
    Write-Host "悪意のあるsetup.exeを以下の引数で起動:"
    Write-Host $arguments
    
    # プロセスを実行 (ダミーexeは何もせずにすぐに終了)
    Start-Process -FilePath $exePath -ArgumentList $arguments -PassThru | Out-Null
  • クリーンアップコマンド:

    # -------------------------------------------------
    # 回帰テスト用に作成したアーティファクトのクリーンアップ
    # -------------------------------------------------
    $paths = @(
        "C:Tempsetup.exe",
        "C:TempTOTPGuard.dll",
        "C:TempAppDomainInjection.pdb"
    )
    
    foreach ($p in $paths) {
        if (Test-Path $p) {
            Remove-Item -Path $p -Force
            Write-Host "Removed $p"
        }
    }