**Windows XP 및 Server 2003**이 작동하는 환경에서는 LM (Lan Manager) 해시가 사용되지만, 이는 쉽게 침해될 수 있다는 것이 널리 알려져 있습니다. 특정 LM 해시인 `AAD3B435B51404EEAAD3B435B51404EE`는 LM이 사용되지 않는 경우를 나타내며, 빈 문자열의 해시를 나타냅니다.
기본적으로 **Kerberos** 인증 프로토콜이 주로 사용됩니다. NTLM (NT LAN Manager)은 특정 상황에서 사용됩니다: Active Directory가 없는 경우, 도메인이 존재하지 않는 경우, Kerberos가 잘못된 구성으로 인해 제대로 작동하지 않는 경우 또는 유효한 호스트 이름 대신 IP 주소를 사용하여 연결을 시도하는 경우입니다.
**해시 NT(16바이트)**는 **각각 7바이트로 구성된 3개의 부분**(7B + 7B + (2B+0x00\*5))으로 나누어집니다. **마지막 부분은 0으로 채워집니다**. 그런 다음 **도전**은 각 부분별로 **별도로 암호화**되고 결과로 나온 암호화된 바이트가 **결합**됩니다. 총: 8B + 8B + 8B = 24바이트.
AD에서 이미 가지고 있는 일부 자격 증명/세션을 사용하여 **프린터가 제어하려는 호스트에 대해 인증을 요청**할 수 있습니다. 그런 다음 `metasploit auxiliary/server/capture/smb` 또는 `responder`를 사용하여 **인증 도전을 1122334455667788로 설정**하고 인증 시도를 캡처하면, **NTLMv1**을 사용하여 수행된 경우 **해독**할 수 있습니다.\
`responder`를 사용하는 경우 **인증을 다운그레이드**하기 위해 `--lm` 플래그를 사용해 볼 수 있습니다.\
_이 기술을 위해 인증은 NTLMv1을 사용하여 수행되어야 합니다(NTLMv2는 유효하지 않음)._
프린터는 인증 중에 컴퓨터 계정을 사용하며, 컴퓨터 계정은 **긴 무작위 암호**를 사용하므로 일반적인 **사전**을 사용하여 해독할 수 없을 것입니다. 그러나 **NTLMv1** 인증은 **DES를 사용**합니다([더 많은 정보는 여기에서 확인](./#ntlmv1-challenge)), 따라서 DES를 크랙하기 위해 특별히 제작된 일부 서비스를 사용하여 해독할 수 있습니다(예: [https://crack.sh/](https://crack.sh)).
다음은 /hive/hacktricks/windows-hardening/ntlm/README.md 파일에서 가져온 내용입니다. 관련된 영어 텍스트를 한국어로 번역하고, 동일한 마크다운 및 HTML 구문을 유지한 채 번역한 내용을 반환하세요. 코드, 해킹 기법 이름, 해킹 용어, 클라우드/SaaS 플랫폼 이름(예: Workspace, aws, gcp...), 'leak'이라는 단어, 펜테스팅 및 마크다운 태그와 같은 요소는 번역하지 마십시오. 또한 번역 및 마크다운 구문 이외의 추가 내용은 추가하지 마십시오.
NTLM (NT LAN Manager) is a suite of Microsoft security protocols that provides authentication, integrity, and confidentiality to users. It is commonly used in Windows environments for user authentication.
## NTLM Authentication Process
1. The client sends a request to the server.
2. The server responds with a challenge.
3. The client encrypts the challenge using the user's password hash and sends it back to the server.
4. The server verifies the response by decrypting it using the user's password hash.
5. If the response is valid, the server grants access to the client.
NTLM has several vulnerabilities that can be exploited by attackers:
1.**Pass-the-Hash (PtH) Attack**: An attacker captures the NTLM hash of a user and uses it to authenticate as that user without knowing the actual password.
2.**Pass-the-Ticket (PtT) Attack**: An attacker captures the Kerberos ticket of a user and uses it to authenticate as that user without knowing the actual password.
3.**NTLM Relay Attack**: An attacker intercepts the NTLM authentication request and relays it to another server, gaining unauthorized access.
4.**NTLM Downgrade Attack**: An attacker forces the use of weaker NTLM protocols, making it easier to crack the password hash.
## Mitigating NTLM Vulnerabilities
To mitigate NTLM vulnerabilities, consider the following measures:
1.**Disable NTLM**: Disable NTLM authentication if not required.
NTLM (NT LAN Manager) is a suite of Microsoft security protocols that provides authentication, integrity, and confidentiality to users. It is commonly used in Windows environments for user authentication.
### NTLM Authentication Process
1. The client sends a request to the server.
2. The server responds with a challenge.
3. The client encrypts the challenge using the user's password hash and sends it back to the server.
4. The server verifies the response by decrypting it using the user's password hash.
5. If the response is valid, the server grants access to the client.
### NTLM Vulnerabilities
1.**Pass-the-Hash (PtH) Attack**: An attacker captures the NTLM hash of a user and uses it to authenticate as that user without knowing the actual password.
2.**Pass-the-Ticket (PtT) Attack**: An attacker captures the Kerberos ticket of a user and uses it to authenticate as that user without knowing the actual password.
3.**NTLM Relay Attack**: An attacker intercepts the NTLM authentication request and relays it to another server, gaining unauthorized access to the target system.
4.**NTLM Downgrade Attack**: An attacker forces the use of NTLM authentication instead of more secure protocols like Kerberos, making it easier to exploit NTLM vulnerabilities.
### Mitigations
1.**Disable NTLM**: Disable NTLM authentication and use more secure protocols like Kerberos.
2.**Enable Extended Protection for Authentication**: Enable Extended Protection for Authentication to prevent NTLM relay attacks.
3.**Enable SMB Signing**: Enable SMB signing to protect against NTLM relay attacks.
4.**Use Strong Passwords**: Encourage users to use strong, complex passwords to make it harder for attackers to crack the password hash.
5.**Implement Multi-Factor Authentication (MFA)**: Implement MFA to add an extra layer of security to the authentication process.
NTLM (NT LAN Manager) is a suite of Microsoft security protocols that provides authentication, integrity, and confidentiality to users. It is commonly used in Windows environments for user authentication.
## NTLM Authentication Process
1. The client sends a request to the server.
2. The server responds with a challenge.
3. The client encrypts the challenge using the user's password hash and sends it back to the server.
4. The server verifies the response by decrypting it using the user's password hash.
5. If the response is valid, the server grants access to the client.
## NTLM Vulnerabilities
1.**Pass-the-Hash (PtH) Attack**: An attacker captures the NTLM hash of a user and uses it to authenticate as that user without knowing the actual password.
2.**Pass-the-Ticket (PtT) Attack**: An attacker captures a Kerberos ticket and uses it to authenticate as a user without knowing the user's password.
3.**NTLM Relay Attack**: An attacker intercepts an NTLM authentication request and relays it to another server, gaining unauthorized access.
4.**NTLM Downgrade Attack**: An attacker forces a client and server to use a weaker version of NTLM, making it easier to crack the password hash.
Understanding the vulnerabilities associated with NTLM authentication is crucial for securing Windows environments. By implementing the recommended mitigation techniques, organizations can significantly reduce the risk of NTLM-related attacks.
**첫 번째 응답**은 **클라이언트와 도메인**으로 구성된 **문자열**을 사용하여 **NT 해시**의 **해시 MD4**를 **키**로 사용하여 **HMAC\_MD5**를 사용하여 암호화하는 것으로 생성됩니다. 그런 다음, **결과**는 **도전**을 암호화하는 데 사용될 **키**로 사용됩니다. 여기에는 **8바이트의 클라이언트 도전**이 추가됩니다. 총: 24 B.
**성공적인 인증 프로세스를 캡처한 pcap**이 있다면, 도메인, 사용자 이름, 도전 및 응답을 얻기 위해이 가이드를 따라 해시를 크랙해 볼 수 있습니다: [https://research.801labs.org/cracking-an-ntlmv2-hash/](https://research.801labs.org/cracking-an-ntlmv2-hash/)
**피해자의 해시를 얻은 후**, 해당 해시를 사용하여 **피해자를 가장하는** 것이 가능합니다.\
해당 **해시를 사용하여 NTLM 인증을 수행하는 도구**를 사용해야 합니다. **또는** 새로운 **세션 로그온**을 만들고 **LSASS**에 해당 **해시를 삽입**하여 **NTLM 인증이 수행될 때 해당 해시가 사용**될 수 있습니다. 마지막 옵션은 mimikatz가 수행하는 작업입니다.
이렇게 하면 mimikatz를 실행한 사용자에게 속하는 프로세스가 시작되지만, 내부적으로 LSASS에 저장된 자격 증명은 mimikatz 매개 변수 내에 있습니다. 그런 다음 해당 사용자처럼 네트워크 리소스에 액세스할 수 있습니다 (`runas /netonly` 트릭과 유사하지만 평문 암호를 알 필요가 없습니다).
* **atexec.exe** (이 경우 명령을 지정해야 합니다. cmd.exe와 powershell.exe는 대화형 셸을 얻기 위해 유효하지 않습니다)`C:\AD\MyTools\atexec_windows.exe -hashes ":b38ff50264b74508085d82c69794a4d8" svcadmin@dcorp-mgmt.dollarcorp.moneycorp.local 'whoami'`
이 함수는 **다른 함수들을 혼합**한 것입니다. 여러 **호스트**를 전달하고, 어떤 사람들을 **제외**하고, 사용하고자 하는 **옵션**을 **선택**할 수 있습니다 (_SMBExec, WMIExec, SMBClient, SMBEnum_). **SMBExec**와 **WMIExec** 중 **어떤 것**을 선택하더라도 _**Command**_ 매개변수를 제공하지 않으면 **권한이 충분한지**만 확인합니다.