当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 传递哈希攻击解释

作者:精品下载站 日期:2024-12-14 08:21:50 浏览:12 分类:玩电脑

传递哈希攻击解释


[玩转系统] 传递哈希攻击解释

哈希传递 (PtH) 是一种已有数十年历史的攻击技术,但至今仍是网络犯罪分子武器库中的宝贵工具。事实上,传递哈希是最难阻止的攻击之一。为什么?

简而言之,通过传递哈希值,攻击者可以在不知道帐户的明文密码(用户登录时键入的实际字符串)的情况下入侵 Active Directory 帐户。相反,黑客所需要的只是密码的哈希值。使用它,他们可以在网络中横向移动,同时逃避检测,悄悄提升他们的特权,直到实现他们的目标。

在这篇文章中,我将解释什么是密码哈希、哈希传递攻击的工作原理以及您可以采取哪些步骤来保护您的组织免受这些攻击。

什么是密码哈希?它们有什么用?

密码哈希是密码的加密版本。例如,明文密码“password123”可能具有哈希值“7383946155”。密码哈希是由具有两个重要特征的算法创建的:

  • 它是可重复的——相同的密码将始终生成相同的哈希值。
  • 它是单向——虽然将密码转换为哈希值很容易,但无法将哈希值转换回密码。

密码哈希提供了一种对用户进行身份验证的方法 - 确定他们是否是他们声称的人 - 无需通过网络发送明文密码。特别是,Microsoft NTLM 质询-响应身份验证协议使用密码哈希。以下是当我尝试登录公司网络时 NTLM 身份验证的进行方式:

  1. 我在计算机上输入用户名和明文密码。
  2. 我的计算机通过标准哈希算法运行我输入的密码,以获取我的密码哈希值,这将在步骤 5 中用到。
  3. 我的计算机向最近的域控制器 DC 发送登录请求,其中包括我的用户名,但包括我的密码,也包括我的密码哈希。
  4. DC 发回一个随机数,称为登录质询
  5. 我的计算机使用密码的哈希值对登录质询进行加密,并将结果(响应)发送回 DC。
  6. DC 拥有域中所有用户的密码哈希数据库,这些数据库是使用我的客户端计算机使用的相同哈希算法创建的。它使用步骤 3 中发送的我的用户名的密码哈希来加密登录质询,并将结果与我的计算机发送的响应进行比较。如果它们匹配,则证明我输入了正确的密码,并且我已通过身份验证。
  7. 为了避免每次访问其他 IT 资源时都必须输入密码,我的计算机将密码哈希存储在内存中,并代表我使用它来启用单点登录 (SSO)。

现在您可以了解为什么 NTLM 被称为挑战-响应协议以及为什么密码哈希对于 NTLM 身份验证过程至关重要。

哈希传递攻击是如何工作的?

哈希传递攻击使攻击者能够跳过此过程的步骤 1 和 2。如果他们有用户的密码哈希,则不需要明文密码;他们可以使用 mimikatz 等黑客工具发送登录请求并正确响应 DC 的登录挑战。答对了!他们经过身份验证,并且像我一样,享受 SSO 的好处。

现在,攻击者可以自由地横向移动并升级他们的权限。除此之外,他们还可以从他们登录的系统的 LSASS 内存中获取其他哈希密码。每台新机器可能有更多的哈希值,包括特权哈希值。发生这种情况的一种方式是,拥有特权帐户的 IT 专业人员在本地登录用户的计算机或使用 RDP 远程解决问题,将密码哈希值留在内存中。如果对手到达了高权限管理员或服务帐户登录的系统,那么游戏就结束了——他们获得了对 Windows 网络最关键区域的访问权限。他们可以窃取敏感数据、安装远程访问工具 (RAT)、更改组策略以传播恶意软件或勒索软件等等。

那么,攻击者如何获取用户的密码哈希值呢?好吧,正如上面的步骤所示,我的机器和 DC 都有密码哈希。具体来说,密码哈希值存储在本地计算机的本地安全机构子系统 (LSASS) 进程的内存中以及域控制器上的 ntds.dit 数据库中。如果对手已经获得了计算机的管理员权限,他们可以从 LSASS 进程内存中提取密码哈希值;要从 DC 获取哈希值,他们可以使用 PowerSploit NinjaCopy 等工具窃取文件,并使用 DSInternals PowerShell 模块提取哈希值。

如何防御哈希传递攻击?

由于多种原因,防御传递哈希攻击很困难。一种选择似乎只是摆脱 NTLM 身份验证。毕竟,NTLMv1 可以追溯到 1993 年,而 NTLMv2 则在几年后发布。它们的弱点是众所周知的,并且不仅限于通过哈希攻击。 (有关详细信息,请参阅有关 NTLM 身份验证的这篇博客文章。)因此,在 Windows 2000 中,Microsoft 使用更强大的协议 Kerberos 取代了 NTLM 作为默认身份验证协议。然而,许多企业应用程序仍然需要 NTLMv1 或 NTLMv2 身份验证,因此组织通常无法简单地禁用这些协议。此外,即使可以消除 NTLM,Kerberos 也容易受到称为“传递票证”的类似攻击,其中攻击者使用窃取的 Kerberos 票证(而不是密码散列)进行身份验证,而无需知道用户的密码。

尽管如此,仍然有一些可靠的策略可以帮助您保护您的组织免受哈希传递攻击。它们包括以下内容:

阻止攻击者获得立足点来发起传递哈希攻击。

要执行哈希传递攻击,对手必须在您的网络中获得立足点。因此,你能做的一切将它们拒之门外都是有利的。最佳实践包括使用一种工具来审核登录活动,并就失败的登录尝试和其他可能的渗透网络尝试向您发出警报。要了解有关识别系统弱点和制定适当计划的更多信息,请阅读 NIST 网络安全框架。

通过攻击路径管理限制横向移动。

使用帐户的密码哈希,攻击者可以直接或间接访问用户有权访问的所有 IT 资源。不幸的是,在许多组织中,这意味着攻击者只需几个步骤就可以从受感染的用户帐户转到域管理员,这要归功于 Windows Server 以前版本多年的技术债务、IT 人员配置的变化、深度嵌套的权限和普遍缺乏有关保护 Active Directory 的知识。了解和阻止这些攻击路径的唯一方法是通过攻击路径管理和攻击路径监控。有关详细信息,请参阅电子书“通过攻击路径管理提升 Active Directory 安全性。 ”

到处使用防火墙。

要求所有计算机(包括服务器和工作站)都打开防火墙,无一例外。这将消除从一台主机到另一台主机的点对点子网跳转。

审核端点上的流量。

用户端点消耗网络资源;他们不应该产生流量。通过监控端点的流量产生,您可以看到受感染主机正在执行的哈希攻击。第三方解决方案可以自动监控工作站上的身份验证尝试,并提醒您可能的攻击。

保护您的零级资产。

第零层资产包括域控制器、备份服务器和其他在内存中运行高特权帐户的服务器,例如需要域管理员成员身份的服务帐户。为了防止这些帐户受到对手通过散列攻击的危害,请务必将这些资产放置在受保护的子网中,使用防火墙来管理流量,并允许每个服务器仅与它们正常运行所需的其他服务器和服务进行通信。一个起点是微软的企业访问模型。

考虑实施 Credential Guard。

Windows Defender Credential Guard 在 Windows Server 2016 中引入,使用基于虚拟化的安全性来保护 NTLM 密码哈希以及其他“秘密”,例如 Kerberos 票证授予票证和应用程序存储的凭据。这些秘密是隔离的,只有特权系统软件才能访问它们。

请记住,Credential Guard 有许多先决条件和缺点。设备的 BIOS 必须支持虚拟化扩展,并且该服务仅在使用可信平台模块 2.0 和统一可扩展固件接口锁的设备上运行。此外,需要 Kerberos 数据加密标准和 Kerberos 无约束委派的应用程序也存在问题,并且需要访问哈希的 NTLMv1 和第三方安全工具都将无法工作。

向 RDP 说“RIP”。

使用远程桌面协议 (RDP) 连接到 Windows 网络中的任何计算机,会将您的密码哈希值留在内存中,攻击者可以在内存中检索该密码并在 PtH 攻击中使用。 RDP 无处不在,因为它是免费的,但谨慎的做法是寻找更现代、更安全的远程访问工具。

使用托管服务帐户 (MSA)。

服务帐户的密码哈希可用于 PtH 攻击。降低此风险的一个好方法是使用独立托管服务帐户 (sMSA) 或组托管服务帐户 (gMSA)。 MSA 提供自动密码管理,以确保服务帐户密码(及其哈希值)定期更改,并且限制 gMSA 交互使用。因此,它们可以使哈希攻击变得不那么有用。

利用 Microsoft LAPS。

Microsoft 的本地管理员密码解决方案 (LAPS) 将极大地提高您的安全性。为了简单起见,组织通常为所有端点上的本地管理访问设置相同的密码。这是一个很大的安全风险,因为窃取一台计算机上本地管理员的哈希值的对手可以在其他所有计算机上的哈希攻击中使用它。 LAPS 可以更轻松地管理数百或数千台设备上的密码,因此可以方便地在每台计算机上使用唯一的本地管理员密码。

使用特权访问工作站 (PAW)。

系统管理员不应使用其特权帐户登录工作站,甚至不应使用其个人计算机,因为这样做会将密码散列留在内存中,供攻击者窃取并通过散列攻击使用。相反,特权帐户应该只登录安全的管理工作站。这些工作站甚至可以是一次性虚拟工作站,可以自行拆卸并从受控子网中的安全映像启动。当用户注销时,机器的虚拟足迹将被破坏,不会留下任何凭据供攻击者窃取。对服务器的访问应基于用户的角色;例如,SQL 管理员只能访问 SQL Server 计算机,而不能访问任何其他服务器。

勤于修补。

多年来,许多管理员一直被灌输最新的补丁,这是有充分理由的:保持端点修补可以减少攻击者访问它们的机会。利用自动补丁和库存解决方案有助于降低违规风险。 您还应该确保及时了解 CISA 站点上的已知漏洞,因为有时供应商需要很长时间才能创建和发布补丁,而您可能需要在此期间采取措施保护您的系统。我要监控的另一个站点是 SANS.edu 互联网风暴中心,它提供有关研究人员当前看到的攻击的信息,这可以帮助您的团队做好应对攻击的准备。

结论

防御哈希传递攻击以及许多其他网络威胁需要采用分层的安全方法。 Microsoft 提供了一些有价值的免费工具,但对于可靠的纵深防御策略,投资第三方解决方案至关重要。特别是,您需要能够彻底审核登录活动并执行攻击路径管理和攻击路径监控。您的目标应该是降低对手在您的网络中建立立足点的能力,限制他们通过窃取给定密码哈希值造成的损害,最大限度地减少他们在内存中找到的密码哈希值的数量(尤其是那些强大的管理帐户) ,并及时检测并响应可能表明正在进行哈希攻击的活动。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯