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:服务器将响应发送回客户端,认证成功