在本博客中,我们将讨论Kerberos预认证怎样减少密码攻击,也讨论Windows自带工具为什么不能提供禁用Kerberos预验证用户的账户列表。以及如何简单方便的检测和启用这些账户预认证。

快速识别攻击源(预防动态攻击竟如此高效)(1)

在Windows 环境下,Kerberos 认证使用密匙分发中心(KDC)来进行用户和服务器身份验证。

KDC接收Kerberos用户,使用其活动目录 服务进行数据库检测,并在成功验证后分发权证。这个机制听起来十分安全,但实际上真的安全吗?

Kerberos’认证过程仍会受到多种攻击,包括密匙攻击。启用Kerberos预认证则可以阻止动态密匙攻击。KDC在默认情况下对所有用户帐户进行预认证,但管理员经常因为测试、自动化等原因,在一些用户帐户上禁用Kerberos预认证。

预认证如何抵御动态密匙攻击

当提交权证申请时,预认证通过密码散列帮助用户识别身份。权证申请也包括具体内容,如用户时间戳、加密IP地址列表和权证有效期。当KDC收到申请,它通过AD密码散列解密申请。如果解密成功,KDC 开始分发权证;如果解密失败,则KDC向用户反馈错误。

启用Kerberos 预认证时,用户无法向KDC发送虚假请求,因为每个申请都有时间戳加密。发送申请时,KDC 检查每一个申请的时间戳,确保申请时间不会异常。另外,KDC 会根据服务器的时间去对比对每一个申请。如果申请时间戳晚于服务器时间5分钟,请求就会被拒绝。如果KDC读取的是有效时间,那可以确定为不是重复申请。

如果禁用预认证,攻击者可以脱机,执行暴力攻击破解密码,并在不留下踪迹的情况下完成身份验证请求。如果启用预认证,攻击者每一次尝试新密码,都必须同KDC连接。尽管攻击者可以多次执行,但每次预授权失败时都会有KDC日志。

如何识别已禁用的Kerberos预认证帐户?

【Windows自带工具】 vs. 【ADManager Plus】

如果您进行域风险评估,会显示有些用户账户已禁用Kerberos预认证。 但是,无法提供哪些用户已禁用。要列出禁用Kerberos预认证的用户帐户,您需要创建复杂的LDAP过滤器或PowerShell脚本,或者使用另一个工具。

使用ADManager Plus自定义报表功能,轻松点一下鼠标即可识别未认证用户账户,并且根据报表自行完成Kerberos预认证。

该报表将帮助您查找没有Kerberos预认证的用户帐户,这是在ADManager Plus的自定义报表中没有Kerberos预认证的用户帐户,如图所示。

快速识别攻击源(预防动态攻击竟如此高效)(2)

在ADManager Plus“用户报表”下,可找到没有Kerberos预认证的用户帐户报表。

如果一个账户需要预认证,您可以从报表中为这个账户开启Kerberos预认证, 如图所示。

快速识别攻击源(预防动态攻击竟如此高效)(3)

Kerberos预认证进行降低主动密码攻击的重要性不言而喻,我们看到了如何简单地检测未进行Kerberos预认证的用户,并且,仅仅几下点击就可以完成这些用户的Kerberos预认证。

,