事件拆解

PHP2Shell 打進歐洲政府機構:AI 協助攻擊、北韓掃描、兩小時內竊密

Palo Alto Networks Unit 42 揭露歐洲政府機構在 PHP2Shell 漏洞利用後兩小時內遭竊取密碼雜湊與 MFA 密鑰,並建立 NTLM relay 通道嘗試提權為 Domain Admin。攻擊者使用的指令與輸出格式顯示「agentic AI」特徵。CYFIRMA 另揭露疑似北韓 Lazarus 組織透過 21 個被入侵節點對全球 216 台未修補主機進行低流量、輪替式掃描,目標涵蓋政府、金融、機場與線上交易平台。

30 秒看懂
  • Palo Alto Networks Unit 42 於 2026 年 10 月 25 日揭露:威脅行為者利用 PHP2Shell(CVE-2026-109618/109619)攻擊歐洲政府機構,從初始利用到竊取密碼雜湊與 MFA 密鑰只花兩小時,並建立 NTLM relay 通道進 Active Directory 嘗試提權為 Domain Admin。攻擊者使用的指令被包在「==SHELLUSER==」與「==PASSWD==」等分隔符號中,Unit 42 判斷這是「agentic AI」(代理式 AI)的行為標記,用來產生機器可解析的輸出供 AI 模型讀取。
  • CYFIRMA 揭露疑似北韓 Lazarus 組織透過 21 個被入侵節點,對全球 216 台未修補或僅部分緩解的主機進行低流量、輪替式掃描。目標分布於美國、日本、南韓、泰國、印尼、澳洲、台灣、印度、新加坡、阿聯、沙烏地與歐盟,涵蓋政府、金融機構、物流、機場航空、製造業與線上交易平台。行動透過封閉的 I2P 頻道協調,使用北韓方言(문화어)與 Lazarus 過去使用的 C2 基礎設施。
  • ReliaQuest 在實驗室重現 CVE-2026-109618,識別出可協助防守方偵測利用的日誌序列:POST 請求回 500 錯誤、PHP 回報記憶體耗盡與 heap corruption、處理該請求的 Apache worker 崩潰。Cloudflare 表示公開揭露後偵測到數百萬次利用嘗試。Bitsight 掃描顯示全球約 3,700 萬個面向網際網路的系統跑 PHP 或相關軟體,主要曝險在美國、德國、法國、荷蘭與日本。

發生了什麼

PHP2Shell 漏洞修補釋出後,全球掃描與利用立即開始。本站已在 2026-10-21 的拆解 與 2026-10-25 數發部長貼文拆解 中整理過修補前外洩與修補釋出的時間軸。這篇聚焦在「修補之後,攻擊者做了什麼」。

2026 年 10 月 25 日,Palo Alto Networks Unit 42 與威脅情報公司 CYFIRMA 分別揭露兩起進行中的 PHP2Shell 野外利用行動:

  1. 歐洲政府機構被入侵(國家未公開):攻擊者在初始利用後兩小時內竊取密碼雜湊與多因素驗證(MFA)密鑰,建立 NTLM relay 通道進 Active Directory,嘗試提權為 Domain Admin。攻擊者使用的指令與輸出格式顯示「agentic AI」(代理式 AI)特徵。

  2. 疑似北韓 Lazarus 組織全球掃描行動:透過 21 個被入侵節點對全球 216 台未修補或僅部分緩解的主機進行低流量、輪替式掃描。目標涵蓋美國、日本、南韓、台灣等 12 個國家/地區的政府、金融機構、機場、線上交易平台。行動透過封閉的 I2P 頻道協調,使用北韓方言(문화어, Munhwaŏ)溝通。

來源:本文整理自 The Hacker News 於 2026 年 10 月 25 日發布的報導,原始情報來自 Palo Alto Networks Unit 42、CYFIRMA、Defused Cyber 與 ReliaQuest。原文連結

歐洲政府機構:兩小時內從 RCE 到 Domain Admin 嘗試

Unit 42 揭露的案例時間軸很緊湊:

初始利用 → 利用 PHP2Shell 取得遠端程式碼執行

↓ 兩小時內

竊取認證資料 → 存取密碼雜湊與 MFA 密鑰
建立 NTLM relay 通道 → 進入 Active Directory
嘗試提權 → 目標:Domain Admin

AI 協助攻擊的行為標記

Unit 42 觀察到攻擊者對被入侵端點的列舉行為,指令與行為標記顯示這是「agentic attacker」(代理式攻擊者)的工作。

攻擊者執行的指令包括:

  • 偵察認證資料庫:使用竊取的憑證,針對密碼雜湊與雙因素驗證(2FA)密鑰
  • Active Directory 偵察:透過 curl-based 匿名 LDAP 查詢到 domain controller(DC),尋找管理員帳號
  • 主機偵察:搜尋 DNS/AD 整合、內部主機、特權群組與互動式使用者

關鍵的 AI 標記在指令輸出的格式:

「每批指令都被包在 section header 分隔符號中,例如 ==SHELLUSER== 與 ==PASSWD==。這些分隔符號產生的是機器可解析的輸出,供 AI 模型讀取。」

這不是人類攻擊者手工複製貼上的格式。這是設計給程式解析的——而 Unit 42 判斷,這個程式是 AI 模型。

疑似北韓 Lazarus 組織:21 節點掃描 216 目標

CYFIRMA 揭露的是一場「低調但精準」的掃描行動:

  • 掃描來源:21 個被入侵節點(作為跳板)
  • 目標數量:216 台未修補或僅部分緩解的主機
  • 目標分布:美國、日本、南韓、泰國、印尼、澳洲、台灣、印度、新加坡、阿聯、沙烏地、歐盟
  • 目標產業:政府、金融機構、物流、機場與航空、製造業、線上交易平台

低流量、輪替式掃描

CYFIRMA CEO Kumar Ritesh 向 The Hacker News 強調:

「掃描是刻意的低流量與節奏化。節點被輪替使用,一旦被阻擋或觸發速率限制就立即放棄,所以基於閾值的告警不太可能抓到它。」

這不是大規模的「全網掃描」,而是針對篩選過的目標清單進行試探。CYFIRMA 判斷行動已從「偵察」進入「主動低速掃描」階段。

北韓歸因

CYFIRMA 以「moderate confidence」(中等信心)將行動歸因於北韓 Lazarus Group 生態系統中的韓語操作者。歸因依據:

  1. 封閉的 I2P 頻道協調:兩個活躍帳號(전창혁 2 aka Jeon Chang-hyuk 2、최아린 aka Choi A-rin)曾被觀察到為威脅行為者執行秘密行動。
  2. 北韓方言:對話使用的詞彙與拼寫是北韓標準(문화어, Munhwaŏ),而非南韓標準。
  3. C2 基礎設施重疊:Lazarus 過去曾用於利用網頁資產的指揮控制基礎設施。
  4. 攻擊模式一致:Lazarus 過去記錄顯示入侵 PHP 與 WordPress 伺服器作為 C2、植入 PHP 與 ASP web shell(例如 SyncHole watering hole 行動)。
  5. 目標優先序:政府機構與銀行,特別是線上交易平台,符合 Lazarus 入侵金融機構進行金融與加密貨幣竊盜的歷史。

下一步:利用

CYFIRMA 引述 I2P 頻道的對話:

「利用是下一步。操作者說他們會在同一天篩選出最有潛力的目標,然後選擇要改造哪個公開 exploit。」

這代表 216 台目標已經完成掃描與評估,接下來是從公開的 exploit 程式碼中選擇工具、改造、並實際利用。

其他觀測:Palo Alto GlobalProtect 蜜罐也被掃描

威脅情報公司 Defused Cyber 於 2026 年 10 月 25 日在 X 發文,表示其 Palo Alto Networks GlobalProtect 蜜罐也被 PHP2Shell 掃描。

掃描來源:204.76.203[.]7,已知的大規模 exploit IP。

特徵:請求帶有 PHP_SESSION_UPLOAD_PROGRESS 標記(p2s-rider)與一個無 payload 的虛擬檔案上傳,用來檢查目標是否有易受攻擊的 upload-progress 行為。Defused Cyber 判斷攻擊者在建立 Palo Alto 裝置的目標清單。

如何偵測 PHP2Shell 利用

ReliaQuest 於 2026 年 10 月 22 日發布更新,表示在受控實驗室中重現了 CVE-2026-109618,並識別出可協助防守方偵測利用的「特定日誌序列」。

三個日誌事件要一起看:

  1. POST 請求回傳 500 錯誤(Apache access log)
  2. PHP 回報記憶體耗盡與 heap corruption(PHP error log)
  3. 處理該請求的 Apache worker 崩潰(Apache error log、system log)

這個序列不是「確認利用成功」,而是「確認有利用嘗試」。防守方看到這三個事件連續出現,就要檢查之後是否有異常的檔案存取、程序啟動、網路連線。

CVE-2026-115560:第三個 RCE(低風險)

PHP Foundation 警告第三個遠端程式碼執行漏洞 CVE-2026-115560,但只在「不尋常的組態與應用程式碼組合」下才會發生。預計在常規釋出週期中修補。

觸發條件:

  • 應用程式在組態中設定 session.serialize_handler 為 php_binary 或 php_serialize
  • 然後在執行時用 ini_set() 切換回 php
  • 之後才呼叫 session_start()
  • 同時 session upload progress 仍啟用

Foundation 強調:從不在執行時變更 serialize handler 的應用程式可以保持功能啟用。這個漏洞的風險遠低於 CVE-2026-109618/109619。

全球曝險規模

Bitsight 的網際網路掃描顯示:全球約 3,700 萬個面向網際網路的系統跑 PHP 或 PHP 相關軟體。

主要曝險地區:美國、德國、法國、荷蘭、日本。

Bitsight 強調:

「PHP 跑著網路上很大一部分,從內容管理系統、線上商店到客製化內部工具。執行環境的漏洞無法透過修改應用程式碼修復,WAF 或外掛更新也無法移除它。只有更新主機上的 PHP 本身才能關閉缺口。」

Cloudflare 表示公開揭露後偵測到「數百萬次」利用嘗試。

攻擊者的利用技術細節

Datadog 發布技術分析,說明攻擊者如何利用 CVE-2026-109618(記憶體不足時的 RCE):

「攻擊者面對兩個主要限制:他們必須精確調整請求大小,讓記憶體配置在正確時機失敗,並且必須擊敗 ASLR 才能找到有效的記憶體位址。」

「Exploit 需要一個欄位名稱:小到能塞進被接受的請求主體,但大到複製其 key 時會超過 memory_limit。」

「當 PHP 解析 form-field 名稱時,途中會產生數個副本。攻擊者利用這個額外記憶體,在 PHP 將名稱複製進 hash table 時強制觸發記憶體配置失敗。」

這是技術層面的說明,但對防守方來說,關鍵仍是「更新到修補版本」。

如何避免

今天能做的事

  1. 更新到修補版本:8.5.12、8.4.27、8.3.36、8.2.35。8.1 以下無官方修補。

  2. 檢查日誌序列:POST 回 500 + PHP 記憶體耗盡 + worker 崩潰。若有,檢查後續是否有密碼檔被讀、LDAP 查詢、NTLM relay。

  3. 若已被入侵,立即撤銷所有認證資料:

    • 強制重設所有使用者密碼(密碼雜湊已被竊取)
    • 輪替所有 MFA 密鑰
    • 檢查 Active Directory 權限變更(是否有帳號被加進 Domain Admins)
    • 隔離並重建受影響主機
  4. 檢視來源 IP 與已知掃描節點:CYFIRMA 提到 21 個被入侵節點但未公開清單;Defused Cyber 提到 204.76.203[.]7。檢查你的日誌是否有來自這些 IP 的連線。

  5. 檢查是否有 PHP2Shell 掃描工具:Xint 已釋出掃描器,可檢查主機是否暴露於 PHP2Shell。

閾值告警無法抓到低流量掃描

CYFIRMA 強調:疑似北韓行動的掃描「節點被輪替使用、一旦被阻擋或觸發速率限制就立即放棄」,所以基於閾值的告警不太可能抓到。

防守方需要改用其他偵測方法:

  • 關注「日誌序列」(POST 500 + 記憶體耗盡 + worker 崩潰)而非單一事件
  • 監控異常的後續行為(密碼檔讀取、LDAP 查詢、NTLM relay)
  • 追蹤已知攻擊 IP(但攻擊者會輪替節點)

你可以學到什麼

站在攻擊者的角度:修補釋出當天就開始掃描,歐洲政府機構兩小時內被打穿、密碼與 MFA 被偷、NTLM relay 通道建立。北韓那邊用低流量、輪替節點的掃描策略,不會觸發閾值告警。指令輸出被包在 ==SHELLUSER== 這種分隔符號裡,那不是手工複製貼上,那是 AI 模型在讀取。

lessons本案的 7 個教訓
  1. 01
    從 RCE 到 Domain Admin 嘗試可以在兩小時內完成:政府機構案例顯示攻擊者利用 PHP2Shell 後立即進行密碼雜湊與 MFA 竊取、建立 NTLM relay 通道、嘗提權,這是自動化與高度熟練的攻擊鏈。
  2. 02
    AI 協助攻擊的標記是輸出格式:指令被包在 ==SHELLUSER== 與 ==PASSWD== 分隔符號中,產生機器可解析的輸出供 AI 模型讀取。這不是傳統自動化腳本的風格。
  3. 03
    低流量、輪替式掃描能繞過閾值告警:疑似北韓行動每個節點只發少量請求,一旦被阻擋就換節點,讓基於流量閾值的 IDS/IPS 難以偵測。
  4. 04
    日誌序列比單一事件更有價值:POST 500 + PHP 記憶體耗盡 + worker 崩潰這三個連續出現,是 PHP2Shell 利用嘗試的強指標。
  5. 05
    密碼雜湊與 MFA 密鑰都要立即輪替:被打穿後兩小時內這兩樣都被偷走,代表所有使用者密碼與 MFA 都要視為已外洩。
  6. 06
    北韓 APT 持續鎖定金融與政府:Lazarus 過去記錄顯示持續入侵金融機構進行加密貨幣竊盜,這次 216 台目標中優先序是政府與線上交易平台。
  7. 07
    PHP 執行環境的漏洞無法從應用層修補:Bitsight 強調 WAF 或外掛更新無法移除執行環境的漏洞,只有更新主機上的 PHP 本身才能關閉缺口。
keywords重點學習:最需要學習的 10 個關鍵字10 個
  1. 01
    PHP2Shell
    CVE-2026-109618 與 CVE-2026-109619 的統稱,PHP 核心的未驗證 RCE 漏洞。
  2. 02
    agentic AI(代理式 AI)
    Unit 42 判斷攻擊者使用 AI 模型協助攻擊,證據是指令輸出被包在機器可解析的分隔符號(==SHELLUSER==)中。
  3. 03
    NTLM relay
    攻擊者建立的通道,利用 NTLM 認證機制繞過密碼驗證、進入 Active Directory。
  4. 04
    Domain Admin
    Active Directory 最高權限角色,攻擊者嘗試提權的目標。
  5. 05
    Lazarus Group
    北韓 APT 組織,CYFIRMA 以中等信心歸因本次掃描行動。
  6. 06
    I2P 頻道
    匿名通訊網路,報導顯示攻擊者透過封閉 I2P 頻道協調行動並分享目標清單。
  7. 07
    북한 문화어(北韓方言)
    I2P 頻道對話使用的語言變體,CYFIRMA 用來支持北韓歸因。
  8. 08
    低流量、輪替式掃描
    攻擊者策略:每個節點只發少量請求,一旦被阻擋就換節點,繞過閾值告警。
  9. 09
    日誌序列偵測
    ReliaQuest 建議:POST 500 + PHP 記憶體耗盡 + worker 崩潰這三個連續出現是 PHP2Shell 利用嘗試的強指標。
  10. 10
    CVE-2026-115560
    第三個 PHP RCE 漏洞,但只在執行時變更 session.serialize_handler 的罕見情境下觸發。
try today今天就可以來試試約 15 分鐘

全部唯讀,不改任何設定;做完你會知道自己有沒有同樣的破口。

  1. 檢視 PHP 錯誤日誌、Apache access/error 日誌,搜尋日誌序列
    grep -E '(500|memory|heap|worker)' /var/log/php*.log /var/log/apache2/*.log /var/log/httpd/*.log | less
    看到什麼代表什麼:若看到 POST 回 500、PHP 回報 memory exhaustion 與 heap corruption、Apache worker 崩潰這三個連續出現,代表 PHP2Shell 利用嘗試。記下時間,檢查之後是否有異常行為。
  2. 確認 PHP 版本是否已更新到修補版本
    php -v && dpkg -l | grep php && rpm -qa | grep php
    看到什麼代表什麼:修補版本:8.5.12、8.4.27、8.3.36、8.2.35。若未更新,現在就更新。8.1 以下無官方修補,要升級或下線。
  3. 檢查最近是否有密碼檔被讀取(/etc/shadow、/etc/passwd)
    ausearch -f /etc/shadow -f /etc/passwd -ts recent || grep -E '(shadow|passwd)' /var/log/auth.log /var/log/secure
    看到什麼代表什麼:若有 web 程序(php-fpm、apache2、httpd)讀取這些檔案的記錄,且時間在上述日誌序列之後,代表可能已被利用。
  4. 檢查是否有異常的 LDAP 查詢到 Domain Controller
    grep -i ldap /var/log/syslog /var/log/messages | tail -50
    看到什麼代表什麼:若看到 curl 或 web 程序發起的 LDAP 查詢、目標是 domain controller、查詢管理員帳號,代表攻擊者在進行 AD 偵察。
  5. 檢查是否有來自已知攻擊 IP 的連線(204.76.203[.]7)
    grep '204\.76\.203\.7' /var/log/apache2/access.log /var/log/httpd/access_log /var/log/nginx/access.log
    看到什麼代表什麼:若有,檢查該請求的 user-agent、URL 路徑、是否帶 PHP_SESSION_UPLOAD_PROGRESS 標記。
  6. 若發現利用跡象,檢查 Active Directory 權限變更
    # 在 Domain Controller 上:
    Get-ADGroup 'Domain Admins' -Properties Members | Select-Object -ExpandProperty Members
    看到什麼代表什麼:若有非預期的帳號被加進 Domain Admins 或其他特權群組,立即調查該帳號的活動並撤銷權限。
  7. 若確認已被入侵,準備撤銷所有密碼雜湊與 MFA 密鑰
    看到什麼代表什麼:歐洲政府機構案例顯示密碼雜湊與 MFA 密鑰在兩小時內被竊取。若你的主機在日誌序列出現後還繼續運行,要把所有使用者密碼與 MFA 視為已外洩,強制重設。

台灣也在目標清單上

CYFIRMA 揭露的 216 台目標清單中,台灣明確列在其中。目標產業涵蓋政府、金融機構、機場與線上交易平台。

若你的組織在這些產業,今天就檢查 PHP 版本、檢視日誌、確認是否有上述日誌序列或異常行為。疑似北韓行動的掃描是低流量、輪替式,閾值告警可能抓不到,要靠日誌序列與後續行為偵測。

修補釋出後兩小時內歐洲政府機構就被打穿,這不是演習。

來源

分享
精選拆解直送信箱

每篇新文章一封:三點摘要、關鍵字定義、今天能做的一件事。

延伸閱讀

事件拆解

PHP2Shell 結合 Linux 提權打穿 25 台伺服器:AI 協助攻擊、3 台美國政府機構主機被 root

以色列資安公司 Dream 揭露疑似中國行為者利用 PHP2Shell(CVE-2026-109618/109619)結合 Linux kernel 提權漏洞 Fragnesia(CVE-2026-46300),在美國、日本、台灣、南韓 root 25 台伺服器,包括 3 台美國政府關聯環境主機。攻擊者使用 Anthropic Claude Code、FOFA、aiscan 等 AI 工具輔助 exploit 開發與自動化攻擊,已建立持久 SSH 隧道進入內部網路並嘗試 Active Directory 權限提升。

  • 2026/10/28
  • 每日拆解
新聞稿拆解

PHP 核心兩個 RCE 在修補前外洩,六成對外主機沒有官方修補版可裝

PHP 官方 10 月 21 日釋出 8.5.12、8.4.27、8.3.36、8.2.35,修補兩個 CVSS v4.0 9.2、不需登入就能遠端執行程式碼的漏洞。編號與「RCE」先在禁運期結束前外洩,官方隔天才正式確認;資安公司也回報修補釋出前後已有野外攻擊。真正麻煩的是另一個數字:依 Shodan 統計,回報版本的對外 PHP 主機有 59% 跑 8.1 以下,沒有官方修補版可裝。(2026-10-22 更新)

  • 2026/10/21
  • 每日拆解