Chained PHP2Shell Exploitにより25台のサーバーが侵害、米国政府サーバーも含まれる
Chained PHP2Shell Exploit Roots 25 Servers, Including US Government Servers (dreamgroup.com)
要約
Dreamの研究者たちは、PHP2Shellエクスプロイトとカーネル権限昇格エクスプロイトを連鎖させることで、25台のサーバー(米国政府関連システムを含む)を侵害した攻撃キャンペーンを発見しました。この攻撃は、インターネットに公開されたファイアウォール管理インターフェースを悪用し、最終的にActive Directoryへの侵入を試みました。攻撃者はAI支援ツールも利用していた可能性が示唆されています。
全文翻訳
Chained PHP2Shell Exploitにより25台のサーバーが侵害、米国政府サーバーも含まれる
カスタムPHP2ShellエクスプロイトがカーネルLPEと連鎖し、実環境のファイアウォールをroot化
10月25日、Dreamの研究者たちは、中国のAI支援キャンペーンと思われる証拠を発見しました。このキャンペーンは25台のサーバーをroot化しており、その中には米国政府関連環境のシステムも含まれていました。攻撃者はPHP2Shellとカーネル権限昇格エクスプロイトを組み合わせて、公開されていたシステムを侵害しました。
影響を受けたデバイスは、大手ベンダーの特定のバージョンのファイアウォールソフトウェアを実行していました。セキュリティ上の理由から、ベンダー名や影響を受けたバージョンは開示しませんが、ベンダーには通知済みです。
その後、攻撃者はActive Directoryへの攻撃を開始しました。回収された証拠は、認証情報の抽出とディレクトリ列挙を確認しています。
この作戦は、公開された管理インターフェースが、組織のIDインフラストラクチャへの侵入経路となりうることを示しています。政府機関の防御担当者にとって、脆弱性の発見は始まりに過ぎず、真の課題は、脆弱なシステムを特定することから、侵害によって可能になるアクセスを理解し、封じ込めることへと広がります。
以下の調査は、Dreamの自律型サイバーリサーチ製品であるHeroを用いたプロアクティブな脅威ハンティングによって実施されました。
発見
Dreamの研究者たちは、カスタムのPHP2Shellエクスプロイトチェーン(CVE-2026-109618/CVE-2026-109619)とFragnesiaカーネル権限昇格(CVE-2026-46300)を組み合わせた完全な攻撃オペレーションを特定しました。これには、ターゲットリスト、エクスプロイトログ、および約40個のカスタムポストエクスプロイトスクリプトが含まれていました。
これには、米国、日本、台湾、韓国にまたがる25台のサーバーをroot化したキャンペーンの証拠も含まれていました。root化後、攻撃者は3台の特定のサーバーに狙いを定めました。これらは米国政府関連環境にありました。
発見された証拠は、ラボ環境でのエクスプロイト開発から始まり、米国政府組織の内部Active Directoryドメインへの永続的なアクセスに至るオペレーションを明らかにしました。
攻撃におけるAIの使用
攻撃インフラストラクチャにおいて、AI支援ツールの使用を示す証拠もいくつか確認されました。
- Claude Codeがインストールされていました。
- aiscanというAI搭載の攻撃的セキュリティプラットフォームが、中国のLLMであるDeepSeekとKimiで設定されていました。
- 中国の偵察プラットフォームであるFOFAのAPIキーが存在しました。
AIツールが具体的にエクスプロイトやポストエクスプロイトスクリプトの作成に使用されたという直接的な証拠はありませんが、コード構造、コメントのスタイル、および約40個のスクリプト全体の一貫性は、AI支援開発を示唆しています。とはいえ、このオペレーションは完全に自律的な国家主体による攻撃ではないようです。
エクスプロイト:2つの脆弱性を1つのリクエストに連鎖
攻撃者は2つの別々のエクスプロイトを開発し、それらを連鎖させることで、特定のバージョンの大手ベンダー製ファイアウォールソフトウェアを実行している任意のファイアウォール上で、認証なしの単一HTTPリクエストでrootアクセスを達成しました。
PHP2Shell (CVE-2026-109618 / CVE-2026-109619) — リモートコード実行
回収された実装は、既知の公開PHP2Shellエクスプロイトのコピーではなく、カスタムの非公開ビルドです。基本的なコンセプトは同じですが、ターゲットとなるファイアウォールプラットフォームに合わせて独自に開発されたようです。
この脆弱性は、ファイアウォール上のappweb管理サーバーにおけるPHPのsession.upload_progressメカニズムを標的としています。ファイアウォールOSはPHP 8.0.30を使用しており、高いメモリ制限があるため、攻撃のメモリ破損段階が可能になります。
攻撃は4つの段階でオーケストレーションされます。
- A1 — メモリ枯渇 (~383MB): 攻撃者は、巨大なファイル名とセッション進捗データを含む、細工されたマルチパートPOSTリクエストをサーバーに大量に送信します。これによりPHPのメモリアロケータが限界に達し、システムが予測可能なメモリレイアウトになります。
- B1 — 情報漏洩: 2番目のリクエストで、A1の古いセッションID長を偽造し、境界外読み取りを強制します。サーバーの
Set-Cookieレスポンスヘッダーに漏洩したポインタ値が含まれ、攻撃者に実行中のプロセスのlibphp.soのベースアドレスを与えます。 - A2 — 古い参照の設定 (~500MB): 再びメモリ圧力をかけ、
http_session_varsをライブなzend_referenceとして初期化し、その後、mod_data=NULLを残す2回目のOOM(Out Of Memory)をトリガーします。これにより、攻撃者がB2で偽造できる古い参照が作成されます。 - B2 — コード実行: 最後の要求で、解放されたメモリ領域にPHP HashTableエントリを偽造します。偽造されたエントリの
pDestructorコールバックはzif_system(PHPのsystem()関数)を指し、そのデータはシェルコマンド文字列を指します。PHPのクリーンアップハンドラがHashTableをウォークする際に、偽造されたデストラクタを呼び出し、nobodyユーザーとして任意のコマンドを実行します。
Fragnesia (CVE-2026-46300) — カーネル権限昇格
nobodyとしてコード実行権限を得ても、SELinuxがhttpd_tによるシステムファイルの変更を制限しているため、十分ではありません。root化を完了するため、攻撃者は2番目のエクスプロイト、つまりXFRM ESP-in-TCPサブシステムにおけるLinuxカーネルの脆弱性を連鎖させました。
Fragnesiaはページキャッシュ書き込みを使用して/etc/pam.d/suを上書きし、認証ルールをpam_permit.so(すべて許可)に置き換えます。PAMファイルは774バイトしかないため、エクスプロイトはバイト単位のスプライシングバリアントを使用して正確に書き込みます。上書き後、su rootはパスワードなしで成功します。
両方のエクスプロイトは、単一のB2 HTTPリクエストで実行されます。完全なチェーン(認証なしのHTTPS接続から永続的なrootウェブシェルまで)は、15分未満で完了します。
ラボ:大規模なバージョンプロファイリング
このエクスプロイトは、単一の「撃ちっぱなし」ペイロードではありません。zval_ptr_dtorのアドレス、zif_systemのアドレス、HashTable構造のサイズ、および各ステージ中にヒープレイアウトを制御するメモリジオメトリパラメータなど、ファイアウォールOSのバージョンごとに異なる正確なメモリオフセットが必要です。
回収された証拠の中から、11個のJSONバージョンプロファイルファイルが見つかりました。これらはテストされた各ファイアウォールOSバージョンに対応しています。
| ファイアウォールバージョン | リリースブランチ | PHP | プロファイル | メモ |
|---|---|---|---|---|
| 非公開 | 旧ブランチ | 7.4.33 | 2 provisional | PHP 7.4 — nobodyとしてのRCEはラボで確認済みだが、完全なチェーンは調整されていない(ベースビルド+ホットフィックスバリアント1つ) |
| 非公開 | 新規ブランチ | 8.0.30 | 1 calibrated, 8 provisional | ベースプロファイルはラボで完全にテスト済み。他はジオメトリを継承するか、近隣ビルドとオフセットを共有 |
各プロファイルには、そのバージョンのlibphp.soバイナリから抽出された正確なオフセットが含まれています。これには、各ライブラリのSHA256ハッシュ、ELFビルドID、およびラボテストを通じて調整された正確なメモリジオメトリパラメータ(チャンクサイズ、フィルカウント、ドレインカウント、スプレーオフセット)が含まれています。
「calibrated」(調整済み)と「provisional」(暫定)プロファイルの違いは注目に値します。「calibrated」とは、攻撃者がそのバージョンの実行中のVMに対してエクスプロイトをテストし、メモリジオメトリが機能することを確認したことを意味します。「provisional」とは、バイナリからオフセットを計算したが、ライブインスタンスで検証していないことを意味します。
キャンペーンの漏斗:19,000の発見から25の侵害へ
[画像: セットアップ、エクスプロイト、ピボット、ポストエクスプロイトの10ステップにわたるオペレーションタイムライン、10月8日から10月24日まで。]
図1:キャンペーンのオペレーションタイムライン。10月8日のセットアップから、エクスプロイト、内部ネットワークへのピボット、10月24日のポストエクスプロイトまで。
エクスプロイトが準備され、9つの侵害可能なバージョン用のプロファイルが揃ったことで、攻撃者は明確な漏斗に従うターゲティングキャンペーンを開始しました。
ステージ1:グローバル発見(19,000ターゲット)
Shodanに似た中国のインターネット資産検索エンジンであるFOFAを使用し、攻撃者は世界中のターゲットベンダーの約19,000台のインターネット facing ファイアウォールを特定しました。これらは、証明書フィンガープリントとHTTPレスポンスシグネチャを通じて発見可能な、インターネットに公開された管理インターフェースを持つデバイスでした。
ステージ2:バージョンフィンガープリント(5,000台オンライン)
カスタムバージョンスキャナーが、19,000の全ターゲットに対して200スレッド並行で実行され、実際にオンラインのデバイスと実行中のOSバージョンを特定しました。約5,000台がバージョン情報で応答しました。
ステージ3:地理的およびバージョンフィルタリング(240ターゲット)
オンラインの5,000台のデバイスから、攻撃者は米国、日本、台湾、韓国のみに位置するサーバーにフィルタリングしました。次に、エクスプロイトプロファイル(PHP 8.0.30を実行する新しいリリースブランチ)に一致するバージョンにさらにフィルタリングしました。これにより、最終的なターゲットリストとして240台のファイアウォールが得られました。
米国、日本、台湾、韓国は、太平洋戦域における中国の国家連携サイバーオペレーションの主要な戦略的敵対者および情報ターゲットであるため、これは潜在的な国家主権の敵対者による取り組みを示唆しています。
ステージ4:自動エクスプロイト(24台root化)
240台のターゲットは、一度に5台ずつエクスプロイトを実行する自動バッチランナーに投入され、ターゲットあたり1800秒(30分)のタイムアウトが設定されていました。成功した各侵害に対して、バッチは以下を実行しました。
- 完全なPHP2Shell + Fragnesiaチェーンを実行しました。
- ファイアウォールの公開アクセス可能なディレクトリに103バイトのPHP rootウェブシェルを配置しました。
- ウェブシェルを通じて
idを実行してroot化を確認しました。 - ターゲットのホスト名とIPを成功CSVに記録しました。
- 次のターゲットに進みました。
この時点で、24台のファイアウォールが正常にroot化されていました。
ステージ5:トリアージ(2台のファイアウォールを優先)
root化された24台のファイアウォールのうち22台について、攻撃者はウェブシェルの配置以上のことは何も行いませんでした。永続化、トンネル、ポストエクスプロイトツールはありませんでした。サーバーは事実上所有され、駐車された状態であり、攻撃者はいつでもウェブシェルを通じて戻ることができました。
1つのターゲットに関連付けられていると思われる2台のサーバーは、このステージを超えて進みました。両方とも米国政府関連環境に属しているようでした。
ステージ6:ピボット(ファイアウォールからドメインへ移行)
root化された24台のファイアウォールのうち、2台は米国政府関連組織に属していました。最初のファイアウォールから抽出された実行中の設定は、政府関連を示唆する特徴(CAC(Common Access Card)認証、特定の命名プレフィックス、標準化された政府スタイルのアセット命名)を持つ環境を示していました。設定ファイルには、組織の完全な内部ネットワークトポロジーが含まれていました:ドメインコントローラー、中央ファイアウォール管理サーバー、Keycloak SSOサーバー、GitLabインスタンス、VPNゲートウェイ、およびActive Directoryドメイン。
最初のファイアウォールは、10月23日18:14 UTCに自動バッチ中にroot化されました。しかし、その後すぐにクラッシュしました(おそらく約900MBのエクスプロイトトラフィックによる)。そしてオンラインに戻ることはありませんでした。攻撃者は2時間以上にわたり240回の自動プローブで監視し、復旧を待ちましたが、復旧しませんでした。2番目のファイアウォールは、証明書データでターゲット組織との関連が明確に示されていましたが、元のバッチ中にタイムアウトしていました。
最初のファイアウォールから抽出された設定から組織の価値を認識した攻撃者は、別個の専用キャンペーンを作成し、10月24日10:09 UTCにそれを正常にエクスプロイトしました。
数時間以内に、攻撃者は以下を実行しました。
内部ネットワークへの永続的なトンネルを構築しました。
8ポートの逆SSHトンネルが、侵害されたファイアウォールをオペレーターのインフラストラクチャに接続し、以下へのアクセスを転送しました。
- ドメインコントローラー(LDAP、LDAPS、RDP)
- 内部ファイアウォール管理サーバー
- VPNインフラストラクチャ
- 任意の内部ネットワークアクセス用のSOCKS5プロキシ
トンネルはsystemdサービスとrc.localブートフックでラップされており、再起動後も持続し、自動的に再接続します。
トンネル経由で管理サーバーをエクスプロイトしました。 11:35 UTC、2番目のファイアウォールをroot化してから90分未満で、攻撃者は新たに獲得したサーバーアクセスと、同じPHP2Shell + Fragnesiaチェーンを、トンネルからのみ到達可能な3番目の政府サーバー、つまり内部ファイアウォール管理サーバーに対して使用しました。このサーバーは、組織のすべてのファイアウォールを中央管理しています。これを侵害したことで、攻撃者は管理対象のすべてのファイアウォールの設定、認証情報、およびネットワーク設定にアクセスできるようになりました。これにより、侵害されたサーバーの総数は25台になりました。
管理サーバーからAD攻撃キャンペーンを開始しました。 管理サーバーはすでにActive DirectoryへのLDAP接続を持っていたため(VPNユーザー認証に必要)、攻撃者はこれをドメイン攻撃のプラットフォームとして使用しました。
- LDAPサービスアカウントのパスワードを復号化しました。デバイス設定はそれを暗号化して保存しますが、rootアクセスがあれば攻撃者はマスターキーを持っています。それをプレーンテキストで抽出し、それ以降のすべてのスクリプトにハードコードしました。
- LDAPクエリを通じて、ドメイン内のすべてのユーザーとグループを列挙しました。
- 組織をテーマにしたパスワードを使用して、すべてのユーザーアカウントに対してパスワードスプレーを実行しました。ドメインには
lockoutThreshold=0があり、アカウントロックアウトがないため、無制限のパスワードスプレー試行が可能でした。 - バックドアADアカウントの作成を試みました(すべてのOUでユーザーアカウント、およびデフォルトの
MachineAccountQuota設定を悪用したマシンアカウント)。 - 権限昇格パスのためのAD ACLチェーンを分析しました。
- Keycloak IdP設定からのSAML署名キー抽出を試みました。
- Keycloak SSOでの認証バイパスをプローブしました。
攻撃結果(パスワードスプレーが有効な認証情報を見つけたか、バックドアアカウントが作成されたか、SAMLキーが抽出されたか)は、管理サーバーのローカルファイルシステムに残っており、回収された証拠には含まれていませんでした。これは、侵害の完全な範囲を決定できないことを意味します。
[画像: 攻撃者のパス。インターネットからペリメータのファイアウォールへ、トンネルを経由してファイアウォール管理サーバーへ、そしてドメインコントローラーへ。]
図2:攻撃パス。PHP2ShellとFragnesiaがペリメータファイアウォールをroot化し、逆SSHトンネルが内部管理サーバーに到達し、復号化されたLDAPサービスアカウントがActive Directoryを開きます。
管理サーバー → Active Directory
| ステータス | アクティビティ |
|---|---|
| ✓ | LDAPパスワードを設定から復号化 |
| ✓ | 完全なユーザーとグループの列挙 |
| ? | パスワードスプレー(全ユーザー、ロックアウトなし) |
| ? | バックドアユーザー+マシンアカウント作成 |
| ? | SAML署名キー抽出 |
攻撃者が現在持っているもの
回収された証拠から、攻撃者が保有していることを確認できます。
- ブート時に持続する逆トンネルとSOCKSプロキシを介した組織の内部ネットワークへの永続的なリモートアクセス — おそらくまだアクティブです。
- 2台のファイアウォールとファイアウォール管理サーバー上のrootウェブシェル — おそらくまだアクティブです。
- 完全なActive Directoryユーザーとグループのリスト — 組織の完全な青写真です。
- 復号化されたLDAPサービスアカウントの認証情報 — いつでも直接ADクエリを実行できます。
- ファイアウォールファイルシステムから収集された秘密鍵 — HAレプリケーションキー、SSL/TLS証明書キー、およびデバイス認証キーです。
- 完全なネットワークトポロジー — すべてのIP、ホスト名、サブネット、サーバーロール、およびVPNゲートウェイです。
- セキュリティ設定が弱いSAML IdP設定(
validate-idp-certificate: no)です。 - 米国、日本、台湾、韓国にわたる追加の22台の駐車されたファイアウォール — いつでも侵害可能で待機状態です。
パスワードスプレー、バックドアアカウント作成、またはSAMLキー抽出が成功したかどうかは判断できません。これらの攻撃のいずれかが成功した場合、侵害はペリメータファイアウォールから組織のIDインフラストラクチャへとさらに広がります。
帰属の指標
この活動を特定の脅威アクターに帰属させることはありません。しかし、複数の指標が中国のネクサスオペレーションを示唆しています。
| 指標 | 詳細 |
|---|---|
| ターゲット選択 | 米国、日本、台湾、韓国のみ。これらは太平洋における中国の国家連携オペレーションの主要な戦略的情報ターゲットです。 |
| FOFA | ターゲット発見に使用されたインターネット偵察プラットフォームは中国のサービスです。 |
| iox | 回収されたツールの1つとして観測された中国開発のトンネリングユーティリティです。 |
| DeepSeekとKimi | aiscan攻撃的セキュリティプラットフォームで設定されたLLMは中国語モデルです。 |
| UTC+8タイムスタンプ | インフラストラクチャの時計は中国標準時で動作していました。これは、ログのタイムスタンプとターゲットからのHTTP Date:レスポンスヘッダーを比較することで確認されました。 |
| 中国語のプロンプト | aiscanセッションログには、中国語のユーザーメッセージが含まれています。 |
結論
このオペレーションは、機会主義的なエクスプロイトとは一線を画す準備と能力を示しています。攻撃者は脆弱性研究に多大な労力を費やしました — ベンダーのファームウェアを入手し、それを復号化し、PHPライブラリを抽出し、9つの異なるソフトウェアバージョンに対応する正確なメモリプロファイルを構築し、ラボテストを通じてエクスプロイトジオメトリを調整しました。エクスプロイト自体は自動化され効率的でした:240のターゲットが単一のバッチで試行され、バージョン固有のプロファイルが自動的に選択されました。
政府ターゲットに明確に焦点を当てていました。
攻撃者は19,000台のファイアウォールをスキャンし、24台をroot化し、すぐに重要な2台を特定しました。米国政府関連ファイアウォールを侵害してから数時間以内に、内部ネットワークへのトンネルを構築し、同じPHP2Shellエクスプロイトを使用して3番目のサーバーを侵害し、そして完全なActive Directory攻撃キャンペーンを開始しました — これらすべては、インターネットに公開されるべきではなかった管理インターフェースへの単一の認証なしHTTPSリクエストから始まったチェーンを通じて行われました。
root化された他の22台のファイアウォールは、アクティブなウェブシェルを備えたまま駐車されています。米国政府組織への永続的なトンネルはおそらくまだ稼働中です。そして攻撃者は、追加のOSバージョン用のプロファイルを開発する際に再訪できる、フィンガープリント化された19,000のターゲットを持っています。
いつものように、関連するパッチを迅速に展開することを推奨します。この問題に関する詳細については、ベンダーのガイダンスに従ってください。
発見と防御の間のギャップを埋める
政府機関や重要インフラストラクチャにとって、脆弱性の発見は始まりに過ぎません。防御担当者は、公開されているシステムを特定し、攻撃者が何を利用できるかを確立し、足がかりがより広範な侵害になる前に行動する必要があります。
Dreamは、2つの補完的なサイバー防御プラットフォームを通じてその課題に対処します。
- Sphereは国家サイバー防御をスケールアップします。 各国の脅威とインフラストラクチャに合わせて、政府ネットワーク全体での露出をマッピングし、リスクを優先し、攻撃を検出し対応します。
- Heroはサイバーリサーチをスケールアップします。 その自律型リサーチエージェントは、専門家が脅威を調査し、(ソースコードのないソフトウェアを含む)脆弱性を発見・検証し、修正ガイダンスとパッチを開発するのを支援します。これは、本投稿で詳述された調査を実施したDreamの研究者によって使用されたツールです。
これら2つを組み合わせることで、より深い調査と、国家的な攻撃対象領域全体での防御を結びつけます。