4.3 在没有凭证的网络上
4.3.1 Responder
就像之前的行动,我们使用 Responder 工具(可在 GitHub 网站搜索)监听网络和欺骗响应数据,从而获取网络上的凭证。回顾本书第 2 版的内容,当网络上的系统查找 DNS 主机名失败时,该被攻击者系统将链路本地多播名称解析(LLMNR)和 Net-BIOS(NBT-NS)名称服务用于名称解析备份。当被攻击者主机无法通过 DNS 查询时,被攻击者开始询问网络上的主机是否可以解析该主机名。
有一个简单且通用的例子:假设您的主机有一个固定加载驱动\cyberspacekittenssecretdrive\ secrets。有一天,IT 部门从网络中删除了该共享驱动器,它已不再存在。由于主机仍然加载驱动器到服务器,因此系统将不断询问网络是否有主机知道驱动器的 IP 地址。现在,这个文件共享可能很难找到,由于网络中存在先前连接的系统的可能性很高,因此这个问题仍然会发生。我们已经从安装的驱动器、具有硬编码服务器的应用程序中看到这个问题,而且很多时候仅仅是配置错误。
我们可以使用类似 Responder 的工具来利用那些寻找主机名的系统,并使用恶意服务器对其进行响应。更棒的是,Responder 工具可以更进一步,充当 Web 代理自动发现(WPAD)协议服务器,通过攻击者服务器代理所有的数据,但这是另外一种攻击方式。
- cd /opt/Responder。
- ./Responder.py -I eth0 -wrf。
现在,因为处于 Windows 企业环境中,所以可以假设 Responder 工具正在活动目录中运行。因此,如果响应来自受害主机的 DNS 查询,就可以让其连接到我们的 SMB 共享。由于它们连接到驱动器\cyberspacekittenssecretdrive,因此我们将强制被攻击者使用 NTLMv2 凭证(或缓存凭证)进行身份验证,如图 4.4 所示。捕获的这些凭证不是直接的 NTLM 散列值,而是 NTLM 质询/响应散列值(NTLMv2-SSP)。NTLMv2-SSP 散列值暴力破解的速度,比普通的 NTLM 散列值慢得多,但这不是大问题,因为我们可以使用大型破解设备实现破解(参见第 8 章)。
图 4.4
我们可以输入 NTLMv2 散列,将其传递给 hashcat 工具,破解密码。在 hashcat 工具中,我们需要为 NetNTLMv2 指定散列格式“-m”。
- hashcat -m 5600 hashes\ntlmssp_hashes.txt passwordlists/*。
现在,假设我们真的不想破解散列,或者我们不介意弹出对话框(提醒用户此处可疑)。我们可以不使用 NetNTLMv2 鉴权方式,强制使用基本的鉴权方式,参数是 F(ForceWpadAuth)和 b(基本身份验证)。
- python ./Responder.py -I eth0 -wfFbv。
从图 4.5 可以看出,系统将提示用户输入用户名和密码,大多数人都会不自觉地输入。一旦用户提交了凭证,我们就能以明文形式捕获凭证,如图 4.6 所示。
图 4.5
图 4.6
4.3.2 更好的 Responder(MultiRelay.py)
Responder 工具和破解 NTLMv2-SSP 散列的问题在于破解这些散列值所需的时间可能很长。更糟糕的是,在这个环境中,管理员的密码长度超过 20 个字符。那么,在这个场景中,我们能做些什么呢?
如果目标没有强制执行 SMB 签名(可以使用快速 Nmap 脚本扫描找到它),那么我们可以使用一个小技巧,重放捕获的 SMB 请求。
Laurent Gaffie 在 Responder 中加入了一个工具来处理身份鉴权的重放攻击。在 Per Laurent 的网站上,Responder 的工具文件夹中包含 MultiRelay 工具,它是一个强大的渗透测试程序,使您能够对选定的目标执行 NTLMv1 和 NTLMv2 中继攻击。目前,MultiRelay 支持将 HTTP、WebDav、代理和 SMB 身份验证协议中继到 SMB 服务器。该工具可以定制接收多个用户中继,仅针对域管理员、本地管理员或特权账户。
从更高的层面来说,MultiRelay 将根据我们的设置,转发身份鉴权请求到被攻击者主机,而不是强制被攻击者向我们的 SMB 共享发送身份鉴权请求。当然,该中继用户需要访问另一台机器;如果成功,我们不需要处理任何密码或暴力破解。首先,需要配置 Responder 和 MultiRelay 工具。
- 编辑 Responder 配置文件,禁用 SMB 和 HTTP 服务器。
- gedit Responder.conf
- 将 SMB 和 HTTP 更改为“关闭”
- 启动 Responder 工具。
- python ./Responder.py -I eth0 -rv
- 在新的终端窗口中启动 MultiRelay。
- /opt/Responder/tools
- ./MultiRelay.py -t <target host> -c <shell command> -u ALL
一旦中继到被攻击者主机的目标实现,如图 4.7 所示,就需要考虑在被攻击者主机上执行的内容。默认情况下,MultiRelay 可以生成基本 Shell,但我们也可以自动执行 Meterpreter PowerShell 静荷、Empire PowerShell 静荷、dnscat2 PowerShell 静荷、PowerShell 下载脚本和执行 C2 代理、Mimikatz,或者只运行 calc.exe 工具。
图 4.7
4.3.3 PowerShell Responder
一旦突破了 Windows 系统,我们就可以使用 PowerShell 工具对被攻击者开展 Responder 攻击。早期的 Responder 的两个功能可以通过以下两个工具实现。
- Inveigh。
- Inveigh-Relay。
为了使事情变得更加简单,所有这些工具都已经集成到 Empire 中。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论