LLMNR和NetBIOS欺骗攻击分析及防范
字数 1633 2025-08-05 08:18:04
LLMNR和NetBIOS欺骗攻击分析及防范
1. 协议概述
1.1 LLMNR协议
链路本地多播名称解析(LLMNR)是基于DNS数据包格式的协议,允许IPv4和IPv6主机在同一本地链路上执行名称解析。
特点:
- 在DNS服务器不可用时使用
- 适用于临时对等网络(如机场候机区域)
- 通过UDP发送多播查询
- 查询范围限制在本地子网内
工作流程:
- 主机检查内部名称缓存
- 查询配置的主DNS服务器
- 尝试备用DNS服务器(如果配置)
- 如果DNS解析失败,转为使用LLMNR
- 通过UDP发送多播查询
- 支持LLMNR的主机比较查询名称与自身主机名
- 匹配则返回单播响应
1.2 NetBIOS协议
NetBIOS(网络基本输入输出系统)提供OSI模型中的会话层服务,主要用于局域网内计算机互访。
特点:
- 提供名称解析服务(将NetBIOS名解析为IP地址)
- 默认随TCP/IP协议安装
- 使用多种解析模式:WINS服务、广播及Lmhost文件
相关端口:
- 137/UDP:NetBIOS名称服务
- 138/UDP:NetBIOS数据报服务
- 139/TCP:NetBIOS会话服务
2. Windows名称解析顺序
Windows系统按以下顺序进行名称解析:
- 检查是否为本地机器名称
- 检查本地缓存
- 搜索本地hosts文件(%windir%\System32\drivers\etc\hosts)
- 查询DNS缓存/DNS服务器
- 使用LLMNR(链路本地多播名称解析)
- 使用NetBIOS名称服务(NBT-NS)
3. 攻击原理
3.1 漏洞成因
当DNS解析失败时,Windows会通过LLMNR和NetBIOS在本地进行名称解析:
- 客户端广播未经认证的UDP查询
- 网络上的任何机器都可以响应并声称是目标机器
- 攻击者可伪装为目标机器,诱使受害者交出登录凭证
3.2 攻击步骤
- 攻击者监听网络中的LLMNR和NetBIOS广播
- 受害者尝试访问不存在或不可达的资源
- 系统前四个解析步骤失败,转为使用LLMNR/NetBIOS
- 攻击者响应广播,声称拥有被请求的资源
- 受害者尝试与攻击者建立认证连接
- 攻击者获取受害者的Net-NTLMv2哈希
- 攻击者破解哈希获取明文密码或进行哈希传递攻击
3.3 攻击工具
Responder工具:
- 监听LLMNR和NetBIOS请求
- 内置多种认证服务器(SMB、MSSQL、HTTP、HTTPS、LDAP等)
- 可收集明文凭据
- 支持Multi-Relay功能执行命令
基本用法:
responder -I eth0 -f
-I:指定网卡-f:允许查看受害者指纹
4. 攻击演示
4.1 环境要求
- 靶机需在家庭网络或公共网络下
- 确保凭据通过SMB协议传输
4.2 触发条件
- 靶机访问不存在的主机地址(如
\\gha) - 或命令行执行
net use \\gha
4.3 获取凭证
Responder会捕获:
- 用户名
- NTLMv2哈希
- 存储在log目录下的txt文件中
4.4 哈希破解
常用工具:
- John the Ripper:
john hash.txt - Hashcat:
hashcat -m 5600 hash.txt wordlist.txt
5. 防范措施
5.1 禁用协议
- 在每台计算机的NIC上禁用NetBIOS
- 通过DHCP禁用LLMNR
5.2 防火墙配置
- 阻止NetBIOS协议和TCP 139端口
- 阻止LLMNR UDP 5355端口
- 限制出站流量
5.3 端口重定向
修改注册表将默认端口改为高端口:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TerminalServer\Wds\rdpwd\Tds\tcp]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp]
修改"PortNumber"值
5.4 IPsec策略
为相关端口配置IPsec安全策略,使扫描无响应
5.5 其他措施
- 启用SMB签名
- 使用网络访问控制(NAC)
- 实施网络分段
- 监控异常名称解析请求
6. 总结
LLMNR和NetBIOS欺骗攻击利用Windows名称解析机制中的设计缺陷,通过响应广播查询获取用户凭证。防范此类攻击需要综合采用禁用不必要协议、配置防火墙规则、修改默认端口和实施IPsec策略等措施,同时加强网络监控和用户安全意识教育。