Skip to main content

NTLM

在之前的模块中,我们有多种获取用户凭据的方法,包括明文密码和 NTLM 哈希。 知道明文密码是一个优势。 然而,我们有时只会得到明文密码,有时我们会得到 NTLM 哈希。 如果用户有一个强密码,我们就无法破解 NTLM 哈希并快速恢复明文密码。 幸运的是,与许多其他类型的哈希不同,我们可以通过多种方式利用 NTLM 哈希。 在谈论 NTLM 的滥用之前,我们应该了解一些有关 Windows 凭据的概念。

NTLM


我们已经讨论过 Kerberos 身份验证,它是 NTLM 身份验证的后继者。 NTLM 是一套 Microsoft 提供的一套安全协议,用于证用户身份并证用户活动的完整性和机密性的安全。 当客户端通过 IP 地址向服务器进行身份验证时使用它。 虽然 Kerberos 协议是当今 Windows 网络中的默认身份验证,但仍然支持 NTLM,一些应用程序仍然更喜欢 NTLM 的核心是一个单点登录 (SSO) 工具,它依靠质询-响应协议来确认用户,而无需用户提交密码。尽管 NTLM认证 存在已知漏洞,但仍被广泛部署,以保持与旧客户端以及服务器的兼容性。 尽管 Microsoft 仍支持 NTLM 认身份验证,但它已经被如果 Kerberos 取代在某些情况下无法对用户进行身份验证不过当 Kerberos 认证失败的时候会转而使用 NTLM 认证将作为备份

以下是 NTLM 身份验的流程协议由多个步骤组成,下面将对其进行深入说明。

1 - 1:用户访问客户端主机并电脑,提供域名、用户名密码客户端计算密码的加密哈希并无视实际密码,明文用户名以明文形式发送到服务器。

2 - 2:服务器生成一个 16 字节称为挑战的随机数,称为质询,并将其发送回客户端。

3 - 3:客户端使用用户密码的哈希对质询进行加密这个质询并将结果返回给服务器, 即响应

4 - 4:服务器向域控制器发送以下3项:用户名、发送给客户的质询、从客户端收到的响应

5 - 5:域控制器使用用户名来检索根据用户密码的哈希值查找散列。 它比较加密的质询与客户端的响应进行比较, 如果相同,则认证成功,并且通知服务器

6 - 6:服务器将响应发送回客户端。

image.pngimage.png

我们在先前的章节学习过了 Kerberos 认证协议,学员们可以自行体会一下其中的不同。