当前位置: 首页 > 科技观察

哈希传递攻击仍然是一种威胁

时间:2023-03-14 15:39:06 科技观察

介绍哈希传递是一种非常古老的技术,最初由PaulAshton于1997年发表。不过,哈希传递已经存在了10多年。它被大量用于大多数勒索软件攻击,例如在马斯特里赫特大学。但为什么这仍然是一个问题?首先,让我们对这次攻击有一个高层次的概述。传递哈希是一种技术,攻击者在获得本地管理员权限后,可以通过该技术从受感染的工作站或服务器上的内存中捕获NT(LM)哈希。使用这些被盗用的凭据,他们可以代表被盗用的用户打开一个新的身份验证会话,并可以在以后这样做。使用PsExec、WinRM、RDP等来跟踪用户的横向移动。哈希传递攻击没有真正的修复方法,因为它使用SSO(单点登录)协议。任何使用SSO的系统都容易受到类似的攻击,例如PtH。因为大多数组织使用ActiveDirectory作为身份服务,而AD以SSO为主要功能。这意味着许多组织必须处理这个问题,否则,他们无法很好地防止传递哈希攻击。SSO是一种身份验证过程,它允许用户使用一组凭据登录以访问网络上的资源,而无需再次输入密码。假设您以用户Bob(DBA)的身份登录,并希望访问SQL服务器上的SQL数据库。而不是再次输入密码。您只需要单击“连接”。按下连接按钮后。您已登录并可以访问所有受监控的SQL数据库。您不必再次键入密码的原因是Windows将您的凭据缓存在内存中以提供SSO体验。这也是为什么您不能完全防止传递哈希攻击的原因,因为这意味着您必须终止单点登录。但是,仅仅因为很难防止这种攻击并不意味着您对此无能为力。事实上,微软已经在这方面提供了很多指南,可以减轻这种攻击。凭据访问-T1003在攻击者可以执行传递哈希攻击之前。首先需要获取凭据,所有凭据都存储在LSASS进程内存中,因此每次用户登录时,他或她的凭据都会缓存在内存中,以提供我们前面讨论的SSO体验。当用户通过RDP在本地登录或通过Runas在另一个帐户下执行操作时,凭证会被缓存。下面是我们从WINDOWS2012机器上的内存中提取凭据的示例。现在让我们假设我们已经设法诱骗爱丽丝登录到我们已经被黑的机器上,那么会发生什么?因为Alice已经登录到我们的跳板机上了。她的凭据丢失了,这意味着我们现在可以从内存中提取它们并开始模拟Alice以代表她访问资源。哈希传递–T1705我们现在拥有Alice的凭据,因此我们现在可以开始执行哈希传递攻击来冒充她并代表她访问所有资源。现在,由于Alice可以访问FILESERVER,我们可以作为用户Alice横向移动到该服务器。由于我们对FILESERVER拥有完全的管理权限,因此我们现在也可以将凭据转储到该服务器。现在我们已经设法从Bob那里获得了凭据,因为他最近登录了这个服务器。Bob是域管理员,所以如果我们冒充Bob。我们可以触摸任何东西。和以前一样,我们现在要执行哈希传递攻击来冒充Bob并代表他访问资源。数据泄露例如,我们现在可以横向移动到域控制器服务器,这也被称为最关键的服务器,因为它保存着每个用户和计算机的所有凭据。获得对域控制器的访问权限是一回事,但攻击者的最终目标是窃取数据。攻击者不关心他们是否成为DA或访问DC。当数据被泄露时,它可能会影响您的业务。这是一个我们可以访问SQL服务器的示例,因为我们已经是域管理员,但如前所述。DA不重要,重要的是数据。下面是存储在硬盘上的所有SQL数据库的示例。可能这些数据对我们来说有很大的价值,如果数据泄露出去,可能会对我们的业务造成影响。检测检测凭据访问和传递哈希技术非常困难。如果它像我们想象的那么简单就好了。那么大多数组织已经制定了检测规则。一件好事是,Microsoft发布了DefenderATP,这是一种利用云功能的EDR解决方案。如果一定要选择EDR解决方案。我建议选择DefenderATP。这是一个很好的解决方案,可以提高所有端点的可见性,并让您的生活更加轻松,因为您可以通过门户获得永恒的警报。下面是我们从LSASS进程内存中提取凭据后收到的示例。上面的警报与另一个事件pass-the-hash有关。建议的第一件事是确保您做的是基础工作,即确保所有IT管理员都有一个单独的帐户来执行他们的管理任务,以及您是否希望这些任务完美无缺地完成。甚至建议为所有管理任务使用单独的加固工作站。减轻传递哈希攻击的最佳方法是查看Microsoft管理层模型-一种通过确保较高层无法登录到较低层来减轻凭据盗窃的安全模型,反之亦然。第0层=可以访问网络上所有关键服务器的域管理员或同等人员第1层=可以访问重要服务器但不是“关键”服务器的服务器管理员/系统管理员第2层=可以访问客户工作站但不是单独的工作站管理员/帮助台为第1层和第0层管理员加固的工作站现在您可能想知道当您实施它时这个层模型是什么样子的。也许您还想知道您的组织是否有适当的安全措施来减少散列传递。部署管理模型可能需要一段时间,但这是值得的。这是如何在AD中设计图层模型的示例。我们在这些OU中创建了一些OU。它包含不同的对象。举个例子。在第0层OU中,我们有不同的子OU。您可以看到设备和第0层服务器。在设备OU中,它包含一个单独的强化工作站,供您的域管理员或同等人员使用。在Tier0Servers中,它包含最关键的服务器对象,如DomainControllers、AzureADConnect、ADFS、PKI、SCCM等。现在还有另一个OU称为Tier1,它包含各种子OU,以及设备和设备一级服务器。在设备OU中,它包含服务器管理员的独立加固工作站和第一层服务器OU。它包含所有重要的服务器,但不包括关键服务器。在你指定之后。需要创建GPO并将其链接到设备和第1层(第1层)服务器OU,该OU拒绝域管理员和同等人员(第0层管理员)的登录权限。在这里您可以看到我已经创建了一个GPO,其中拒绝设备和一级服务器的登录权限。所有0级管理员都无法登录到第1层管理设备或第1层服务器。拒绝从网络访问此计算机拒绝作为批处理作业登录拒绝作为服务登录拒绝本地登录拒绝通过远程桌面服务登录让我们确认我们无法登录到第1层资产。例如,我们正尝试登录到第1层中的FILESERVER。访问被拒绝,因为我们的GPO拒绝登录访问。现在,当我们尝试使用PsExec登录到文件服务器时,我们也被拒绝了。最后但并非最不重要的。还有第二层,其中包含所有客户的工作站。该层由服务台/工作站管理员管理。现在创建另一个GPO,但这一次需要拒绝登录权限。我们必须指定第0层和第1层管理员都不允许登录到客户的工作站和第2层管理员的单独工作站。拒绝从网络访问此计算机拒绝作为批处理作业登录拒绝作为服务登录拒绝本地登录拒绝通过远程桌面服务登录现在,当我们尝试以第0/1层管理员身份通过RDP连接到客户端工作站时,我们的访问将被拒绝,因为客户的工作站位于第2层区域。我经常看到的几个示例可能会绕过层模型,GPO链接到第0层资产,其设置可以由第1层的用户修改。确保所有GPO链接到域对象和所有第0层资产由0级管理员管理。此外,如果您在DomainAdmins中拥有服务帐户,并且这些服务帐户在具有DA权限的服务器上作为服务运行,那么知道这一点是件好事。这意味着您需要将服务器视为第0层资产。总结行政层模型是一种很好的安全架构,可以防止凭据被盗,因为较高层无法登录较低层,反之亦然,这意味着例如域管理员凭据永远不会在打印服务器或客户端工作站上公开。没有什么是完美的,但部署分层模型并在所有工作站和服务器上安装DefenderATP将使攻击者更加困难。如果您没有上述任何类似的安全措施。我们可能会得出结论,您根本没有实施散列传递缓解措施,这很好,但现在是实施它的时候了。