LLMNR 中毒

什么是 LLMNR

LLMNR(链路本地多播名称解析)是网络上使用的一种协议,用于代替 DNS 帮助解析主机名。它曾经也被称为 NBT-NS,但此后已在大多数系统中进行了更新。

机制

为了将 IP 地址 解析为主机名,LLMNR 通过网络向所有侦听接口发送一个“多播数据包”。该数据包询问每个接口是否是权威主机名。权威主机名是能够将 IP 解析为主机名的接口。

LLMNR 中毒

LLMNR 是“脆弱的”,因为它允许 MITM 攻击,例如 LLMNR 中毒。在 LLMNR 中毒中,攻击者冒充网络中的权威主机名。然后,他们等待受害计算机使用 LLMNR 来查找主机名。

例如,如果受害计算机发送 LLMNR 请求以获取类似 \\lemons 的主机名,则多播数据包将发送到所有侦听接口,包括攻击者的虚假权威服务器。当他们收到数据包时,攻击者会用一个数据包进行响应,告诉受害者计算机“嘿!我知道如何连接到该主机名。您想要 IP 地址吗?”

受害者机器将响应:“是的!我想要该 IP 地址”,但为了从权威服务器接收 IP 地址,受害者必须通过发送 NTLM 哈希来对其进行身份验证。该哈希值包括服务器发送的随机数,加密,使用 DES 算法和用户密码作为密钥。

由于 DES 是“一种古老且易受攻击的算法,很容易被破解”,因此攻击者可以通过破解受害者计算机在使用假冒权威服务器进行身份验证期间发送的哈希值来轻松获取受害者的密码。

减轻 LLMNR

缓解此攻击向量的最佳方法是禁用 LLMNR 和 NBT-NS。这可以通过 Windows Server 使用组策略来完成。

步骤:

关闭 LLMNR:

  • 从组策略编辑器中,导航至计算机配置 > 管理模板 > 网络 > DNS 客户端
  • 关闭本地计算机策略下的“多播名称解析”

关闭 NBT-NS:

  • 导航到网络连接 > 网络适配器属性 > TCP/IPv4 属性 > 高级选项卡 > WINS 选项卡
  • 选择“通过 TCP/IP 禁用 NetBIOS

如果客户端无法关闭这些怎么办?

最好的方法是需要网络访问控制。换句话说,应该限制哪些计算机在插入网络时实际获得网络访问权限。例如,可以基于 MAC 地址 限制网络访问,其中只有具有特定 MAC 地址的设备在连接时才能访问网络。

另一个好的缓解策略是“需要长的强用户密码”并“避免常见单词”。这使得破解捕获的哈希更加困难

[!资源]