macOSバックドア「Phexia」、ClickFixで感染させPolygon経由でC2を切り替え
macOSバックドア「Phexia」、ClickFixで感染させPolygon経由でC2を切り替え
複数の攻撃者に販売されているモジュール型macOSバックドア「Phexia」が、ClickFixを利用した攻撃で拡散している。WithSecureが2026年11月4日に公開した分析によると、攻撃者は5月からPolygonのスマートコントラクトを利用する仕組みを試し、6月以降に観測されたビルドでは、コマンド&コントロール(C2)サーバーのアドレスを取得する「EtherHiding」方式を使用していた。この仕組みにより、攻撃者は感染端末上のローダーを変更せずに、スマートコントラクトに登録されたC2アドレスを切り替えられる。感染後はログインパスワードやブラウザーに保存された認証情報などを収集し、一部の感染端末には暗号資産マイナーも配布していた。
攻撃には、正規サイトに似せたタイポスクワッティングドメインや、ショッピングサイトの商品一覧、偽の認証ページなどが利用されていた。ただし、WithSecureは観測した感染事例の多くについて、最初の誘導経路を特定できていない。偽ページでは、利用者に確認作業や問題の解決が必要だと思わせ、クリップボードにコピーされたコマンドをmacOSの「ターミナル」で実行するよう促していた。
実行されたコマンドは、update.sh、script.sh、clear-cache.shなどの名前を持つシェルスクリプトを取得し、bashに渡す仕組みだった。WithSecureは7月6日の感染事例で、二重スラッシュを含む配布URLも確認している。
取得されたスクリプトは、macOS標準のosascriptを使ってAppleScriptのドロッパーを実行する。ドロッパーはユーザーのLibraryディレクトリにLaunchAgentを作成し、永続化を図る。観測された設定にはKeepAliveが含まれ、初期のビルドではRunAtLoadも使用されていた。plistファイルにはBase64でエンコードされたローダーが格納され、起動時にデコードされたコードがosascriptへ渡される。
6月から9月中旬までに確認されたLaunchAgentのラベルは、com.に16文字の英小文字が続く形式だった。10月のビルドでは、com.Apple.に16文字の英小文字が続く形式へ変更された。大文字のAppleを含む名称は、Appleの正規コンポーネントに見せかけるためのものとみられるが、正規の名前空間とは異なるため、識別の手掛かりとなる。
ローダーにはC2サーバーのアドレスが直接埋め込まれていない。代わりに4つの公開RPCエンドポイントを順番に利用し、Polygon上のスマートコントラクト0xA3a603F8a454a9c905b4c579Bb72628F7C15C2A0へeth_callを送信する。続いて、getServerURL()に対応するセレクター0x2686eceaを使って登録されたホスト名を取得・デコードし、そのホストからbmoduleを要求して、取得したコードをosascriptで実行する。
WithSecureによると、攻撃者はスマートコントラクトのsetServerURL()を呼び出し、C2アドレスを繰り返し変更していた。Blockscoutには6月から7月にかけて複数回変更された記録が残っている。10月27日に確認された再感染事例では、2つ目のコントラクト0x3445fB8Df432320251f611e691fe6B0C6664C960が使用され、dhsbdgs.icuというドメインが取得されていた。
ただし、スマートコントラクトの登録値が変更されても、既存の感染端末が直ちに新しいC2へ接続するとは限らない。WithSecureは、コントラクトの値が変更されてから約1カ月後の7月23日にも、旧C2ドメインhf98x4d.siteへの接続試行を観測した。ローダーの再起動など、C2アドレスを再取得する処理が実行されるまで、以前の接続先が使用され続けるとみられる。
また、10月27日の再感染事例では、以前のLaunchAgentが削除されず、新しいLaunchAgentと並行して動作していた。旧C2からのタスクが20分以上にわたって実行されたことも確認されている。このため、スマートコントラクトに現在登録されているC2アドレスだけを調査しても、過去の接続先を利用し続ける感染を見逃すおそれがある。
Phexiaは、macOSの「システム設定」を装った偽のダイアログを表示し、利用者にログインパスワードの入力を求める。入力されたパスワードはdscl . authonlyで検証され、正しい場合にはユーザーのホームディレクトリにある隠しファイル.passphraseへ平文で保存される。
パスワードがコマンドライン引数として渡されるため、プロセスの実行履歴やセキュリティ製品のログにも平文で記録される可能性がある。WithSecureは、感染直後の短時間でパスワードが取得された事例に加え、最初の感染から約22時間後に取得処理が始まり、その後も数日間にわたって繰り返された事例を確認している。
情報収集モジュールは、Chrome、Edge、Brave、Opera、Vivaldiなどのブラウザーで使用されるSafe Storageの認証情報を取得するほか、Cookie、閲覧履歴、保存されたログイン情報を含むデータベースを収集する。さらに、LastPassやNordPassのブラウザー拡張機能の保存領域、macOSのログインキーチェーン、SafariのCookieも収集対象となっていた。
収集されたファイルはdittoで圧縮され、HTTPSを通じてC2サーバーへアップロードされる。別のコピーは、暗号化されていないHTTP通信で62.60.226.50へ送信されていた。
公開された調査によると、このIPアドレスではWebSocketを利用するリモートシェルのエージェントや、暗号資産ウォレットのシードフレーズを狙う偽のLedger Walletアプリも確認されている。ただし、Phexiaの情報収集モジュールによって暗号資産ウォレットの内容が実際に取得されたかどうかは、今回の分析では確認されていない。
WithSecureは、PhexiaのC2から暗号資産マイナー「XMRig 6.26.0」を配布するタスクコマンドも確認した。コマンドは実行されるたびに既存のマイニングプロセスを終了し、マイナーを再インストールする仕組みだった。攻撃者は10月20日から26日にかけて、マイニングプールをHashVaultからSupportXMRへ変更し、2つのウォレットを使用していた。
また、10月20日以降に観測されたビルドでは、インストール済みソフトウェアの一覧をC2へアップロードする機能も追加されていた。WithSecureは、この情報が攻撃者による後続タスクの選択に利用された可能性について、中程度の確信度で評価している。ただし、具体的にどのような判断に使用されたかは確認されていない。
Phexiaは、osascript、bash、curl、launchdなどmacOS標準の機能を悪用して動作する。また、ビルドごとに難読化方式が異なるため、ファイルハッシュを中心とした検出だけでは感染を十分に把握できない可能性がある。
調査の手掛かりとしては、ターミナルから実行され、bashに渡されるcurlコマンドや、LaunchAgentから起動したosascriptによるBase64データのデコード処理が挙げられる。com.またはcom.Apple.で始まる不審なLaunchAgentのラベルも確認対象となる。ただし、ラベルの形式だけで悪意の有無を断定することはできない。
さらに、ブラウザー以外のプロセスによるPolygonのJSON-RPC通信、平文パスワードを引数に含むdscl . authonlyの実行、ユーザーのホームディレクトリにおける.passphraseファイルの作成なども重要な調査対象となる。
感染が確認された場合は、新旧両方の形式を含む悪意あるLaunchAgentを調査し、関連するジョブを停止したうえで削除する必要がある。osascriptのプロセスを終了するだけでは、launchdによって再起動される可能性がある。また、再感染によって複数のローダーが並行して動作する場合もあるため、過去に使用されたC2ドメインも調査対象から除外すべきではない。
今回の分析では、Phexiaがログインパスワードやブラウザーの認証情報、セッションCookie、キーチェーンなどを収集することが確認された。一方、暗号資産ウォレットについては関連ファイルの探索や、シードフレーズを狙う別の偽アプリの存在が報告されているものの、ウォレット内部の情報が実際に窃取された範囲は明らかになっていない。

