ValleyRATマルウェアが求職者を標的にし、Foxit DLLサイドローディングを悪用
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
ValleyRAT リモートアクセス トロイの木馬は、求職者や人事スタッフを狙ったメールの添付ファイルを通じて配布されます。 攻撃者は細工した Foxit PDF Reader 実行ファイルをバンドルし、DLL サイドローディングを利用して悪意のある msimg32.dll をトリガーします。 ペイロードは隠された Python ランタイムを展開し、C2 サーバーから Base64 エンコードされたスクリプトを取得し、ブラウザデータを盗み出しながら自動実行レジストリ値を通じて持続性を確立します。
調査
研究者は悪意のあるアーカイブを分析し、Windows の標準DLL検索順序を介して偽の msimg32.dll をサイドロードするようにリネームされた FoxitPDFReader.exe を発見しました。 バッチ スクリプトは、埋め込まれた Python インタープリター (リネームされた zvchost.exe) を展開し、悪意のある IP アドレスから取得された Base64 エンコードされたローダー スクリプトを実行します。 ネットワーク検査により、ランダムな CN と C2 トラフィックに使用された独自の JA3 フィンガープリントを持つ自己署名証明書が暴露されました。 持続性は、オートラン レジストリ キーを作成することによって維持されます。
緩和策
推奨される防御策には、厳格なメールの添付ファイルスキャンとPDFファイルを偽装した実行可能ファイルのブロックが含まれます。 許可リストを適用して権限のないDLLサイドローディングや信頼されていないバイナリの実行を防ぎます。 オートラン レジストリ エントリの作成を監視し、既知のC2 IPアドレスをブロックします。 エンドポイント保護シグネチャを最新に保ち、求職者をテーマにしたフィッシングに焦点を当てたセキュリティ意識トレーニングを提供します。
対応策
特にアンダースコアパターンが深いパスから FoxitPDFReader.exe または msimg32.dll が実行された場合にアラートを生成します。 -c パラメーター と Base64 コマンドペイロードを使用して zvchost.exe からのプロセス活動を相関させます。 196.251.86.145 (および関連するインフラストラクチャ) へのアウトバウンド接続を検出し、独自の自己署名証明書を使用したTLSセッションを確認します。 HKCUSoftwareMicrosoftWindowsCurrentVersionRun の下のレジストリの変更を調べ、権限のないオートランエントリを確認します。
攻撃フロー
検出方法
ValleyRAT キャンペーン C&C とペイロード配信検出 [Windows ネットワーク接続]
表示
Foxit PDF Reader を使用した ValleyRAT キャンペーン [Windowsプロセス作成]
表示
検出対象 IOCs (SourceIP): Malware ValleyRAT キャンペーンが求職者を狙い、Foxit PDF Reader を悪用した DLL サイドローディング
表示
検出対象 IOCs (HashSha256): Malware ValleyRAT キャンペーンが求職者を狙い、Foxit PDF Reader を悪用した DLL サイドローディング
表示
検出対象 IOCs (HashSha1): Malware ValleyRAT キャンペーンが求職者を狙い、Foxit PDF Reader を悪用した DLL サイドローディング
表示
シミュレーション実行
前提条件: テレメトリ & ベースラインプレフライトチェックが合格している必要があります。
根拠: このセクションでは、検出ルールをトリガーするために設計された敵対者の技術 (TTP) の正確な実行を詳述しています。 コマンドと説明は、特定されたTTPを直接反映するものでなければならず、検出ロジックによって予想される正確なテレメトリを生成することを目指しています。 抽象的または無関係な例は誤診を引き起こします。
-
攻撃の説明 & コマンド:
-
初期侵害: 被害者は、メールで配信された悪意のある採用関係のPDFを開きます。 PDFには悪意のあるDLL(
valley.dll)をPDFリーダー実行ファイルと同じディレクトリにドロップするJavaScript (T1059.006) が含まれています。 -
DLL サイドローディング: 攻撃者は、Foxit Readerの補助DLLを読み込む能力を利用します。
valley.dllを リネームされた Foxit実行ファイル (zvchost.exe) の横に置くことで、Foxitは起動時に意図せずに悪意のあるDLLを読み込み、ValleyRATを実行します。 -
プロセス作成のトリガー: リネームされた実行ファイル (
zvchost.exe) が起動され、イメージパスがzvchost.exeで終わるプロセス作成イベントが生成されます。 これはSigmaルールのImage|endswith条件と一致し、アラートが発生します。
-
-
回帰テストスクリプト: 次のPowerShellスクリプトは、管理されたラボ環境で上記の手順を再現します。
# ------------------------------------------------------------ # ValleyRAT サイドローディング検出テスト用回帰スクリプト # ------------------------------------------------------------ # 1. 一時的な作業ディレクトリをセットアップ $workDir = "$env:TEMPValleyRAT_Test" New-Item -Path $workDir -ItemType Directory -Force | Out-Null # 2. 正規の Foxit Reader 実行ファイルをコピー (PDFリーダーをシミュレート) $foxitSrc = "C:Program FilesFoxit SoftwareFoxit ReaderFoxitReader.exe" $foxitRenamed = Join-Path $workDir "zvchost.exe" Copy-Item -Path $foxitSrc -Destination $foxitRenamed -Force # 3. ダミーの悪意のあるDLLを作成 (実際にはこれが ValleyRAT ペイロード) $dllPath = Join-Path $workDir "valley.dll" Set-Content -Path $dllPath -Value ([byte[]](0x4D,0x5A)) -Encoding Byte # 最小限の MZ ヘッダー # 4. リネームされた Foxit 実行ファイルを起動 (これが DLL オサイドローディングをトリガー) Write-Host "[*] サイドローディングをトリガーするためにリネームされた Foxit 実行ファイルを起動しています..." $proc = Start-Process -FilePath $foxitRenamed -PassThru -WindowStyle Hidden # 5. プロセス作成がログに記録されることを確実にするために短時間待機 Start-Sleep -Seconds 5 # 6. 検証のためにプロセス情報を出力 Write-Host "プロセス ID: $($proc.Id)" Write-Host "実行可能ファイルパス: $($proc.Path)" # 7. クリーンアップ (オプション - 別途クリーンアップセクション参照) # Remove-Item -Recurse -Force $workDir -
クリーンアップコマンド: テスト後に実行してアーティファクトを削除し、側載されたDLLが残留しないようにします。
# テストディレクトリをクリーンアップし、不正プロセスを終了 $workDir = "$env:TEMPValleyRAT_Test" # 実行中の場合、起動されたプロセスを終了 Get-Process -Name "zvchost" -ErrorAction SilentlyContinue | Stop-Process -Force # テストアーティファクトを削除 Remove-Item -Path $workDir -Recurse -Force -ErrorAction SilentlyContinue Write-Host "[+] クリーンアップが完了しました。"