From a6b88fdca8bfd03fc23ee28bb27b6d85c0e4a0d4 Mon Sep 17 00:00:00 2001 From: Translator Date: Sun, 10 Aug 2025 18:32:15 +0000 Subject: [PATCH] Translated ['src/network-services-pentesting/pentesting-web/microsoft-sh --- .../pentesting-web/microsoft-sharepoint.md | 70 ++++++++++++++++--- 1 file changed, 61 insertions(+), 9 deletions(-) diff --git a/src/network-services-pentesting/pentesting-web/microsoft-sharepoint.md b/src/network-services-pentesting/pentesting-web/microsoft-sharepoint.md index c8ebacd39..ad8842363 100644 --- a/src/network-services-pentesting/pentesting-web/microsoft-sharepoint.md +++ b/src/network-services-pentesting/pentesting-web/microsoft-sharepoint.md @@ -2,7 +2,7 @@ {{#include ../../banners/hacktricks-training.md}} -> Microsoft SharePoint(本地部署)建立在ASP.NET/IIS之上。因此,大多数经典的网络攻击面(ViewState、Web.Config、web shells等)都存在,但SharePoint还附带数百个专有的ASPX页面和网络服务,显著扩大了暴露的攻击面。此页面收集了实用技巧,以枚举、利用和在SharePoint环境中持久化,重点关注Unit42披露的2025年利用链(CVE-2025-49704/49706/53770/53771)。 +> Microsoft SharePoint(本地部署)建立在ASP.NET/IIS之上。因此,大多数经典的网络攻击面(ViewState、Web.Config、web shells等)都存在,但SharePoint还附带数百个专有的ASPX页面和网络服务,显著扩大了暴露的攻击面。 本页面收集了实用技巧,以枚举、利用和在SharePoint环境中持久化,重点关注Unit42披露的2025年利用链(CVE-2025-49704/49706/53770/53771)。 ## 1. Quick enumeration ``` @@ -29,11 +29,11 @@ python3 Office365-ADFSBrute/SharePointURLBrute.py -u https:// ### 2.2 CVE-2025-49706 – Improper Authentication Bypass -同一页面信任 **X-Forms_BaseUrl** 头来确定站点上下文。通过将其指向 `/_layouts/15/`,可以 **未认证** 地绕过根站点强制的 MFA/SSO。 +同一页面信任 **X-Forms_BaseUrl** 头来确定站点上下文。通过将其指向 `/_layouts/15/`,可以在 **未认证** 的情况下绕过根站点强制的 MFA/SSO。 ### 2.3 CVE-2025-53770 – Unauthenticated ViewState Deserialization → RCE -一旦攻击者控制了 `ToolPane.aspx` 中的一个小工具,他们可以发布一个 **未签名**(或仅 MAC)的 `__VIEWSTATE` 值,这会触发 *w3wp.exe* 内部的 .NET 反序列化,导致代码执行。 +一旦攻击者控制了 `ToolPane.aspx` 中的一个小工具,他们可以发布一个 **未签名**(或仅 MAC)的 `__VIEWSTATE` 值,这会触发 *w3wp.exe* 内部的 .NET 反序列化,从而导致代码执行。 如果启用了签名,从任何 `web.config` 中窃取 **ValidationKey/DecryptionKey**(见 2.4),并使用 *ysoserial.net* 或 *ysodom* 伪造有效负载。 ``` @@ -75,27 +75,78 @@ Response.Write(MachineKey.ValidationKey); } ``` -写给: +撰写至: ``` C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\spinstall0.aspx ``` -该 shell 暴露了 **读取 / 轮换机器密钥** 的端点,这允许在整个农场中伪造 ViewState 和 ASPXAUTH cookies。 +外壳暴露了**读取/轮换机器密钥**的端点,这允许在整个农场中伪造 ViewState 和 ASPXAUTH cookies。 ### 3.3 混淆变体(变体-3) -相同的 shell,但: +相同的外壳,但: * 放置在 `...\15\TEMPLATE\LAYOUTS\` 下 -* 变量名减少为单个字母 +* 变量名缩减为单个字母 * 为沙箱规避和基于时间的 AV 绕过添加了 `Thread.Sleep()`。 +### 3.4 AK47C2 多协议后门和 X2ANYLOCK 勒索软件(观察到 2025-2026) + +最近的事件响应调查(Unit42 “Project AK47”)显示攻击者如何在**初始 RCE** 之后利用 ToolShell 链在 SharePoint 环境中部署双通道 C2 植入和勒索软件: + +#### AK47C2 – `dnsclient` 变体 + +* 硬编码的 DNS 服务器:`10.7.66.10` 与权威域 `update.updatemicfosoft.com` 通信。 +* 消息是用静态密钥 `VHBD@H` XOR 加密的 JSON 对象,十六进制编码并嵌入为**子域标签**。 + +```json +{"cmd":"","cmd_id":""} +``` + +* 长查询被分块并以 `s` 为前缀,然后在服务器端重新组装。 +* 服务器以 TXT 记录回复,采用相同的 XOR/十六进制方案: + +```json +{"cmd":"","cmd_id":"","type":"result","fqdn":"","result":""} +``` +* 版本 202504 引入了简化格式 `::` 和分块标记 `1`、`2`、`a`。 + +#### AK47C2 – `httpclient` 变体 + +* 重新使用相同的 JSON 和 XOR 例程,但通过 `libcurl`(`CURLOPT_POSTFIELDS` 等)在**HTTP POST 主体**中发送十六进制数据。 +* 相同的任务/结果工作流程允许: +* 任意 shell 命令执行。 +* 动态睡眠间隔和杀死开关指令。 + +#### X2ANYLOCK 勒索软件 + +* 通过 DLL 侧加载加载的 64 位 C++ 有效负载(见下文)。 +* 使用 AES-CBC 加密文件数据 + RSA-2048 包装 AES 密钥,然后附加扩展名 `.x2anylock`。 +* 递归加密本地驱动器和发现的 SMB 共享;跳过系统路径。 +* 投放明文说明 `How to decrypt my data.txt`,嵌入静态**Tox ID**以进行谈判。 +* 包含内部**杀死开关**: + +```c +if (file_mod_time >= "2026-06-06") exit(0); +``` + +#### DLL 侧加载链 + +1. 攻击者在合法的 `7z.exe` 旁边写入 `dllhijacked.dll`/`My7zdllhijacked.dll`。 +2. SharePoint 生成的 `w3wp.exe` 启动 `7z.exe`,由于 Windows 搜索顺序加载恶意 DLL,从而在内存中调用勒索软件入口点。 +3. 观察到一个单独的 LockBit 加载器(`bbb.msi` ➜ `clink_x86.exe` ➜ `clink_dll_x86.dll`)解密 shell 代码并执行**DLL 空心化**到 `d3dl1.dll` 以运行 LockBit 3.0。 + +> [!INFO] +> 在 X2ANYLOCK 中发现的相同静态 Tox ID 出现在泄露的 LockBit 数据库中,表明关联重叠。 + +--- + ## 4. 检测思路 | 监测数据 | 为什么可疑 | |-----------|----------------------| -| `w3wp.exe → cmd.exe` | 工作进程应该很少生成 shell | +| `w3wp.exe → cmd.exe` | 工作进程很少会生成 shell | | `cmd.exe → powershell.exe -EncodedCommand` | 经典的 lolbin 模式 | | 创建 `debug_dev.js` 或 `spinstall0.aspx` 的文件事件 | 直接来自 ToolShell 的 IOCs | -| `ProcessCmdLine 包含 ToolPane.aspx`(ETW/模块日志) | 公开的 PoCs 调用此页面 | +| `ProcessCmdLine CONTAINS ToolPane.aspx`(ETW/模块日志) | 公开的 PoCs 调用此页面 | 示例 XDR / Sysmon 规则(伪 XQL): ``` @@ -121,6 +172,7 @@ proc where parent_process_name="w3wp.exe" and process_name in ("cmd.exe","powers - [Unit42 – Microsoft SharePoint漏洞的主动利用](https://unit42.paloaltonetworks.com/microsoft-sharepoint-cve-2025-49704-cve-2025-49706-cve-2025-53770/) - [GitHub PoC – ToolShell利用链](https://github.com/real-or-not/ToolShell) - [Microsoft安全建议 – CVE-2025-49704 / 49706](https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2025-49704) +- [Unit42 – 项目AK47 / SharePoint利用与勒索软件活动](https://unit42.paloaltonetworks.com/ak47-activity-linked-to-sharepoint-vulnerabilities/) - [Microsoft安全建议 – CVE-2025-53770 / 53771](https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2025-53770) {{#include ../../banners/hacktricks-training.md}}