LLMNR协议
LLMNR是指本地链路多播名称解析,它是一种域名系统数据包格式。当局域网中的DNS服务器不可用时,DNS客户端会使用LLMNR解析本地网段中机器的名称,直到DNS服务器恢复正常为止。LLMNR还支持IPv6协议。
LLMNR的工作过程如下:
- DNS客户端在自己的内部名称缓存中查询名称
- 如果没有找到,主机将向主DNS发送名称查询请求
- 如果主DNS没有回应或者收到了错误的信息,主机会向备DNS发送查询请求
- 如果备DNS没有回应或者收到了错误的信息,将使用LLMNR进行解析
- 主机通过UDP协议向组播地址
224.0.0.252
的5355端口发送多播查询请求,以获取主机名所对应的IP地址。查询范围仅限于本地子网。 - 本地子网中所有支持LLMNR的主机在收到查询请求后,会对比自己的主机名。如果不同,就丢弃;如果相同,就向查询主机发送包含自己IP地址的单播信息。
NetBIOS协议
NetBIOS是一种网络协议,一般用在十几台计算机组成的局域网中,可以根据NetBIOS协议广播获得计算机名称,并将其解析为相应的IP地址。在Windows NT以后版本的所有操作系统中均可使用NetBIOS,但是它不支持IPv6协议。
NetBIOS提供三种服务:
- NetBIOS-NS(名称服务):主要用于名称注册和解析,以启动会话和分发数据包。该服务需要使用域名服务器来注册NetBIOS的名称。默认监听UDP的137端口,也可以使用TCP的137端口。
- Datagram Distibution Service(数据分发服务):无连接服务。该服务负责进行错误检测和恢复,默认监听UDP的138端口。
- Session Service(会话服务):允许两台计算机建立连接,允许电子邮件跨越多个数据包进行传输,提供错误与检测和恢复机制。默认使用TCP的139端口。
Net-NTLM Hash
首先先阐述一下Net-NTLM Hash
和NTLM Hash
是不一样的。NTLM Hash
是指Windows操作系统的Security Account Manager中保存的用户密码散列值。NTLM Hash
通常保存在Windows的SAM文件或者NTDS.DIT数据库中,用于对访问资源的用户进行身份认证。Net-NTLM Hash
是指在网络环境中经过NTLM认证的散列值。挑战/响应验证中的"响应"就包含Net-NTLM Hash
。使用Responder
抓取通常就是Net-NTLM Hash
。攻击者无法使用该散列值进行哈希传递攻击,只能在使用Hashcat
等工具得到明文后进行横向移动攻击。
LLMNR和NetBIOS欺骗攻击
如果网络目标的DNS服务器因发生故障而无法提供服务时,会退回LLMNR和NBT-NS进行计算机名解析。
Responder工具
Responder工具是监听LLMNR和NBT-NS协议的工具之一,能够抓取网络中所有LLMNR和NBT-NS请求并响应,获取最初的账户凭证。Responder使用内置SMB认证服务器、MSSQL认证服务器、HTTP认证服务器、HTTPS认证服务器、LDAP认证服务器、DNS认证服务器、WPAD认证服务器,以及FTP、POP3、IMAP、SMTP等服务器,收集目标网络中计算机的凭据,还可以通过Multi-Relay
功能在目标系统上执行命令。
监听模式
进入目标后,如果我们没有获得任何重要的凭证和系统的相关消息,那么我们可以使用Responder
的监听模式。它只会对网络中的流量进行分析,并不会主动去响应这些流量包。Responder
的ON
代表开启该服务的监听,OFF
代表关闭了该服务的监听。
在渗透测试中,如果使用Responder
主动响应请求,它会自动回应客户端的请求并声明自己就是被输入了错误计算机名的那台机器,然后尝试建立SMB连接。紧接着客户端会发送自己的Net-NTLM Hash
进行身份验证,此时将得到目标主机的Net-NTLM Hash