![ATT&CK视角下的红蓝对抗实战指南](https://wfqqreader-1252317822.image.myqcloud.com/cover/797/48593797/b_48593797.jpg)
1.4 Windows常用协议
1.4.1 LLMNR
1.LLMNR简介
链路本地多播名称解析(LLMNR)是一个基于域名系统(DNS)数据包格式的协议,可用于解析局域网中本地链路上的主机名称。它可以很好地支持IPv4和IPv6,是仅次于DNS解析的名称解析协议。
2.LLMNR解析过程
当本地hosts和DNS解析失败时,会使用LLMNR解析。LLMNR解析过程如图1-26所示。
1)主机在本地NetBIOS缓存名称中进行查询。
2)如果在缓存名称中没有查询到,则以此向配置的主备DNS服务器发送解析请求。
3)如果主备DNS服务器没有回复,则向当前子网域发送多播,获取对应的IP地址。
4)本地子网域中的其他主机收到并检查多播包。如果没有响应,则请求失败。
从以上工作过程可以明白,LLMNR是以多播形式进行查询的,类似于ARP通过MAC寻找IP地址。这样就存在一个欺骗攻击问题。
![](https://epubservercos.yuewen.com/B7FCFF/28235394807452206/epubprivate/OEBPS/Images/49_01.jpg?sign=1739355669-AZSVNB7d2aYgLJXnEYfFoDRIlAku3DCP-0-1adfbc17180d9442a4d637535086106b)
图1-26 LLMNR解析过程
3.LLMNR欺骗攻击
假设用户访问一个域名xxx,如图1-27所示,在hosts文件和DNS解析失败时,会通过LLMNR进行广播请求。攻击者利用该广播请求时间向请求用户回复响应IP地址,这时域名xxx映射的IP就是攻击者IP,用户访问域名xxx就会解析到攻击IP,这样攻击者便可以拿到NetNTLM哈希。
4.LLMNR防御措施
1)在Windows系统中依次选择“开始”→“运行”选项,然后输入gpedit.msc命令打开本地组策略管理器,如图1-28所示。
2)依次选择“计算机配置”→“管理模板”→“网络”→“DNS客户端”,如图1-29所示。
3)双击打开“关闭多播名称解析”策略设置,如图1-30所示。
4)将“关闭多播名称解析”策略设置中的状态改为“已禁用”,如图1-31所示。
![](https://epubservercos.yuewen.com/B7FCFF/28235394807452206/epubprivate/OEBPS/Images/50_01.jpg?sign=1739355669-zB3gYpqJOje5pbG4bQWlKKQB0xCwtaUu-0-692bf5473f7c84454fd6fe0f570e964e)
图1-27 LLMNR欺骗攻击
![](https://epubservercos.yuewen.com/B7FCFF/28235394807452206/epubprivate/OEBPS/Images/50_02.jpg?sign=1739355669-nf3NtoP2jDOw8fxVWq32xtoWHdYSdshS-0-baf19555af56695a7aeac5db5314e56b)
图1-28 打开本地组策略管理器
![](https://epubservercos.yuewen.com/B7FCFF/28235394807452206/epubprivate/OEBPS/Images/50_03.jpg?sign=1739355669-4UvhTuQI4CGkdc5cEUKAf6km8mSnTTES-0-09f3790e50a4ad14a48300923d44a31e)
图1-29 打开配置DNS客户端
![](https://epubservercos.yuewen.com/B7FCFF/28235394807452206/epubprivate/OEBPS/Images/51_01.jpg?sign=1739355669-vmgatPAbkAHKPaHoq2wn7is60SLAzZS3-0-e0631d4dd4effd4743d9f3f2763d04cf)
图1-30 打开“关闭多播名称解析”
![](https://epubservercos.yuewen.com/B7FCFF/28235394807452206/epubprivate/OEBPS/Images/51_02.jpg?sign=1739355669-Pb7nZKewCRiNRGPmUdFHVoeeLiLQNJOB-0-406fb843f3935cb2d3d8290e29711e46)
图1-31 将“关闭多播名称解析”策略设置中的状态改为“已禁用”