JavaScript駆動のPureLogsバリアントを展開して機密データを盗むフィッシングキャンペーン
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
フィッシングキャンペーンでは、悪意のあるJavaScript添付ファイルを使用して、PowerShellスクリプトを復号化して実行します。その後、このスクリプトはプロセス・ホローイングを実行して、信頼された MsBuild.exe プロセスに.NETダウンローダを注入します。このダウンローダはコマンド・アンド・コントロールサーバーへの通信を行い、資格情報、ブラウザデータ、仮想通貨ウォレット情報、およびその他の機密資産を盗むPureLogsプラグインを取得します。この攻撃チェーンは非常に回避的で、レイヤー化された暗号化とファイルレス実行技術を利用して検出を避けています。
調査
FortiGuard Labsは、電子メールの添付ファイル、難読化されたJavaScript、ドロップされたPowerShellスクリプト、攻撃の後で使用されるメモリ内の.NETコンポーネントを調査しました。解析中、研究者はホロー化された MsBuild.exe プロセスの作成、ダウンローダDLLの読み込み、およびブラウザ、Discord、暗号通貨ウォレット、その他のアプリケーションからデータを収集するPureLogsプラグインの実行を観察しました。捕獲されたネットワークトラフィックは、単一のコマンド・アンド・コントロールサーバーとの暗号化されたGETおよびPOST通信を示しました。
緩和策
このレポートでは、強力なメールフィルタリングを実施し、可能な限りスクリプトの実行を制限し、PowerShellの不審な活動とプロセス・ホローイングを監視することを推奨しています。 MsBuild.exe. それはまた、メモリ内の.NETアセンブリと分段されたマルウェアの配信に関連する異常なアウトバウンドネットワーク動作を識別できるエンドポイント検出および応答ツールの使用を推奨します。
応答
この活動が検出された場合、影響を受けたエンドポイントを隔離し、悪意のある MsBuild.exe プロセスを終了し、コマンド・アンド・コントロールIPアドレスをブロックします。その後、研究者はフォレンジック分析を行い、資格情報や機密データが盗まれたかどうかを判断し、必要に応じて公開されているアカウントをリセットする必要があります。検出コンテンツもPowerShellの乱用、プロセスホローイング、PureLogs関連の行動をカバーするように更新する必要があります。
攻撃の流れ
この部分はまだ更新中です。通知を受け取るためにサインアップしてください。
通知する検出
非表示のPowerShellコマンドラインによる実行の可能性 (cmdline 経由)
表示
疑わしいディレクトリでのバイパス実行ポリシーを使用したPowerShellの実行 (cmdline 経由)
表示
LOLBAS WScript / CScript (process_creation 経由)
表示
検出するためのIOCs (HashSha256): FortiGuard Labsの脅威調査フィッシングキャンペーンがJavaScript駆動のPureLogs変種を展開して機密データを盗む
表示
検出するためのIOCs (SourceIP): FortiGuard Labsの脅威調査フィッシングキャンペーンがJavaScript駆動のPureLogs変種を展開して機密データを盗む
表示
検出するためのIOCs (DestinationIP): FortiGuard Labsの脅威調査フィッシングキャンペーンがJavaScript駆動のPureLogs変種を展開して機密データを盗む
表示
ファイルレスPowerShellスクリプトの実行と.NETアセンブリによるプロセスホローイング [Windows Powershell]
表示
JavaScript駆動のPureLogs変種展開の検出はPowerShellおよびプロセスホローイングを介して [Windowsプロセス作成]
表示
シミュレーション実行
前提条件: テレメトリー&ベースラインプレフライトチェックが通過していること。
理論的裏付け: このセクションでは、発見ルールをトリガーするために設計された対敵手法(TTP)の正確な実行を詳述しています。 コマンドとナラティブは、特定されたTTPを直接反映し、検出ロジックで期待される正確なテレメトリを生成することを目指す必要があります。
-
攻撃の物語&コマンド:
- ステージ1 – JavaScriptドロップ: 攻撃者はフィッシングメールを通じて悪意のある
.jsペイロード(エンコード済み)を配信します。このペイロードは%TEMP%に保存され、実行されますwscript.exe. - ステージ2 – PowerShellランチャー: JavaScriptはフラグ
-ExecutionPolicy Bypass -NoProfile -WindowStyle Hidden -Fileを使用して、プロセスホローイングを実行する2次スクリプトを指し示してPowerShellを起動します。 - ステージ3 – MsBuildによるプロセスホローイング: PowerShellスクリプトは
MsBuild.exeを一時停止モードで生成し、悪意のあるペイロード(ダミーDLL)を注入してプロセスを再開し、正当なビルドツールとして見せかけつつ実行を達成します。
- ステージ1 – JavaScriptドロップ: 攻撃者はフィッシングメールを通じて悪意のある
-
回帰テストスクリプト: (PowerShell – 通常のユーザーとして実行、外部ファイルは不要)
# -------------------------------------------------------------- # PureLogs変種シミュレーション – JavaScript → PowerShell → MsBuild # -------------------------------------------------------------- # 1. 悪意のあるJavaScriptを作成(難読化を模倣してbase64エンコード) $jsPayload = @" // 悪意のあるJS:バイパスフラグを使用してPowerShellを起動 var shell = new ActiveXObject("WScript.Shell"); var psCmd = "powershell.exe -ExecutionPolicy Bypass -NoProfile -WindowStyle Hidden -File ""%TEMP%launch.ps1"""; shell.Run(psCmd, 0, false); "@ $jsPath = "$env:TEMPmalicious.js" $jsPayload | Set-Content -Path $jsPath -Encoding ASCII # 2. MsBuildでプロセスホローイングを実行するPowerShellペイロードを作成 $psPayload = @" # 一時停止モードでMsBuildを起動 $msbuildPath = (Get-Command MsBuild.exe).Source $si = New-Object System.Diagnostics.ProcessStartInfo $si.FileName = $msbuildPath $si.UseShellExecute = $false $si.CreateNoWindow = $true $si.Arguments = "/t:Compile" $proc = [System.Diagnostics.Process]::Start($si) Start-Sleep -Milliseconds 500 # 作成のために時間を与える # プロセスのメモリスペースにダミーファイルを書き込むことでホローイングをシミュレート # (実際のホローイングはWindows APIコールを使用;ここではプロセスを生存させたまま保持) Write-Host "プロセスホローイングシミュレーション – MsBuild実行中" "@ $psPath = "$env:TEMPlaunch.ps1" $psPayload | Set-Content -Path $psPath -Encoding ASCII # 3. JavaScriptを実行 – これはルールが監視しているエントリーポイントです wscript.exe $jsPath # ログが生成されることを確実にするために短時間待機 Start-Sleep -Seconds 10 -
クリーンアップコマンド:
# シミュレーションによって開始された残るMsBuildプロセスを終了 Get-Process MsBuild -ErrorAction SilentlyContinue | Stop-Process -Force # アーティファクトを削除 Remove-Item "$env:TEMPmalicious.js" -ErrorAction SilentlyContinue Remove-Item "$env:TEMPlaunch.ps1" -ErrorAction SilentlyContinue