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 の下のレジストリの変更を調べ、権限のないオートランエントリを確認します。
graph TB %% クラス定義セクション classDef action fill:#99ccff classDef tool fill:#cccccc classDef malware fill:#ff9999 %% ノード定義 action_phishing[“<b>アクション</b> – <b>T1566.001 フィッシング: スピアフィッシング添付ファイル</b><br />被害者が偽装された FoxitPDFReader.exe を含む悪意のある zip アーカイブを受信する。”] class action_phishing action file_archive[“<b>ツール</b> – 悪意のあるアーカイブ<br />ペイロードを配信する圧縮ファイル Overview_of_Work_Expectations.zip。”] class file_archive tool exe_foxit[“<b>ツール</b> – FoxitPDFReader.exe(リネーム済み)<br />ユーザーがアーカイブを開いた後に実行される。”] class exe_foxit tool dll_msimg32[“<b>ツール</b> – msimg32.dll(悪意のある DLL)<br />DLL サイドローディングを達成するため、同一ディレクトリに配置される。”] class dll_msimg32 tool exec_hijack[“<b>アクション</b> – <b>T1574.008 実行フローハイジャック</b><br />検索順序ハイジャックにより悪意のある DLL がロードされる。”] class exec_hijack action script_bat[“<b>ツール</b> – document.bat<br />ハイジャックされた実行ファイルによって起動されるバッチスクリプト。”] class script_bat tool docx_7zip[“<b>ツール</b> – document.docx(7-Zip アーカイブ)<br />埋め込まれた Python 実行環境を含む。”] class docx_7zip tool exe_zvchost[“<b>ツール</b> – zvchost.exe(リネームされた python.exe)<br />Base64 エンコードされたローダースクリプトを実行する。”] class exe_zvchost tool payload_base64[“<b>ツール</b> – Base64 ペイロード<br />最終的な悪意のあるコンポーネントをデコードしてステージングする。”] class payload_base64 tool registry_run_key[“<b>ツール</b> – レジストリ実行キー<br />永続化を達成するため Active Setup に作成される。”] class registry_run_key tool persistence_active_setup[“<b>アクション</b> – <b>T1547.014 起動またはログオン時の自動実行: Active Setup</b><br />各ログオン時にペイロードが実行されることを保証する。”] class persistence_active_setup action defense_obfuscation[“<b>アクション</b> – <b>T1027 ファイルまたは情報の難読化</b><br />深いアンダースコア付きディレクトリに隠蔽されたファイルおよび Base64 エンコードを使用する。”] class defense_obfuscation action credential_browser[“<b>アクション</b> – <b>T1555.003 Web ブラウザからの認証情報</b><br />ValleyRAT が保存されたユーザー名、パスワード、クッキーを抽出する。”] class credential_browser action malware_valleyrat[“<b>マルウェア</b> – ValleyRAT<br />TLS ベースの C2 チャネルを確立するリモートアクセス型トロイの木馬。”] class malware_valleyrat malware c2_server[“<b>ツール</b> – C2 サーバー 196.251.86.145<br />RAT から送信される暗号化トラフィックを受信する。”] class c2_server tool malware_component[“<b>マルウェア</b> – 追加コンポーネント<br />被害者ホスト上で実行される取得済みバイナリ。”] class malware_component malware %% フローを示す接続 action_phishing u002du002d>|配信する| file_archive file_archive u002du002d>|含む| exe_foxit exe_foxit u002du002d>|読み込む| dll_msimg32 dll_msimg32 u002du002d>|有効化する| exec_hijack exec_hijack u002du002d>|トリガーする| script_bat script_bat u002du002d>|抽出する| docx_7zip docx_7zip u002du002d>|提供する| exe_zvchost exe_zvchost u002du002d>|実行する| payload_base64 payload_base64 u002du002d>|作成する| registry_run_key registry_run_key u002du002d>|保証する| persistence_active_setup payload_base64 u002du002d>|実行する| defense_obfuscation payload_base64 u002du002d>|窃取する| credential_browser credential_browser u002du002d>|供給する| malware_valleyrat malware_valleyrat u002du002d>|確立する| c2_server malware_valleyrat u002du002d>|取得する| malware_component
攻撃フロー
検出方法
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 "[+] クリーンアップが完了しました。"