利用双因素认证防御哈希传递攻击
实施远程访问的双因素认证是防止攻击者入侵网络的有效方法。用户的凭据在互联网上随处可见,但攻击者仍可通过恶意软件等工具侵入网络。过去我们描述了如何在攻击的每个阶段使用双因素认证,以便更容易检测和更难执行:
- 实施远程访问的双因素认证将使入侵更加困难。
- 实施特权账户的双因素认证将使权限提升更加困难。
- 在出站代理实施双因素认证将使数据外泄更加困难。
PCI委员会现在要求非控制台管理访问使用双因素认证。为了展示哈希传递攻击的简易性以及WiKID如何缓解此攻击,我们呈现了两个域管理员的故事。一个使用静态密码,另一个使用WiKID原生Active Directory双因素认证协议。
在我们的实验室中,我们设置了两台机器:一台运行Server 2012的Windows域服务器和一台运行Windows 10的PC。在Win 10机器上,下载两个工具:Mimikatz和PStools。我们将使用Mimikatz获取哈希,并使用psexec将其传递到AD服务器以获取控制台。
注意,您需要关闭Windows Defender,因为它会删除并隔离Mimikatz。右键单击相应的mimikatz.exe并选择以管理员身份运行。您需要是本地管理员才能使工具工作。
接下来,通过运行以下命令检查您是否具有适当的权限:
|
|
我们执行:
让我们的两个域管理员登录到机器进行一些工作。第一个域管理员使用其静态AD密码登录,因为真的,有什么意义?网络很小,用户很聪明。然后,我们更复杂的域管理员使用来自其WiKID服务器的一次性密码登录,该服务器已设置为AD登录提供双因素认证,因为他真的喜欢晚上睡得好,并且知道攻击者有很多动机且很聪明。这两个管理员以非常不同的方式在同一台计算机和网络上工作只是糟糕脚本开发的例子。
注意几点:
- AD协议支持满足AD复杂性要求的复杂一次性密码。
- 密码生命周期也可以在域设置中配置。此设置很关键,因为它是一个攻击窗口。
- 这是PC客户端的图片,在现实生活中您可能会使用智能手机软件令牌。
接下来,我们使用此Mimikatz命令获取这两个管理员的哈希:
|
|
这是我们得到的:
和:
注意NTLM哈希 - 这就是我们将要使用的。 现在,我们将使用Mimikatz的传递哈希命令将我们的权限提升到域管理员。首先,我们尝试使用静态密码的管理员。
|
|
此命令给我们一个显示用户未更改的DOS提示符:
但实际上,用户拥有管理员票证。我们可以使用psexec来证明这一点:
|
|
您可以看到我们现在是域服务器上的sysadmin。攻击成功了! 现在,让我们尝试对使用WiKID密码登录的域管理员执行相同的操作。
|
|
我们再次得到带有用户名的DOS提示符:
现在,让我们看看哈希是否有效。我们运行相同的命令:
|
|
它失败了!当然会失败。密码在“一次性密码”过期后更改,哈希不再有效。注意,它并不是真正的一次性密码。WiKID服务器将一个随机密码写入AD,并将其发送到令牌。一旦密码过期,WiKID服务器会用另一个无人知道的随机复杂字符串覆盖AD中的密码。因此,攻击者仍然可以使用哈希的窗口 - 密码的生命周期,可以在WiKID域中配置为您想要的任何值。这也意味着您可以在SIEM中设置警报,用于不成功的传递哈希攻击(类似于“蜜罐令牌”)和密码过期内的多次成功登录。
WiKID服务器对最多5个用户免费。因此,即使您不为远程访问使用双因素认证,拥有5个或更少域管理员的公司也可以免费使用此功能。那是很多公司。