在电影中,黑客通常只需敲几下键盘,就能在几秒钟内访问整个网络。然而,在现实世界中,攻击者通常从一个低级用户帐户开始,然后努力获得额外的权限,从而允许他们接管网络。
获得这些特权的常用方法之一是散列传递攻击。
密码哈希的幕后花絮
为了了解散列传递攻击的工作原理,您必须首先了解如何使用密码散列。
当您为系统分配密码时,该密码实际上并未存储在系统中。相反,操作系统使用数学公式来计算密码的哈希值。哈希是存储的内容,而不是实际的密码。
当您登录系统时,身份验证引擎使用相同的数学公式计算您输入的密码的哈希值,并将其与存储的哈希值进行比较。如果两个哈希值相互匹配,则假定密码正确,并授予访问权限。
重要的一点是,就系统而言,哈希就是密码。
想要访问系统的攻击者并不总是需要知道用户的密码。他们只需要访问已经存储在系统中的密码哈希。从黑客的角度来看,访问密码哈希本质上与访问密码相同。
密码哈希是一种常用的密码保护技术,但并非所有密码哈希技术都是平等的。这篇文章概述了三种主要类型的密码散列技术以及如何更改您的 Active Directory 正在使用的一种。
当哈希被泄露时会发生什么
如前所述,想要接管网络的网络犯罪分子通常使用基本用户帐户作为他们的初始入口点。他们可能会从暗网上购买被盗的凭据,用窃取密码的恶意软件感染用户,或者使用任何数量的其他技术来获取用户的密码。
一旦黑客可以访问低级别用户的密码(实际密码,而不是哈希),他们的下一个优先级就是以该用户身份登录,然后寻找提升权限的方法。这就是传递哈希攻击发挥作用的地方。
Windows 操作系统中的散列传递流行度
Pass-the-hash 攻击可用于多种系统,但最常见的目标是 Windows 系统。Windows 之所以成为最受欢迎的目标,是因为 Windows 系统包含曾经登录过该系统的每个人的密码哈希。用户是在本地登录系统还是使用 RDP 会话并不重要。他们的哈希仍将存储在系统中。
当黑客登录系统时,他们会在系统中搜索可能存在的任何密码哈希,希望管理员在某个时间点登录过。如果不存在管理员级别的哈希,那么黑客将执行哈希喷射攻击,他们使用被盗的密码哈希登录到其他每个工作站并提取其密码哈希。
最终,攻击者可能会找到一个包含管理员级别哈希的系统。然后可以使用该哈希来访问域控制器、应用程序服务器、文件服务器和其他敏感资源。
防止网络中的散列传递攻击的五个步骤
不幸的是,由于这些攻击依赖于正常的操作系统身份验证机制,因此很难检测到 pass-the-hash 攻击。因此,采取措施防止散列传递攻击成功非常重要。您可以做几件事来降低通过哈希攻击成功的几率。
- 切勿使用特权帐户登录工作站
首先,您永远不应该使用特权帐户登录工作站。这包括 RDP 会话。最好设置专门的管理工作站,这些工作站已针对攻击进行了强化,并仅从这些工作站执行特权操作。
- 启用 Windows Defender Credential Guard
Windows 10 和 11 包含一个名为 Windows Defender Credential Guard 的工具。此工具在启用时使用硬件级虚拟化在沙盒环境中运行本地安全机构子系统服务。这个简单的操作使系统更能抵抗传递哈希攻击。
- 应用最少用户访问原则 最少用户访问
背后的主要思想是,用户不应拥有超出其工作所需的任何权限。虽然使用最少用户访问不会阻止传递哈希攻击,但如果攻击者确实设法破坏了一个或多个帐户,它将最大限度地减少损失。
- 使用防火墙阻止不必要的流量
最终用户设备可能需要访问域控制器、文件服务器和其他业务线系统。但是,一个工作站需要访问另一个工作站的情况很少见。如果您可以使用防火墙来阻止工作站到工作站的流量,那么您将降低攻击者进行成功传递哈希攻击所必需的横向移动的能力。
- 使用 Specops Password Auditor 访问您的密码运行状况
在攻击者发起散列传递攻击之前,他们需要一个初始入口点。这通常以被盗凭证的形式出现。一个名为 Specops Password Auditor 的免费工具可以帮助您在有风险的帐户遭到入侵之前识别它们。
Specops Password Auditor 不仅可以验证用户的密码是否符合安全密码的行业标准,它还可以将用户的密码与已知已泄露的密码列表进行比较。这样,您可以在此类帐户被利用之前强制更改密码。