# NTLM 认证

在之前的内容中，我们接触到了多种类型的凭证，包括了明文密码、NTLM 哈希、AES 256 密钥、NetNTLM 等。掌握明文密码显然是一项优势，然而，我们不是总能获得明文密码的，更多时候我们会得到 NTLM 哈希。如果用户设置了强密码，我们就无法破解 NTLM 哈希并快速恢复明文密码，但幸运的是，与许多其他类型的哈希不同，我们可以通过多种方式利用 NTLM 哈希进而实现认证。

### **NTLM**

  
我们之前讨论过了 Kerberos 身份认证，它是 NTLM 身份认证的后继者。Kerberos 认证是基于票据的，而 NTLM 认证则是基于**质询响应**的机制。NTLM 是一套 Microsoft 安全协议，用于验证用户身份并确保其活动的完整性和机密性，当客户端通过 IP 地址向服务器进行身份认证时所使用。虽然 Kerberos 协议是当今 AD 的默认身份认证协议，NTLM 认证仍被支持，一些应用程序仍然偏好 NTLM 身份认证，而且如果 Kerberos 在某些情况下无法对用户进行身份认证时，NTLM 将作为备份。

NTLM 身份认证协议由多个步骤组成，下面将对其进行深入说明。

1：用户访问客户端电脑，提供**域名**、**用户名**、**密码**。客户端计算出密码的哈希并将明文用户名发送到服务器。

2：服务器生成一个称为**挑战**的随机数，并将其发送回客户端。

3：客户端用用户密码的哈希对挑战进行加密，并将结果 (**响应**) 返回给服务器。

4：**服务器**向**域控制器**发送**用户名**、**挑战**和**响应**

5：域控制器根据用户密码查找哈希，它比较加密的挑战。

6：服务器将响应发送回客户端，认证成功

[![image.png](https://raven-medicine.com/uploads/images/gallery/2023-05/scaled-1680-/1prmpQfqGoZscY7e-image.png)](https://raven-medicine.com/uploads/images/gallery/2023-05/1prmpQfqGoZscY7e-image.png)