十天前我们写过 PHP 基金会那两个拖了两年才修好的 RCE 漏洞(CVE-2026-109618 / CVE-2026-109619)。现在它们已经被武器化、实战利用了——而且打的不是普通 PHP 网站,是 Palo Alto Networks 的 PAN-OS 防火墙。
安全公司 Dream 在 10 月 25 日发现了一整套攻击残留:定制版 PHP2Shell 利用链 + Fragnesia 内核提权(CVE-2026-46300),配上一份目标清单、利用日志和约 40 个自定义后渗透脚本。被拿下的是分布在美国、日本、台湾、韩国的 25 台 PAN-OS 防火墙和管理服务器。Palo Alto 的 Unit 42 独立验证了这套工具和结果。
攻击手法值得细说,因为它是单次 HTTP 请求、零凭据、从暴露的 HTTPS 到持久 root webshell 不到 15 分钟。
第一段打的是 PHP 的 session.upload_progress 机制——PAN-OS 管理界面(appweb)跑的是 PHP 8.0.30,内存上限设得很高,这让内存破坏阶段成为可能。但拿到 nobody 权限还不够,SELinux 把 httpd_t 挡住了。于是他们接了第二段:XFRM ESP-in-TCP 子系统的内核漏洞。这个叫 Fragnesia 的利用用 page-cache 写入覆盖 /etc/pam.d/su,把 PAM 规则换成 pam_permit.so(全放行)。因为文件只有 774 字节,它用了逐字节拼接的方式精确写入。覆盖完,su root 不用密码。
这不是一个"打一枪扔一个"的通用载荷。它需要精确的内存偏移,而每个 PAN-OS 版本的偏移都不一样——zval_ptr_dtor 的地址、zif_system 的地址、HashTable 结构体大小、控制堆布局的几何参数。研究团队找到了 11 个 JSON 版本配置文件,每个对应一个测过的 PAN-OS 版本,里面是那个版本 libphp.so 的精确偏移、库的 SHA256、ELF build ID,以及实验室里调出来的 chunk 大小、填充数、drain 数、spray 偏移。

配置文件分两类,这个区分很说明功力:calibrated 意味着攻击者在对应版本的虚拟机里实测过、确认内存几何能跑通;provisional 意味着只从二进制算出了偏移、没在真机上验证过。
然后是目标筛选,整个漏斗做得很干净:
- 用 FOFA(国内的互联网资产搜索引擎,类似 Shodan)扫出全球约 19,000 台管理接口暴露的 PAN-OS 防火墙——靠证书指纹和 HTTP 响应特征识别
- 自写版本扫描器,200 并发线程扫这 19,000 个目标,约 5,000 台返回了版本信息
- 只保留美国、日本、台湾、韩国四地的设备,再筛出匹配自己 exploit profile 的版本(PAN-OS 12.1/12.2 分支、跑 PHP 8.0.30)——剩 240 台
- 240 台喂进自动批处理器,一次 5 台、单目标 30 分钟超时
最终拿下 24 台(第 25 台是后来的政府管理服务器)。
这里面有个细节最能说明攻击者的意图:24 台里 22 台只种了 webshell 就什么都不做了。没有持久化、没有隧道、没有后渗透工具——就是占了、停在那儿,随时可以通过 webshell 回来。真正被推进的是两台,而这两台恰好属于美国政府相关环境。
从第一台防火墙的运行配置里能看出政府背景:CAC 卡认证、特定命名前缀、标准化的政府资产命名方式。配置文件里还有完整的内部网络信息。第一台在 10 月 23 日 18:14 UTC 拿下,但很快崩了(大概是约 900MB 的利用流量打崩的),再没回来。攻击者用 240 次自动探测盯了两个小时,等它恢复——没等到。第二台的证书数据能确定归属同一机构,于是攻击者专门开了个独立行动,10 月 24 日 10:09 UTC 再次拿下。
之后不到 90 分钟:通过隧道拿下第三台——这台是内部防火墙管理服务器,统一管理该机构所有防火墙,从外部无法直接访问。这台一到手,等于拿到了整个防火墙体系。
再往后就是 Active Directory。管理服务器本身就有到 AD 的 LDAP 连接(认证 VPN 用户用的),攻击者直接拿它当跳板。
关键的限制在这里:域攻击的结果——密码喷洒有没有拿到有效凭据、后门账号有没有建成、SAML 密钥有没有被提取——都留在了管理服务器的本地文件系统上,不在 recovered artifacts 里。也就是说,这次入侵的完整范围无法确定。如果其中任何一项成功,失陷就已经从边界防火墙延伸进了机构的身份基础设施。
关于"AI 辅助"这个判断,Dream 说得相当克制:代码结构、注释风格,以及约 40 个脚本之间的一致性,提示是 AI 辅助开发的;但没有任何直接证据表明 AI 工具被专门用来写 exploit 或后渗透脚本,而且这次行动不像是完全自主的国家级攻击。
归因上,Palo Alto 的 Unit 42 把这活动编号为 CL-UNK-1280,归给 UTC+8 时区的中文使用者,但没有点名具体组织。Dream 只列了旁证:目标集中在美日台韩——这四个是太平洋战区中国相关网络行动的主要战略对手和情报目标。
还有两件事没结束:22 台被种了 webshell 的防火墙还在那儿停着;打进美国政府机构的那条隧道很可能还在运行;攻击者手上还攥着 19,000 个已指纹化的目标,随时可以为新版本的 PAN-OS 补上 profile 再回头扫一遍。Palo Alto 的设备遥测显示,针对暴露设备的利用尝试仍在持续。
参考来源