返回介绍

2 NTLM Relay

发布于 2024-09-13 00:14:50 字数 2460 浏览 0 评论 0 收藏 0

2.1 几种 Hash

为了避免混淆,总结下相关 Hash 的名词:

  • NT HashLM Hash 是用户密码的散列版本。 LM Hash 已经完全过时,本文不再讨论。 NT Hash 通常又被称为 NTLM Hash 。此名称与协议名称 NTLM 存在混淆。因此,当谈论用户的密码哈希时,将其称为 NT Hash
  • NTLM 是身份验证协议的名称。目前有两个版本的 NTLM 协议。
  • NTLMv1 响应和 NTLMv2 响应将是用于指代客户端发送的 Challenge 响应的术语,适用于 NTLM 协议的版本 1 和 2。
  • Net-NTLMv1Net-NTLMv2 是当 NT Hash 称为 NTLM 哈希时使用的伪新术语,用于将 NTLM Hash 与协议区分开来。由于我们不使用 NTLM Hash 术语,因此不会使用这两个术语。
  • Net-NTLMv1 HashNet-NTLMv2 Hash 也是避免混淆的术语,但也不会在本文中使用。

2.2 简介

顾名思义,NTLM Relay 攻击依赖于 NTLM 身份验证。攻击存在下面的场景中:攻击者设法在客户端和服务器之间处于中间人的位置,并简单地将信息从一端转发到另一端。

中间人的位置意味着:从客户端的角度来看,攻击者的机器是他想要认证的服务器,而从服务器的角度来看,攻击者是一个像其他想要认证访问资源的客户端。

当然,攻击者并不只是想对目标服务器进行认证,而是伪造成受害的用户身份来控制服务端。但是,由于攻击者不知道用户的密钥,即使他监听了对话,由于这个密钥从未在网络上传输,攻击者也无法提取任何信息。那么,它是如何工作的呢?

2.3 消息中继

在 NTLM 认证过程中,客户用其 NT Hash 加密服务器提供的 Challenge 来向服务器证明其身份。因此,攻击者唯一要做的就是让客户端做好加密,并把信息从客户端传给服务器,以及把服务器的回复传给客户端。

客户端向服务器发送的所有信息,攻击者都会收到,并把信息重放给真正的服务器。而服务器向客户发送的所有信息,攻击者也会收到,并将其原封不动的转发给客户端。

实际上,从客户的角度来看,在图的左侧,攻击者和它之间进行了 NTLM 身份验证。 客户端在其第一条消息中发送协商请求,攻击者以 Challenge 回复该请求。 收到此 Challenge 后,客户端使用其密钥构建 Response,并最终发送包含加密质询的最后一条身份验证消息。

但是,攻击者不能用这个交换做任何事情。因此,需要思路转向上图的右半边。实际上,从服务器的角度来看,攻击者是一个和其它用户一样的客户端。它发送了第一条消息要求认证,而服务器用挑战来回应。由于 攻击者向真正的客户发送了这个同样的 Challenge ,真正的客户端 用它的密钥对这个挑战进行了加密 ,并以一个 有效的响应 进行回复。因此,攻击者可以向服务器发送这个有效的响应。

这就是攻击的点所在。从服务器的角度来看,它不知道攻击者正在向客户重放其信息。

因此,从服务器的角度来看,这就是所发生的事情:

在这些交换结束时,攻击者在服务器上使用客户端的凭据进行身份验证。

2.4 Net-NTLMv1 and Net-NTLMv2

攻击者在 type 3 中转发的这个有效响应,通常称为 Net-NTLMv1 Hash 或 Net-NTLMv2 Hash。 但在本文中,它将被称为 NTLMv1 响应NTLMv2 响应 ,如前文所述。

确切地说,这并不是 Challenge 的加密版本,而是使用客户端密钥计算出的哈希值。 以 NTLMv2 为例, NTLMv2 Hash = HMAC-MD5(unicode(hex(upper(username+domain))), NT Hash) ,这种类型的哈希只能用暴力破解。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文