如何在中间人的内部广告流量

信息安全 加密 tls 中间人 活动目录
2021-09-09 10:38:51

一位同事问我为什么我认为加密内部 AD Bind 通信很重要。我之所以这么说是因为我遵循标准的安全实践,但实际上无法明确说明攻击者如何通过网络获取凭据。攻击者是否必须拥有我们的网络设备,或者是否有更简单的监听方法?

3个回答

ARP 中毒和 IP 欺骗是一种方法,只需网络上的一个节点即可。

通常,您最终会在协商期间冒充 AD 服务器。在这种情况下,技术细节可能并不有趣,但如果你伪装成 AD 服务器,你可以做很多事情。

其中之一可能是假装只支持 NTLM 身份验证,从而调用一个非常弱的协议,该协议涉及传递一个非常弱的哈希,您可以在几个小时内在笔记本电脑上破解该哈希,从而恢复密码。

如果你碰巧有一个 Kerberos 的弱点,你也可以利用它,因为绑定身份验证也可以使用它来完成。您可以强制使用的另一种身份验证方法是 digest-md5,它比 NTLM 更强,但不是太多。

如果你真的很好,那么你可以将身份验证传递给真正的 AD 服务器,并继续代理 (MitM) 客户端和服务器之间的所有通信,只要你能保持欺骗。没有人会注意到太多。然而,Kerberos 使这变得困难。

因此,总而言之,这样做的攻击者可能会恢复密码哈希,并且有能力影响它们非常弱。这可能会破坏密码。

攻击者也可能能够嗅探(kerberos)身份验证的发生,尽管这在交换网段中更难,并且对于 802.1x 基本上是不可能的。

特别是 Kerberos 使得这种事情很难完成。例如,密码仅用于生成服务器和工作站之间共享的密钥(服务器保留密钥,仅在密码更改时更改),因此实际上没有密码可以破解。此密钥用于保护通信。但是,密钥是对称的,理论上攻击者可以嗅探任何传输网络的 kerberos 数据,找到它的密钥,然后找到生成该密钥的密码(老实说,尽管密钥通常就足够了)。这很难。 Microsoft 有一篇文章,其中包含所有这些工作原理的详细信息,包括 Kerberos

但是,如果您像 LDAP 一样绑定到 AD 并执行重置密码或使用普通方法进行身份验证等操作,则您绝对应该提供 SSL 证书并加密您的流量。

ARP 欺骗以获取通过网络传递的凭据,然后传递哈希

Arpspoofing 是一种通过攻击 OSI 模型的第 2 层来拦截流量的方法。在此示例中,攻击者将使用默认网关的相同 IP 但攻击者拥有的不同 MAC 地址向目标主机发送 arp 响应。这会导致目标主机相信默认网关位于攻击者提供的 MAC 上,而不是默认网关的真实 MAC。此时攻击者获胜并能够代理流量。通过完全访问网络流量,攻击者可以提取必要的信息来执行攻击,例如传递哈希。

在此示例中,尽管攻击者必须已经存在于网络中,但不需要额外的设备。这可能是内部威胁或已经受到威胁的主机。

现代(和智能)网络设备对此有缓解措施。这样就可以控制允许哪些 MAC 进行通信以及在哪些物理端口上进行通信。因此,如果有人试图欺骗 MAC,流量将无法通过交换机。

@Stephane 在纵深防御方面有一个很好的观点。虽然加密流量可以减轻许多威胁,但它也会让你在网络上“盲目”,因为流量会默默地通过入侵检测系统。未经检查。实施诸如网络加密之类的控制实际上取决于您的独特情况。

嗯,这真的取决于你所说的本地广告流量是什么意思。如果您的意思是它仅在您的服务器计算机上,那么如果它无论如何都受到损害,那么您就已经完成了,因此加密存储的用户名/密码数据只会有一点用 - 如果您有强大的、单独加密的用户名和密码,加密它们假设您立即发现您的服务器已被入侵,那么实际使用它们可能会变得非常困难。如果您的意思是仅在您的网络中是本地的,那么攻击者最可能的选择是 MITM,然后是字典攻击或传递哈希。因为之前的回答者实际上因为这样说而被打分,所以我将详细介绍它们是什么。

MITM - 这基本上是攻击者告诉你的路由器他是你而你他是你的路由器的地方。所以他最终会向您发送他的信息(在这种情况下是用户名和密码),然后您将其复制并传递给路由器。APR代表 Advanced Poison Routing,基本上是 MITM 的花哨版本

传递哈希- 一种攻击,您可以嗅探(散列)密码或通过其他方式捕获它。许多服务器所做的是它们“告诉”您的机器在本地散列密码。通过“告诉”您的计算机发送散列而不再次对其进行散列,您可以使您看起来输入了有效的用户名/密码,并且它已被散列并在途中发送。

字典攻击- 您的计算机运行一个单词列表,对每个单词进行散列,直到找到一个散列出来的单词,以便与之前捕获的散列相同(实际上是将体面的散列转换回明文的唯一可行方法)