[控场AI]
· 8 分钟阅读· 4,403 字

NetScaler零日攻击链:自建超级用户、CSS伪装WebShell与证据销毁

NetScaler零日攻击链:自建超级用户、CSS伪装WebShell与证据销毁

Citrix NetScaler被两个9.5分零日漏洞攻陷后,攻击者部署持久化超级用户、伪装WebShell并自动销毁证据。

LevelBlue THOR团队披露了Citrix NetScaler ADC和Gateway设备遭两个CVSS 9.5分零日漏洞(CVE-2026-88771前置认证命令注入、CVE-2026-88772 DTLS触达内存溢出)攻击的事后分析。攻击者利用漏洞获得root权限后,运行Perl脚本创建持久化超级用户sec_monitor、外泄完整配置目录、部署伪装成CSS资源URL的PHP WebShell,并最终删除归档与脚本以缩小取证足迹。工具组合包括隐藏在HTTP头中的WHIPSHOT WebShell和用于内网代理的SLAPSHOT隧道。Citrix、CISA与watchTowr一致建议:升级前先捕获日志、快照与核心转储,因为补丁会清除入侵证据。NetScaler作为边缘信任边界,被攻陷即意味着获得通往内网的永久通道。

NetScaler零日攻击链:自建超级用户、CSS伪装WebShell与证据销毁

NetScaler零日攻击链分析

攻击者用两个CVSS 9.5的零日漏洞撬开了Citrix NetScaler ADC和Gateway设备的大门,然后在里面留下了一套精心设计的东西:一个名为sec_monitor的本地超级用户、一个伪装成CSS样式表URL的PHP WebShell、一份完整的设备配置备份,以及——最令人不安的一步——一个自动删除所有证据的脚本。

LevelBlue威胁狩猎与运营研究团队(THOR)发布的这份事后分析,罕见的完整呈现了漏洞披露后攻击者"下一步做什么"。补丁修复的是一扇门,对这些已经在屋内的攻击者毫无作用。


两个零日漏洞,一个默认配置就中招

CVE-2026-88771是一个9.5分的前置认证命令注入漏洞。它的影响范围用Citrix公告的原话说,是所有NetScaler ADC和Gateway部署,包括默认配置。不需要开启任何额外功能、不需要特定虚拟服务器类型、不需要任何配置选项——设备出厂即暴露。

CVE-2026-88772同样是9.5分,是一个可通过DTLS触达的内存溢出漏洞。它有一个前置条件,但这个条件恰恰是默认开启的:VPN虚拟服务器上的DTLS默认启用,而VPN虚拟服务器正是让NetScaler Gateway成为VPN网关的核心配置。Mandiant和Google威胁情报团队记录的攻击链显示,攻击者通过绕过认证并触发NetScaler数据包处理引擎(NSPPE)的未处理终止,在底层FreeBSD平台上建立了初始root级访问权限。

漏洞的时间线本身就是教科书级的零日应对节奏:荷兰国家网络安全中心(NCSC-NL)在私下预通知中建议运营商关闭设备,触发管理员在9月26日公开反馈;Citrix在9月27日发布修复版本;CISA同日将两个CVE加入已知被利用漏洞目录。从私下预警到公开发布,不到24小时。


前置认证(Pre-Auth)漏洞指的是攻击者无需持有任何有效凭据、无需先登录设备即可利用的漏洞。与之相对的是后置认证(Post-Auth)漏洞,后者要求攻击者已拥有合法账户。前置认证漏洞的危险性在于:设备的认证机制本身非但不能提供保护,反而在攻击者拿到凭据之前就已失守,暴露在互联网上的管理接口或VPN门户因此成为直接的攻击入口。CVE-2026-88771被评定为CVSS 9.5分,正是因为它无需任何前置条件;而CVE-2026-88772虽是前置认证可达,却依赖DTLS这一默认开启的服务作为触达路径。对于NetScaler这类位于网络边缘、承载VPN与认证的设备而言,前置认证漏洞意味着防护边界在攻击开始前就已经失效。

**NSPPE(NetScaler Packet Processing Engine,NetScaler数据包处理引擎)**是NetScaler用来处理网络流量的底层核心组件,负责解析、转发和终止进出设备的数据包。它运行在NetScaler自有的FreeBSD基础平台之上,以高权限(通常是root级)进程形态工作,以换取处理高吞吐流量所需的最小开销。正因为NSPPE直接处理来自网络的原始数据包,它成为内存溢出类漏洞的高价值目标:一旦攻击者通过构造畸形数据包触发未处理的内存错误,就可能劫持该进程的执行流,进而在底层操作系统上获得root权限。CVE-2026-88772正是通过DTLS触达该引擎并触发未处理终止,从而完成从网络数据包到操作系统root的跨越,这是边缘设备漏洞利用中危害最高的一类路径。

后利用脚本:设计目标就是让你查不到

LevelBlue报告中最具启发性的细节不是漏洞利用本身,而是第二阶段载荷。一个名为update_c08937.pl的Perl脚本按顺序执行了四件事:

  1. 修改/flash/nsconfig/ns.conf,创建一个名为sec_monitor的本地账户并授予其超级用户角色——这个账户写入配置文件,意味着重启后依然存在
  2. 将整个/flash/nsconfig目录打包为/tmp/update_result_3567cs.tgz,上传到64.94.85[.]67:443——这包含设备的完整配置信息
  3. 将/bin/sh权限改为6555,在/var/netscaler/logon/LogonPoint/.local_journal部署一个PHP WebShell,支持远程命令执行和文件上传下载
  4. 删除归档文件并清除自身

最后一步值得单独强调:这个脚本被设计为主动缩小磁盘上的取证足迹。编写它的人预设了防御者会在事后检查设备,并希望届时能看到的"故事"尽可能简短。

LevelBlue对整体模式的总结比任何转述都更精确:"部分尝试使用whoami等命令测试命令执行,另一些则尝试获取额外载荷、收集NetScaler配置数据、建立反向shell、创建特权账户和部署WebShell。"这是一份用一句话写成的入侵剧本,其中每一项都是持久化能力,而非临时据点。


工具包透露的攻击者画像

将LevelBlue的遥测数据与Mandiant的工具包分析放在一起,攻击者的行为模式清晰浮现:他们不是扫描到一个shell就走,而是追求三样东西——设备配置、能跨越重启的持久化超级用户身份、以及一个看起来像样式表的WebShell。

PHP WebShell被放置在LogonPoint/.local_journal,故意映射到类似合法NetScaler CSS资源的URL。GreyNoise的观测从侧面印证了这一手法。这是专门针对"安全团队监控薄弱"的设备类别设计的规避策略——大多数NetScaler部署位于网络边缘,日志只记录给自己看。

第二个显著特征是工具配对使用。Mandiant描述了WHIPSHOT(一个将Base64编码的命令控制载荷隐藏在原生HTTP头中的PHP WebShell)与SLAPSHOT(一个将流量代理到内网用于侦察和凭证窃取的Python隧道工具)的配合。在至少一起已观测到的入侵中,攻击者通过隧道手动进行内部侦察。这不是为自动化而自动化,而是一个在制造任何噪音之前,先建立稳定内网通道的操作者。


WHIPSHOT与SLAPSHOT是Mandiant在本次攻击活动中归因的两款后利用工具,分工明确。WHIPSHOT是一个PHP WebShell,其特点在于把Base64编码的命令与控制载荷塞进原生HTTP请求头中,使恶意流量在常规HTTP日志里看起来与普通请求无异,规避基于内容的检测。SLAPSHOT则是一个基于Python的隧道工具,功能是把外部流量代理进内网,为攻击者提供一条稳定的通道,用于内部侦察和凭证窃取。两者配合代表了一种成熟的作战节奏:先用WebShell在内网立足,再用隧道横向移动,在制造任何明显噪音之前先建立可持续的内网通道。这与"扫到一个shell就走"的投机式攻击形成鲜明对比,说明操作者有明确的长期驻留意图。

正确的响应顺序:先取证,再打补丁

Citrix、CISA和watchTowr在响应顺序上罕见地达成一致,而这个共识令人不适:不要直接打补丁。CISA建议在更新前检查是否已被入侵并保留取证证据,因为更新本身可能清除已存在入侵的证据。

watchTowr明确列出了顺序:

  1. 从每台暴露设备捕获日志、快照、支持包和核心转储——在升级之前
  2. 运行IOC扫描——通过NetScaler Console安全公告页面(14.1-73.36或更高版本,需启用遥测),或向Citrix支持请求通用IOC
  3. 安装修复版本——13.1分支需要先运行show ns variable,因为13.1-64.23在升级时存在已知的循环重启问题,13.1-64.24修复了该问题
  4. 轮换凭证——包括设备上存储或通过设备使用的密码、密钥和证书
  5. 将NetScaler日志转发到外部SIEM,并将管理接口移出公网

需要留意的是,Citrix自己的IOC指南附带了一个诚实的免责声明:这些指标不涵盖所有技术、战术和程序,取证价值可能有限。一次干净的IOC扫描只是多个数据点中的一个。


**在升级前捕获核心转储(core dump)**是此次事件中反复强调却容易被忽略的动作。核心转储是进程崩溃时操作系统把该进程内存镜像写入磁盘的文件,对于内存溢出类漏洞(如CVE-2026-88772),它可能保留攻击者注入的载荷片段、被劫持的执行路径以及对漏洞利用手法的直接证据。支持包(support bundle)和快照则记录设备配置、日志和运行时状态。之所以强调"升级前",是因为安装修复版本会重启服务、覆盖配置文件、清理临时目录,从而连带清除攻击者留下的痕迹。一旦这些证据丢失,即便事后怀疑设备曾被入侵,也可能再也无法确认攻击的范围与持续时间,更无法判断是否还有其他持久化后门未被发现。

边缘设备为何值得"皇冠明珠"级待遇

这场攻击活动最令人不安的事实是:被利用的设备恰恰是坐在办公室和所有内部应用之间的那个设备,处理VPN、远程访问、负载均衡和认证。一台被攻陷的NetScaler给攻击者提供的是边界的立足点加上通往内部系统的通道,而后利用工具包被设计为让这条通道永久化——配置中的超级用户账户、看起来像CSS文件的WebShell、以及通向内网的隧道。

这与我们在讨论NVIDIA基础设施控制器硬编码凭证时提出的管理层平面论证如出一辙:当边缘设备成为信任边界,问题就不再是"这个产品是否有漏洞",而是"我们能否检测并驱逐已经进入的人"。NetScaler的后利用攻击现在有了一个标准答案——载荷被设计为让后半部分尽可能困难。升级前的证据捕获不是官僚流程,而是在攻击者清理完自己的痕迹之后,唯一还能起作用的部分。

这个模式适用于所有集成了远程访问和本地日志的设备类别:打补丁之前先保留证据,将干净的扫描结果视为多个信号之一,并假设运行过的载荷比你第一次取证检查时更了解如何隐藏自己。

修复版本已在14.1-73.37和13.1-64.23分支发布。补丁是这起事件中简单的部分——从来都是。困难的部分是你选择在升级前捕获、或永远丢失的证据。

#NetScaler零日漏洞#CVE-2026-88771#CVE-2026-88772#Citrix NetScaler安全#后利用攻击链#WebShell检测#边缘设备安全
分享:

相关推荐