通过 ViewState 反序列化漏洞利用 KnowledgeDeliver
TL;DR · AI 摘要
Google Cloud 发布文章披露了 KnowledgeDeliver 学习管理系统因 ViewState 反序列化漏洞导致的远程代码执行风险,攻击者利用公开的 ASP.NET machine key 实现横向渗透和持久化。
核心要点
- CVE-2026-5426 是一个基于 ASP.NET machine key 泄露的 ViewState 反序列化漏洞
- 攻击者通过 BLUEBEAM 内存 Web Shell 和 Cobalt Strike 后门实现持久化控制
- 建议监控 Windows 应用日志中的 Event ID 1316 识别潜在攻击行为
结构提纲
按章节快速跳转。
- §引言
介绍 KnowledgeDeliver 系统被利用的背景及关键漏洞 CVE-2026-5426。
- ·漏洞机制
说明 ASP.NET machineKey 被重复使用引发的 ViewState 反序列化风险。
- ›攻击手法
攻击者通过恶意 ViewState 实现 RCE 并部署 BLUEBEAM Web Shell。
包括文件篡改、JavaScript 注入和 Cobalt Strike 攻击链。
- ›检测建议
推荐关注 Windows 应用日志中 Event ID 1316 的异常记录。
思维导图
用一张图看清主题之间的关系。
查看大纲文本(无障碍 / 无 JS 友好)
- ViewState 漏洞利用
- 漏洞根源
- 共享 machineKey
- ViewState 反序列化
- 攻击流程
- 远程代码执行
- 持久化植入
- 检测手段
- Event ID 1316
- 日志分析
金句 / Highlights
值得收藏与分享的关键句。
攻击者利用公开的 ASP.NET machine key 实现跨实例攻击,因为多个客户环境使用相同的密钥。
BLUEBEAM Web Shell 在内存中运行,绕过传统文件扫描方式,通过 HTTP POST 执行命令。
攻击者通过修改 JavaScript 文件诱导用户下载伪造安装包,最终植入 Cobalt Strike BEACON。
标题:通过 ViewState 反序列化漏洞利用 KnowledgeDeliver
URL 来源:https://cloud.google.com/blog/topics/threat-intelligence/knowledgedeliver-viewstate-deserialization-vulnerability/
发布日期:2026-05-25
Markdown 内容: 作者:Takahiro Sugiyama, Peter Revelant, Mathew Potaczek
- * *
引言
2025 年底,Mandiant 响应了一起涉及运行 KnowledgeDeliver 的受损 Web 服务器的安全事件。KnowledgeDeliver 是由 Digital Knowledge 开发的学习管理系统(LMS),在日本广泛使用。Mandiant 识别出一个关键漏洞,允许未经身份验证的远程代码执行(RCE)。未知威胁行为者利用此访问权限向 LMS 平台注入恶意代码,目的是感染访问该网站的用户。
该漏洞源于多个客户部署中使用了相同的预共享 ASP.NET 机器密钥。该漏洞最初作为零日漏洞被利用,现追踪编号为 CVE-2026-5426。
漏洞详情
在 2026 年 2 月 24 日之前部署的 KnowledgeDeliver 实例依赖于供应商提供的标准化 web.config 文件。该配置文件包含 ASP.NET 框架用于加密和签名数据(包括 ViewState 负载)的硬编码 machineKey 值。
由于这些密钥在独立的客户环境中是相同的,因此获取某个部署中的密钥的威胁行为者可以破坏任何其他面向互联网的 KnowledgeDeliver 实例。
以下是在 web.config 文件中找到的相关配置行示例:
<machineKey decryptionKey="<REDACTED>" validationKey="<REDACTED>" />
ASP.NET ViewState 在回发之间持久化页面状态。当知道 machineKey 时,威胁行为者可以构造恶意的 ViewState 负载。通过在 HTTP 请求中发送该负载(通过 __VIEWSTATE 参数),威胁行为者可以使服务器反序列化它。
这种技术遵循了影响 Sitecore 的 ViewState 反序列化零日漏洞(此前由 Mandiant 报告)以及微软报告的 使用公开披露的 ASP.NET 机器密钥进行代码注入攻击 的模式。这突显了保持机器密钥唯一性和安全性的关键性。
后渗透活动
一旦获得访问权限,威胁行为者专注于维持其存在并扩大破坏影响。
#### BLUEBEAM Web Shell 部署
威胁行为者部署了一个基于 .NET 的内存型 Web Shell,称为 BLUEBEAM(也被称为 Godzilla)。BLUEBEAM 的使用与 微软报告 中描述的一致。该恶意软件完全在 IIS 工作进程(w3wp.exe)内运行,使其难以通过传统的基于文件的扫描检测。它允许威胁行为者通过 HTTP POST 请求体发送加密数据来执行进一步的命令和有效载荷。
#### 文件篡改
观察到威胁行为者执行命令以提升对 Web 服务器文件系统的控制:
- 权限修改:威胁行为者使用
icacls授予“Everyone”对 Web 应用程序目录的完全访问权限。
- JavaScript 篡改:威胁行为者修改了一个应用程序 JavaScript 文件,添加了以下功能的代码:
- 显示虚假的安全警告,提示用户安装一个“安全认证插件”。
- 静默加载托管在威胁行为者控制域上的远程恶意脚本。
#### Cobalt Strike 感染
远程脚本诱使用户下载一个假安装程序,导致工作站感染 Cobalt Strike BEACON 后门。该有效载荷使用了目标组织名称作为密钥进行加密,表明威胁行为者专门为该目标组织准备了此有效载荷。
如何搜寻此类活动
组织应监控以下指标以识别潜在的 ViewState 利用和后渗透活动。
#### 1. 应用程序事件日志(事件 ID 1316)
监控 Windows 应用程序日志中来自 ASP.NET 4.0.30319.0(或类似)来源的事件 ID 1316。
- 失败尝试(完整性失败):
事件代码:4009-++-Viewstate 验证失败。原因:提供的 viewstate 完整性检查失败。可能表示使用错误密钥的攻击尝试。
- 成功执行(无效 ViewState):
事件代码:4009-++-Viewstate 验证失败。原因:Viewstate 无效。确认完整性检查已通过。尝试反序列化有效载荷,并可能成功。有效载荷可能被执行也可能未被执行。
Mandiant 使用服务器的机器密钥解密了事件日志消息中记录的有效载荷字符串,并恢复了一个与 BLUEBEAM Web Shell 相关的有效载荷。
#### 2. 异常进程活动
监控由 w3wp.exe 生成的异常子进程。观察到的命令包括:
cmd.exe /c ...
whoami
powershell.exe
#### 3. 文件完整性监控
监控 Web 根目录中 .js、.aspx 或 .config 文件的未经授权更改。特别注意远程脚本加载器或常用库中的异常逻辑的添加。
#### 4. 异常 User-Agent 字符串
Mandiant 发现了由两个不同标识符连接而成的 User-Agent 字符串,这些字符串与在 ViewState 反序列化零日漏洞 中报告的字符串一致。请监控 Web 请求日志中是否存在此类异常的 User-Agent 字符串。以下是已识别的 User-Agent 字符串示例:
Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/22.0.1216.0 Safari/537.2 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36
Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101213 Opera/9.80 (Windows NT 6.1; U; zh-tw) Presto/2.7.62 Version/11.01 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) chromeframe/10.0.648.205 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36
修复与缓解措施
- 轮换机器密钥:立即为每个 KnowledgeDeliver 实例生成一个唯一且密码学上强健的机器密钥。这是使共享密钥失效的唯一方法。
- 限制访问:如果可能,请将 LMS 的访问权限限制在已知的组织 IP 地址范围内。
- 调查:主动搜寻此类活动,并在发现任何攻击迹象时进行全面调查。
展望与影响
KnowledgeDeliver 的利用凸显了在部署模板中使用共享密钥所带来的严重风险。一个泄露的密钥就可能导致整个安装生态系统受到威胁。通过实施唯一的密钥和强大的终端监控,组织可以防范此类反序列化攻击。
威胁指标 (IOCs)
文件名 类型 SHA-256 LoadLibrary.dllBLUEBEAM7c1f99dca8e5a7897892f9d224a6495023a2cfd2671697d229d355978c415ed2
Google 安全运营 (SecOps)
以下 SecOps 搜索可用于搜寻此类活动。
(metadata.log_type = "WINEVTLOG" or metadata.log_type = "WINEVTLOG_XML")
metadata.product_event_type = "1316"
additional.fields["Message"] = /Event code: 4009\b/ nocase(metadata.event_type = "PROCESS_LAUNCH" or metadata.event_type = "PROCESS_OPEN") AND
principal.process.command_line = /w3wp.exe/ nocase AND
target.process.command_line = /cmd.+ \/c |whoami|powershell/ nocaseSecOps 客户可在 Mandiant Hunting Rules、Mandiant Frontline Threats 和 Mandiant Intel Emerging Threats 规则包下访问以下规则及其他更多规则:
- ASP.NET ViewState 反序列化尝试
- W3wp 启动 Cmd 并执行侦察命令
- W3wp 启动编码后的 Powershell
- W3wp 启动 Icalcls
- Web 服务器进程启动 Whoami
- IIS ViewState 利用成功
- IIS ViewState 利用后紧接着 Web 根目录文件篡改
- 可能的 Windows Exchange 服务器启动 Shell
致谢
Mandiant 感谢 Digital Knowledge 团队在此披露过程中的合作。
发布于