Hacker News 中文摘要

RSS订阅

Kerberoasting攻击 -- Kerberoasting

文章摘要

Kerberoasting是一种存在已久的Windows系统漏洞,尽管其技术并不新颖,但影响巨大。2024年5月,该漏洞被用于对Ascension Health医院系统的勒索软件攻击。尽管微软已将其称为“低技术、高影响”漏洞,但直到2025年,该问题仍未得到有效解决,凸显了关键生产软件中仍存在严重安全隐患。

文章总结

Kerberoasting:微软Active Directory中的老旧加密漏洞

在2025年,微软Active Directory(AD)中的一个被称为“Kerberoasting”的漏洞仍然存在,尽管它已经存在了十多年,甚至更久。这个漏洞之所以令人震惊,是因为它依赖于AD中非常老旧的加密技术,尤其是RC4加密算法。尽管微软已经发布了一些指南来帮助缓解这种攻击,但问题依然严重,甚至在2024年5月的Ascension Health医院系统的勒索软件攻击中被利用。

什么是Kerberos和Active Directory?

微软的Active Directory(AD)是一个广泛用于Windows网络中的集中式身份验证系统,控制着谁可以访问哪些网络资源。AD使用Kerberos协议进行身份验证,该协议最早于1989年推出。尽管AD本身在1999年才正式推出,但它仍然支持许多老旧的加密技术,这些技术在当今的网络安全标准下显得非常脆弱。

Kerberoasting的工作原理

当用户请求访问某个网络资源时,AD服务器会生成一个加密的“票据”(ticket),该票据使用服务账户的密码进行加密。理想情况下,服务账户的密码应该是一个随机生成的强加密密钥。然而,有时网络管理员会错误地将服务账户与普通用户账户关联,并使用人工生成的密码。由于这些密码通常不够强大,攻击者可以通过离线破解的方式获取服务账户的密码,从而完全控制该服务。

为什么Kerberoasting如此危险?

Kerberoasting的危险性在于,攻击者只需获取一个加密票据,就可以在离线环境中使用强大的计算资源(如GPU)进行密码破解。如果服务账户使用的是RC4加密算法,破解速度将大幅提升。根据测试,使用RTX 5090显卡,攻击者每秒可以尝试4.18亿次密码猜测,这使得破解变得极其容易。

微软的应对措施

尽管微软在2024年10月发布了一篇博客文章,建议管理员使用自动密钥分配、选择强密码并禁用RC4,但这些措施显得非常被动。微软并未采取更积极的措施,如强制禁用老旧的加密技术或强制升级配置。这使得Kerberoasting攻击仍然是一个严重的威胁。

结论

Kerberoasting漏洞的存在提醒我们,老旧的加密技术在当今的网络安全环境中已经不再适用。微软需要采取更积极的措施来消除这些漏洞,而不是依赖于管理员的自觉性。毕竟,网络安全已经不再是1999年或2014年的水平,企业需要更强大的保护措施来应对日益复杂的网络威胁。

评论总结

评论内容总结:

  1. 对微软的批评

    • 有评论认为微软为不称职的管理员提供了过多的权限,导致安全问题。
      • 引用:"Microsoft is guilty of giving incompetent administrators enough rope to hang themselves." (评论1)
  2. Kerberoasting攻击的讨论

    • 评论指出文章对Kerberoasting攻击的描述有误,攻击针对的是TGS(Ticket Granting Service)而非TGT(Ticket Granting Ticket)。
      • 引用:"Kerberoasting abuses Ticket Granting Service tickets (TGSs, which are used to request access to a registered service in Active Directory), not Ticket Granting Tickets (TGTs, which are used to prove identity to a Domain Controller and request TGSs)." (评论2)
    • 评论还提到,弱密码的服务账户容易被破解,导致权限提升。
      • 引用:"If you have a weak service account password, then TGS can be cracked to obtain the service account's password." (评论2)
  3. 技术细节与缓解措施

    • 评论详细讨论了Kerberoasting攻击的技术细节,并提出了多种缓解措施,如使用托管服务账户、应用最小权限原则、禁用RC4等。
      • 引用:"Use managed or group managed service accounts instead of manually managed ones where possible." (评论2)
      • 引用:"Disable RC4 in your environment if possible via Group Policy." (评论2)
  4. 对文章的评价

    • 有评论认为文章写得很好,易于理解,没有使用不必要的术语。
      • 引用:"A well written, easy to understand article on cryptography that isn’t using unnecessary jargon." (评论4)
  5. 对微软的辩护

    • 评论指出,不能简单地将问题归咎于微软,许多组织由于资金问题无法升级旧系统,导致仍然使用不安全的加密方式。
      • 引用:"I realize I might have been late to the party. As other comments have said, its not as easy as blaming Microsoft, though this is a popular take." (评论6)
  6. 对攻击过程的疑问

    • 有评论对攻击过程提出了疑问,不理解为什么攻击者不能直接通过受感染的机器正常连接服务。
      • 引用:"My question is: why can't the attacker just direct the compromised machine to connect to the service normally?" (评论8)
  7. 对Active Directory的批评

    • 评论认为Active Directory是90年代的遗留系统,应该被淘汰,尤其是在IT部门仍然使用域管理员密码的情况下。
      • 引用:"I think AD is a relic of the 90s that should be retired." (评论9)
  8. 对Kerberoasting的持续关注

    • 评论指出Kerberoasting在现实世界中仍然频繁出现,企业可能低估了人为因素在保护服务账户中的重要性。
      • 引用:"Kerberoasting keeps popping up in real-world incidents. Do you think enterprises underestimate the human factor in securing service accounts more than the technical exploits?" (评论10)
  9. 对加密方式的讨论

    • 评论详细讨论了Active Directory中的加密方式,并提供了检测不安全账户的PowerShell脚本。
      • 引用:"The allowed encryption types are set via the msDs-supportedEncryptionTypes attribute on each individual AD account." (评论11)
  10. 对哈希破解的澄清

    • 评论澄清了哈希计算与破解的区别,指出每秒计算4.18亿哈希并不意味着能够破解特定哈希。
      • 引用:"Computing a hash means converting a given input into its hash. Cracking a hash means starting from the given hash and determining what the input must have been." (评论12)
  11. 对AD协议中盐的使用

    • 评论询问AD协议中是否使用了盐。
      • 引用:"Padme: AD uses salts in its protocol, right?" (评论13)