哈希传递(Pass the Hash)攻击

作者:Sec-Labs | 发布时间:

哈希传递攻击

ebdd31b422234327

 

我们每天都会听到有关漏洞的消息,有时甚至会听到系统遭到破坏的消息,因此攻击者采取了哪些阶段以及他如何渗透到整个系统都是未知的。 让我们清楚这一点。

从攻击者的角度来看,危害系统/网络涉及 5 个阶段。 他们是:

  1. 侦察 :它用于收集有关系统的信息,并且在其操作中可以是主动的也可以是被动的。 因此,攻击者会尝试收集尽可能多的信息,以便尽可能有效地瞄准系统。
  2. 扫描和枚举 :攻击者执行扫描以识别系统中的任何漏洞。
  3. 获得访问权限: 一旦攻击者发现了系统的漏洞,他或她就可以利用它们来破坏系统。
  4. 维护访问/开发后: 在开发之后,攻击者要么试图保持对系统的访问,要么试图入侵网络上的另一个系统以获得额外信息。
  5. 清除踪迹: 攻击者销毁其行为的所有证据,这样就没有人可以确定谁破坏了系统以及获取了哪些信息。

出于本博客文章的目的,我们将讨论攻击者可以在后开发阶段使用的一种攻击类型。 这种攻击是后开发阶段横向移动阶段的一部分。

后渗透

攻击者的主要目标是启动 shell。 一旦他做到这一点,可能性是无穷无尽的,其中很大一部分取决于系统管理员已经实施的安全加固程序。

在 shell 被弹出并被称为会话被打开之后,对手采取的任何行动都将被称为后期利用。 他可以安装恶意软件,甚至在受害者关闭计算机后采取措施保持持久性,甚至泄露数据。

横向运动

acab623434234337

 

您会同意我的观点,即被攻击者破坏的计算机/主机不会是网络中唯一的主机。 网络包括多台(至少 2 台)计算机,每台计算机都能够相互通信。 横向移动是指攻击者移动或危害网络中其他计算机的过程。 在此过程中,他可能会破坏网络中其他更敏感的部分。

传递哈希是攻击者在 Windows 环境中横向移动期间使用的一种后期开发技术。

介绍

当您登录到具有多个用户帐户或公司网络的计算机时,您需要提供用户名和密码。 您认为 Windows 会简单地将您的密码与存储在数据库中的密码进行比较吗? 不,那是不安全的。 相反,它所做的是找到密码的 NTLM 哈希,并将其与用户名一起存储在名为 LSASS.exe 的文件中。 您会想到两个问题。

  1. 为什么我们的密码是散列的?
  2. 为什么它会将您的密码存储在文件中?

它经过哈希处理,因此即使您的计算机受到威胁,攻击者也不会立即获得明文密码。 至于第二部分,它存储在一个文件中,因此您不必为必须访问的每个功能输入您的凭据。 您可能不会考虑这在您的家庭环境中的重要性,但在公司环境中,有多个服务和任务在运行。 作为用户,要与他们互动,您必须提供您的凭据。 如果您必须每 5 分钟输入一次凭据,这很容易让人感到沮丧。 这是 SSO 的概念,您只需输入一次凭据,就可以访问根据您的用户角色允许的服务,而无需再次输入密码。

NTLM

现在这可能会让您感到惊讶,但您的密码永远不会通过网络发送。 但是你怎么能证明自己呢? NTLM 是一种身份验证协议,它使用质询/响应模型对用户进行身份验证。 让我们了解如何。

假设用户想要访问服务器的服务。 服务器向用户发送质询。 我们知道现在我们的密码已经过哈希处理并存储在 LSASS.exe 文件中。 质询使用我们密码的 NTLM 哈希加密,并连同我们的用户名一起发送回(作为对质询的响应)服务器。

质询(使用用户的 NTML 哈希加密)-> 响应

现在服务器有了我们的用户名、响应和 它发送给我们 的原始挑战。 它将它们发送到域控制器。

域控制器是一个单独的实体,拥有我们的用户名和我们密码的 NTLM 哈希值。 它从服务器接收用户名、响应和原始挑战。 它获取用户名,并找到用户对应的 NTML 散列。 它采用 NTLM 哈希并使用该哈希解密响应。 然后它将解密的响应与原始挑战进行比较。 如果它们相等,则用户通过身份验证。

注意: 如果哈希与用于加密挑战的哈希相同,则解密后的响应应与原始挑战相同。

abf79c1879234350

 

简而言之,挑战/响应模型是如何工作的。 这不受网络嗅探攻击的影响,因为散列和密码都不会与服务器或域控制器共享。

但这打开了一种称为传递哈希的单独类型的攻击。

什么是传递哈希?

正如我们刚刚了解到的那样

  1. 我们的密码经过哈希处理并存储在 LSASS.exe 文件中。
  2. 我们的哈希用于加密质询,然后作为响应发送。

如果对手能够破坏机器,这可以被对手用来为自己谋取利益。

传递哈希是一种攻击,其中对手使用或发送密码哈希而不是密码本身来验证自己。

他必须采取的第一步是转储存储在 LSASS.exe 文件或 SAM 文件中的 NTLM 哈希。

然后他可以使用这些散列来验证自己。 完成此任务的完美工具是 Mimikatz

ba3f71c519234407

 

补救措施

识别 Pass the Hash 攻击是相当困难的。 但是,您可以使用几种方法来防止此类攻击。

如果您在您的组织中使用 SSO,您可以做的是启用多重身份验证。 这将确保即使您的凭据已被转储和泄露,攻击者也无法破坏其他系统。

您可以使用的另一种补救技术是应用最小特权原则。 它在基于云的环境中很常见,并且是在企业环境中使用的绝佳策略。

最小权限原则指出,用户应该只能访问完成其工作所需的那些文件、进程和服务,仅此而已。

标签:学习笔记, 哈希传递攻击