Netwrix 1Secure 提供跨数据和身份的统一可见性——免费试用14天,享有完全访问权限。开始免费试用

资源中心博客

使用 Kerberoasting 提取服务账户密码

使用 Kerberoasting 提取服务账户密码

Mar 17, 2023

在我们的 LDAP 侦察文章中,我们探讨了攻击者如何进行侦察,以发现可在 Windows Active Directory(AD)域中作为目标的服务账户。现在,让我们来探索攻击者可以用来攻破这些账户并滥用其权限的一种方式:Kerberoasting。此技术之所以格外令人担忧,是因为它不需要在域中拥有管理员权限,执行起来非常容易,而且几乎无法被检测到。

Kerberoasting:概述

Kerberoasting 是一种攻击方式,它滥用 Kerberos 协议的功能来收集 Active Directory 用户帐户的密码哈希:任何已认证的域用户都可以通过指定帐户的 Service Principal Name(SPN)来为该帐户请求服务票据,而域控制器上的票据授予服务(TGS)将返回一张使用帐户密码的 NTLM 哈希进行加密的票据。

因此,一旦对手使用类似 LDAP reconnaissance 这样的战术发现了服务帐户的 SPN,他们就可以为所有这些帐户收集票据。通过将这些数据离线处理,他们可以执行暴力破解攻击来破解每个服务帐户的明文密码——且不会有被检测或帐户锁定的风险。

攻击者只需要几分钟就能获得对域的访问权限,收集票据并开始破解过程。之后就只剩等待了,直到他们攻陷一个或多个服务帐户。随后,他们就可以利用这些帐户窃取或加密敏感数据,或造成其他破坏。

攻击者会出于多种原因重点关注服务账户。首先,这些账户通常比其他 AD 用户账户拥有更广泛的权限,因此一旦攻破它们,攻击者就能获得更多访问权限。另外,服务账户的密码很少更改,因此攻击者很可能长期保持访问。要了解使用 Kerberoasting 能够获取的访问类型,请查看 Sean Metcalf 维护的 Active Directory SPNs 列表

Kerberoasting:工作原理

步骤 1:获取服务账户的 SPN。

。获取这些 SPN 的方法有很多,包括:

步骤 2。为服务账户 SPN 请求服务票据。

只需执行几行 PowerShell,就会返回服务票据,并将其存储到系统内存中。

      Add-Type –AssemblyName System.IdentityModel
New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken –ArgumentList ‘MSSQLSvc/jefflab-sql02.jefflab.local:1433’
      

Service Accounts_ticket

第 3 步。使用 Mimikatz 提取服务票据(service tickets)。

Mimikatz 将提取本地票据(tickets),并将其保存到磁盘以供离线破解(offline cracking)。只需安装 Mimikatz 并发出一条命令即可:

Service Accounts_extra ticket

第 4 步。破解票据(tickets)。

Kerberos 票据(tickets)使用与票据请求中指定的 SPN 相关联的服务账户的密码进行加密。Kerberoasting 工具提供了一个用于破解票据的 Python 脚本,并通过将密码哈希字典(dictionary)运行在票据上来获取其明文密码。为了确保你拥有运行该脚本所需的环境,可能需要进行一些配置,但 这篇博客 会介绍这些细节。

Image

此外,你也可以使用 GetUserSPNs 脚本收集 Kerberos 票据(tickets),然后用 Hashcat 密码恢复工具进行破解。

防范 Kerberoasting 攻击

Kerberoasting 攻击的主要缓解措施是确保所有服务帐户都使用足够长且足够复杂、难以破解的密码,并定期轮换,以尽量缩短攻击者成功破解密码后可能利用该帐户的时间。使用 group managed service accounts 是为分配可自动轮换的随机复杂密码的最佳实践。

由于攻击者是在离线状态下破解票据,因此该过程不会产生任何网络流量,使攻击的这一部分难以被检测到。但你可以通过使用 solid security solution 来监控 Active Directory,从而发现攻击的更早步骤。特别是,服务帐户通常会在相同的系统上以相同的方式使用,因此请留意异常的身份验证请求。此外,还应监控服务票据请求是否出现激增。

最后,安全专家也建议禁用基于 RC4 的加密。否则,即使用户帐户支持 AES 加密,攻击者仍然可以请求 RC4 加密的票据,而这种票据比使用 AES 加密创建的票据更容易被破解。

分享到

了解更多

关于作者

Jeff Warren

首席产品官

Jeff Warren 负责监督 Netwrix 的产品组合,在安全领域的产品管理与开发方面拥有十多年的经验。在加入 Netwrix 之前,Jeff 曾在 Stealthbits Technologies 领导产品团队;他运用自己作为软件工程师的经验,开发创新且面向企业规模的安全解决方案。凭借亲力亲为的工作方式以及解决棘手安全挑战的能力,Jeff 致力于打造真正可落地、行之有效的实用解决方案。他拥有特拉华大学(University of Delaware)的信息系统(Information Systems)学士学位。