概念引入

LLMNR(Link-Local Multicast Name Resolution,链路本地多播名称解析)和 NBNS(NetBIOS Name Service,NetBIOS 名称服务)是 Windows 系统中的遗留名称解析协议,主要用于本地网络(同一子网)内主机名的解析。当主名称解析方式(DNS)失败时,Windows 会回退
(fallback)到这些协议。

“毒化”(Poisoning)在内网渗透领域,是一个非常形象的比喻术语,用来描述攻击者向某个系统或协议中注入虚假、有害的信息,从而“污染”正常流程,导致系统做出错误决策或泄露敏感信息。在 LLMNR/NBNS 场景中,“毒化”就是攻击者通过伪造响应,持续污染网络中的名称解析过程,让受害主机误认为攻击者就是目标主机,从而主动送出凭证。

正常工作原理

  1. Windows 主机尝试访问资源(如 \\fileserver\share 或输入错误的主机名)时,先查询 DNS
  2. 如果 DNS 无法解析(主机名不存在或拼写错误),系统会:
    • 使用 LLMNR(UDP 5355 端口):向多播地址(224.0.0.252 for IPv4)发送查询,询问本地网络上所有主机:“谁是这个主机名?”
    • 使用 NBNS(UDP 137 端口):向广播地址发送查询(旧版协议)。
  3. 如果有合法主机响应,它会返回自己的 IP 地址。

这些协议没有内置认证机制:任何主机都可以响应查询,且响应不经过验证。先响应者胜出(race condition)。

投毒(Poisoning/Spoofing)攻击原理

攻击者(在内网中)利用协议的无认证特性,进行名称解析投毒

  1. 受害主机因 DNS 失败而广播/多播 LLMNR/NBNS 查询(常见场景:用户拼错共享文件夹名、访问不存在主机、WPAD proxy 查询等)。
  2. 攻击者运行工具(如 Responder.py)监听这些查询(UDP 137/5355)。
  3. 攻击者优先响应查询,声称“我就是你找的主机”,并提供自己的 IP 地址。
  4. 受害主机相信响应,向攻击者的 IP 发起连接(通常是 SMB、HTTP 等需要 NTLM 认证的服务)。
  5. 受害主机自动发送 NTLMv2 hash(用户名 + 密码哈希)进行认证。
  6. 攻击者捕获 hash,后续可:
    • 离线破解(用 Hashcat/John,若密码弱)。
    • NTLM Relay(中继到其他服务,如 LDAP/SMB,实现横向移动或提权)。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

这属于 MITRE ATT&CK 中的 T1557.001: Adversary-in-the-Middle: LLMNR/NBT-NS Poisoning and SMB Relay

常见触发场景

  • 用户输入错误:\\filesahre(应为 fileshare)。
  • WPAD(Web Proxy Auto-Discovery)查询 wpad 主机。
  • 浏览器直接搜索或访问不存在资源。

防御措施

  • 禁用 LLMNR 和 NBNS(推荐,最有效):
    • 通过组策略:Computer Configuration > Administrative Templates > Network > DNS Client > “Turn off multicast name resolution” 设置为 Enabled(禁用 LLMNR)。
    • 禁用 NetBIOS over TCP/IP(网络适配器属性 > IPv4 > 高级 > WINS > 禁用 NetBIOS)。
  • 启用 SMB Signing(要求签名,防止 relay)。
  • 使用强密码(>14 位,复杂)。
  • 网络访问控制(NAC),监控异常流量。

此攻击在内网渗透中非常常见,尤其在未修补遗留配置的环境中。如果环境有 DNS 服务器且配置正确,禁用这些协议几乎无影响。

参考文章:https://www.cnblogs.com/haidragon/p/16847713.html

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐