Windows 名称解析机制探究及缺陷利用
字数 1936 2025-08-29 08:31:53

Windows 名称解析机制深入解析及安全防御指南

一、Windows 名称解析概述

名称解析是将计算机名称转换为IP地址的过程,Windows系统主要支持两种名称类型:

  1. 主机名称(Host Name)

    • 狭义指计算机名称,广义包含互联网域名
    • 最大长度255字符,允许A-Z、a-z和"-"
    • 完全限定域名(FQDN)格式:主机名.主域名后缀(如seclab.her0in.org)
  2. NetBIOS名称

    • Windows网络编程接口使用的名称
    • 最大长度16字符(15字符名称+1字符服务类型标识)
    • 常见服务类型标识:
      • 0x20:文件和打印服务
      • 0x00:工作站服务
      • 0x03:报信者服务

管理命令

  • 查看NetBIOS名称:nbtstat -n
  • 查看指定IP主机的NetBIOS名称:nbtstat -A ipaddress

二、Windows名称解析协议详解

1. DNS协议

  • 特点:首选协议,支持IPv4/IPv6,完全依赖DNS服务器
  • 端口:UDP/53
  • 解析流程
    1. 检查本地DNS缓存(包含hosts文件内容)
    2. 查询配置的DNS服务器
    3. 服务器无响应则请求失败

管理命令

  • 查看DNS缓存:ipconfig /displaydns
  • 清除DNS缓存:ipconfig /flushdns

2. NetBIOS协议

  • 特点:早期Windows使用,基于广播的名称解析
  • 端口:UDP/137
  • 增强服务:WINS(Windows Internet Name Service)服务器实现单播通信
  • 解析流程
    1. 检查NetBIOS缓存
    2. 查询WINS服务器(如配置)
    3. 子网广播
    4. 读取lmhosts文件(位于C:\Windows\System32\drivers\etc\)

管理命令

  • 查看NetBIOS缓存:nbtstat -c
  • 清除NetBIOS缓存:nbtstat -R

3. LLMNR协议(本地链路多播名称解析)

  • 特点:Vista后引入,支持IPv4/IPv6,端到端解析
  • 端口:UDP/5355
  • 广播地址
    • IPv4:224.0.0.252
    • IPv6:FF02:0:0:0:0:0:1:3或FF02::1:3
  • 解析流程
    1. 检查NetBIOS缓存
    2. 子网广播
    3. 无响应则请求失败

三、Windows名称解析顺序

影响因素

  1. 操作系统版本

    • Windows 2K/XP/2K3:DNS → NetBIOS
    • Vista及之后系统:DNS → LLMNR → NetBIOS
  2. 网络节点模式(通过ipconfig /all查看):

    • B-节点(广播):广播 → 检查LMHOSTS缓存 → 检查LMHOSTS文件
    • P-节点(对等):完全依赖WINS服务器
    • M-节点(混合):默认B节点,失败转P节点
    • H-节点(混合):默认P节点,失败转B节点(Windows默认模式)

四、名称解析安全威胁与防御

常见攻击技术

  1. DNS Spoof:伪造DNS响应
  2. NBNS Poison:NetBIOS名称服务投毒
  3. LLMNR Poison:LLMNR协议投毒
  4. ICMP Redirection:ICMP重定向攻击

攻击演示:LLMNR Poison

环境

  • 攻击者(Linux):192.168.237.133
  • 受害者(Win8.1):192.168.237.129

攻击过程

  1. 受害者访问不存在的主机(如ping nonexist
  2. Responder工具响应LLMNR广播
  3. 受害者NetBIOS缓存被污染
  4. 通过SMB共享或HTTP 401认证获取受害者HASH
  5. 对HASH进行暴力破解(如使用john)

工具

  • Responder(SpiderLabs)
  • ZARP工具包

防御措施

  1. 禁用不必要的协议

    • 组策略禁用LLMNR:计算机配置→管理模板→网络→DNS客户端→关闭多播名称解析
    • 禁用NetBIOS:网络适配器属性→TCP/IPv4高级→WINS→禁用NetBIOS over TCP/IP
  2. 网络分段:限制广播域范围

  3. 启用SMB签名:防止中间人攻击

  4. 使用强认证:避免使用NTLMv1,启用NTLMv2或Kerberos

  5. 监控网络流量:检测异常的LLMNR/NBNS流量

  6. 教育用户:避免访问不明共享或链接

五、参考资源

  • LLMNR协议规范:https://en.wikipedia.org/wiki/Link-Local_Multicast_Name_Resolution
  • Responder工具:https://github.com/SpiderLabs/Responder
  • Microsoft名称解析文档
Windows 名称解析机制深入解析及安全防御指南 一、Windows 名称解析概述 名称解析是将计算机名称转换为IP地址的过程,Windows系统主要支持两种名称类型: 主机名称(Host Name) 狭义指计算机名称,广义包含互联网域名 最大长度255字符,允许A-Z、a-z和"-" 完全限定域名(FQDN)格式:主机名.主域名后缀(如seclab.her0in.org) NetBIOS名称 Windows网络编程接口使用的名称 最大长度16字符(15字符名称+1字符服务类型标识) 常见服务类型标识: 0x20:文件和打印服务 0x00:工作站服务 0x03:报信者服务 管理命令 : 查看NetBIOS名称: nbtstat -n 查看指定IP主机的NetBIOS名称: nbtstat -A ipaddress 二、Windows名称解析协议详解 1. DNS协议 特点 :首选协议,支持IPv4/IPv6,完全依赖DNS服务器 端口 :UDP/53 解析流程 : 检查本地DNS缓存(包含hosts文件内容) 查询配置的DNS服务器 服务器无响应则请求失败 管理命令 : 查看DNS缓存: ipconfig /displaydns 清除DNS缓存: ipconfig /flushdns 2. NetBIOS协议 特点 :早期Windows使用,基于广播的名称解析 端口 :UDP/137 增强服务 :WINS(Windows Internet Name Service)服务器实现单播通信 解析流程 : 检查NetBIOS缓存 查询WINS服务器(如配置) 子网广播 读取lmhosts文件(位于C:\Windows\System32\drivers\etc\) 管理命令 : 查看NetBIOS缓存: nbtstat -c 清除NetBIOS缓存: nbtstat -R 3. LLMNR协议(本地链路多播名称解析) 特点 :Vista后引入,支持IPv4/IPv6,端到端解析 端口 :UDP/5355 广播地址 : IPv4:224.0.0.252 IPv6:FF02:0:0:0:0:0:1:3或FF02::1:3 解析流程 : 检查NetBIOS缓存 子网广播 无响应则请求失败 三、Windows名称解析顺序 影响因素 操作系统版本 : Windows 2K/XP/2K3:DNS → NetBIOS Vista及之后系统:DNS → LLMNR → NetBIOS 网络节点模式 (通过 ipconfig /all 查看): B-节点(广播) :广播 → 检查LMHOSTS缓存 → 检查LMHOSTS文件 P-节点(对等) :完全依赖WINS服务器 M-节点(混合) :默认B节点,失败转P节点 H-节点(混合) :默认P节点,失败转B节点(Windows默认模式) 四、名称解析安全威胁与防御 常见攻击技术 DNS Spoof :伪造DNS响应 NBNS Poison :NetBIOS名称服务投毒 LLMNR Poison :LLMNR协议投毒 ICMP Redirection :ICMP重定向攻击 攻击演示:LLMNR Poison 环境 : 攻击者(Linux):192.168.237.133 受害者(Win8.1):192.168.237.129 攻击过程 : 受害者访问不存在的主机(如 ping nonexist ) Responder工具响应LLMNR广播 受害者NetBIOS缓存被污染 通过SMB共享或HTTP 401认证获取受害者HASH 对HASH进行暴力破解(如使用john) 工具 : Responder(SpiderLabs) ZARP工具包 防御措施 禁用不必要的协议 : 组策略禁用LLMNR: 计算机配置→管理模板→网络→DNS客户端→关闭多播名称解析 禁用NetBIOS:网络适配器属性→TCP/IPv4高级→WINS→禁用NetBIOS over TCP/IP 网络分段 :限制广播域范围 启用SMB签名 :防止中间人攻击 使用强认证 :避免使用NTLMv1,启用NTLMv2或Kerberos 监控网络流量 :检测异常的LLMNR/NBNS流量 教育用户 :避免访问不明共享或链接 五、参考资源 LLMNR协议规范:https://en.wikipedia.org/wiki/Link-Local_ Multicast_ Name_ Resolution Responder工具:https://github.com/SpiderLabs/Responder Microsoft名称解析文档