Check PointのPHP2Shell脆弱性を悪用、ハッカーがroot権限を奪取しワイパーマルウェアを展開

攻撃者は、Check PointのMobile Accessポータルに対するPHP2Shellの悪用と、DynamicCLIの権限昇格の脆弱性を連鎖させ、root権限を奪取しました。そのうえで永続的なバックドアを設置し、破壊型マルウェアを展開しています。

攻撃活動は2026年10月30日に始まり、イスラエルの組織が標的となりました。一部の被害者では破壊活動も発生しています。11月2日には第2波が発生し、複数の国や業種に拡大しましたが、破壊行為は確認されていません。

Check Pointは、約24の顧客に対する悪用を確認したと報告しています。調査対象となった侵入では、攻撃者はゲートウェイを侵害し、内部偵察とSSHによるラテラルムーブメントを行ったうえで、VMwareインフラに対してLinux用ワイパーを実行しました。

初期アクセスには、CVE-2026-109618およびCVE-2026-109619に関連するPHP2Shellの活動が関わっていました。調査により、/opt/CPcvpn-R81.20/tmp/配下でupload_progress_pwnを含むPHPセッションファイルが見つかりました。あわせて、ApacheとPHPのワーカーで数百件のセグメンテーション違反も確認されています。

続いて攻撃者は、CVSS 7.8と評価されるローカル権限昇格の脆弱性CVE-2026-123039を悪用しました。Gaiaのroot権限で動作するdynamic_serverは、/tmp/dynamic_socket経由でコマンドを受け付けます。このソケットは誰でも書き込み可能なパーミッションで作成されており、接続元プロセスの認証も行われていませんでした。

別のハイパーバイザー攻撃で報告されたVMXサンドボックスエスケープとは異なり、今回の権限昇格は、公開されたIPCコマンドインターフェースを通じて、ゲートウェイのローカルサービスアカウントの境界を越えるものです。この脆弱性の悪用には、すでにローカルで実行できる状態であることが必要で、認証なしのネットワークアクセスだけでは成立しません。

root権限を得た攻撃者は、ポータルのテンプレートディレクトリ内にzz*.tplというPHPウェブシェルを設置しました。機能を拡張したインプラントは、ハードコードされたキーzz2026を必要とします。コマンド実行とPHPコードの評価に対応し、/tmp/.up.tpl経由でのアップロードも受け付けます。

その後、攻撃者はTSGAを/tmp/CPconfigdaemonとして展開しました。root権限で起動すると、TSGAはslot_CPconfigdaemonとしてブート時の永続化領域へ自らを移動させます。

内蔵されたTSProxyコンポーネントは/lib/libcpfwcommon.soを設置し、アプライアンス内のプロセスでネットワーク関数を傍受します。

このゲートウェイを拠点とする足がかりは、ESXi上に常駐するコマンド&コントロールとは異なります。侵害されたアプライアンス上ですでに動作しているサービスを利用し、秘匿された通信経路を確保します。通常の接続は引き続き動作し、その傍らで特別な目印を付けた攻撃者の通信が流れていました。

攻撃者はスキャナー「gogo」で内部システムを探索したうえで、サービスアカウントvpxuserを使い、SSHでESXiホストに認証しました。

続いて、Linux ELF形式のワイパーdestroy_v6を配置して実行しました。このワイパーは、指定されたディレクトリを再帰的に処理します。デフォルトでは削除前の上書き回数が0回で、高速モードでは上書きを省略し、除外設定を使えば指定したサブツリーを保持できます。

Lotus Wiperによる物理ドライブの破壊とは異なり、このペイロードはディレクトリの走査とファイルの削除によって動作します。身代金の交渉を拒否する旨を記したDREAM_ANNEXATION.txtというメモも残します。

TSGAとTSProxyは、これまで中国と関係のあるUNC5221に関連付けられてきたPhiliKitと、特徴的なコード、認証情報、暗号関連の素材、設定を共有しています。ただし、ツールの重複だけでは、今回の攻撃を誰が指揮したのかは特定できません。

Check Pointは、初期アクセスブローカーの関与、偽旗作戦、別の目的を隠すための破壊行為など、複数の可能性を検討しました。

防御側は、/var/log/dynamicCli.logを調べ、想定されるClishラッパーを経由していないコマンドや、不審な#return_value#リクエストがないか確認する必要があります。Check Pointは、R82.20 Take 14、R82.10 Take 52、R82 Take 132、R81.20 Take 174で修正が提供されているとしています。

管理者は、/tmp/dynamic_socketのパーミッションが0660、所有者がroot:configになっていることを確認してください。dynamic_serverを一時的に停止すれば、この権限昇格の経路は遮断できます。ただし、これに依存するDynamic CLIのコマンドは使えなくなります。

注記: IPアドレスやドメインは、誤って名前解決されたりハイパーリンクになったりするのを防ぐため、意図的にデファング処理(例: [.])しています。元に戻す際は、MISP、VirusTotal、お使いのSIEMなど、管理された脅威インテリジェンスプラットフォーム内に限って行ってください。

16,000以上のSOCチームがANY.RUNを活用し、脅威調査を効率化して手作業を削減しています。チームで試してみる

翻訳元: https://cyberpress.org/check-point-php2shell-flaws/

本記事は cyberpress.org の記事を翻訳・要約したものです。