利用LLMNR和SMB消息签名漏洞实现SMB中继攻击

本文详细介绍了如何通过LLMNR和NBNS协议漏洞结合SMB消息签名缺失,实施NTLM中继攻击。从初始侦察到最终获取域管理员权限,逐步演示攻击流程,并提供防御建议。

SMB中继竞赛 - 如何利用LLMNR和SMB消息签名获取乐趣与收益

Jordan Drysdale//

这基本上是对Marcello工作的轻微更新和借鉴:https://byt3bl33d3r.github.io/practical-guide-to-ntlm-relaying-in-2017-aka-getting-a-foothold-in-under-5-minutes.html

/tl;dr - 通过暴露的Outlook Web App(OWA)和单因素VPN,在环境中从零到域管理员权限。技术概述从下文截取,攻击总结在本文中出现两次:

  • 识别不需要SMB消息验证的网络系统
  • 配置Impacket的NTLMrelayx以定位这些系统
  • 在Responder中禁用SMB和HTTP请求/响应投毒并启动
  • 等待凭据

我们以更有深度的方式探讨"NTLM中继通过SMB认证投毒反射"的主题。我们将仅凭一个OWA门户、用户列表和微笑,从零开始执行整个攻击。

LLMNR、NBNS、NBT-NS - 从攻击者和防御者的角度,这些是什么以及如何区分?NBT-NS和NBNS是相同的,运行在UDP/137上,也称为NetBIOS和WINS。这些服务在设计上存在缺陷,允许通过响应竞争进行简单攻击;因此称为SMB中继竞赛。

NBNS/NBT-NS(以下简称NBNS)是名称解析的回退机制。当系统无法通过标准DNS解析识别目标主机IP时,系统将在OSI第2层广播(MAC目的地全F - FF:FF:FF:FF:FF:FF),请求帮助进行IP到主机名的映射过程。此广播数据包被子网和VLAN边界限制。这是攻击者可以响应并获取凭据材料的时刻。如果回退请求旨在解析文件服务器,攻击者系统可以在后续数据包中提供响应和认证挑战,从而在某些情况下获取受害者的哈希或明文密码。

LLMNR是链路层多播名称解析的缩写,其操作方式几乎与长版本描述完全相同。这种名称解析技术也是系统无法通过标准DNS解析主机名时的回退机制。名称中的链路层引用将数据包保留在子网上,除非在特殊情况下,包括广播转发和IGMP PIM配置,这些在部署远程系统映像或远程广播等解决方案时更为常见。此请求的目标MAC地址定义为TCP/5355上的01:00:5E:00:00:FC。协议中对多播的引用将解析请求数据包的目标IP定义为多播保留空间中的224.0.0.252。与NBNS类似,LLMNR请求可以通过比任何人更快地响应这些请求来被破坏。因此,以下是@krelkci博客中关于在网络上关闭此功能的截图。

SMB消息签名是验证针对系统SMB服务请求来源的过程。当强制执行SMB消息检查时,中继攻击将无效。通过组策略修改,我们可以通过启用"始终数字签名通信"设置来有效消除此风险。有讨论称此设置可能影响网络性能。虽然我们未在受控环境下测试此问题,但如果您正在考虑这是否是值得消除的风险,您应该考虑Black Hills Information Security的渗透测试。我们的咨询团队可以为您量身定制套餐;他们准备在consulting@blackhillsinfosec.com讨论我们的服务选项。

现在, armed with some background knowledge about the protocols, 让我们首先通过OWA攻击我们构建的环境,通过VPN进入,转到Linux盒子,再到域控制器。

攻击从侦察开始。我们今天跳过这一步。不过,玩得开心,也许可以尝试对您自己的组织进行这些操作。如果您投入一些努力,您可能会对发现的内容感到恐惧。

Recon-ng theHarvester / InSpy Burp and LinkedIn DNSDumpster / DNS UltraTools MXToolbox Metadata Tools Credential Harvesting Pastebin Shodan Data brokerage firm reports (Acxiom, BeenVerified, Epsilon)

无论如何,当您完成侦察时,您希望得到类似以下的内容。

对我们来说,我们将从这里下载MailSniper,导入并执行!我们使用下一个命令恢复有效的域账户。像往常一样,如果用户数量足够大(几百个用户),并且密码策略较弱(8-10个字符最小值),恢复凭据只是时间问题。

Invoke-PasswordSprayOWA -ExchHostname mail.domain.com -UserList C:\users.txt -Password Spring2019! -OutFile .\creds.txt

我们还继续使用以下命令下载全局地址列表。 Get-GlobalAddressList -ExchHostname mail.domain.com -UserName wlabv2\maxine.james -Password Spring2019! -OutFile .\GAL.txt.

接下来,使用我们在DNS侦察期间发现的一些有趣主机,我们能够访问并下载我们恢复的用户账户的配置文件。

我们可以认证!

注意:OpenVPN客户端将显示配置文件可以访问的网络。应扫描这些网络以寻找有趣的东西。

现在,我们运行Nmap来查找东西并直接命中。 nmap -p22 –script=ssh-brute.nse –script-args userdb=users.lst,passdb=pass.lst 10.55.100.0/24

结果展示了胜利,我们恢复了此环境中的第一个标志,并获得了可以从其发起对网络进一步攻击的主机。

让我们在LLMNR的背景下讨论SMB中继,以及为什么这是在扫描结果中不容忽视的重要漏洞。首先,该漏洞在Nessus中称为"SMB消息签名禁用"。因为实验室是我们的,我们可以随意处理,我们扫描了它。发现了36个系统禁用了SMB消息完整性验证检查。

如Tenable的漏洞写入中所述,此漏洞允许攻击者对识别的SMB服务器进行MiTM攻击。更具体地说,此漏洞允许具有内部位置的攻击者将投毒的LLMNR和NBNS请求/响应对反射到此系统列表。当反射的NetNTLMv2哈希落在投毒"请求者"具有足够权限的系统上时,SAM被转储,新凭据被解锁。

攻击总结:

  • 识别不需要SMB消息验证的网络系统
  • 配置Impacket的NTLMrelayx以定位这些系统
  • 在Responder中禁用SMB和HTTP响应投毒并启动
  • 等待凭据

以下截图是两个命令的结果,这是此攻击所需的全部。在一个窗口中: ntlmrelayx.py -t 10.55.100.190

并且,在Responder窗格中,记得在Responder.conf文件中将SMB和HTTP设置为’Off’: ./Responder.py -I eth0 -rdw

在几分钟内,我们有了目标系统的SAM内容。

当这些漏洞结合时,这在野外更常见,结果可能是毁灭性的。在我们的环境中,我们现在窃取静止的NTLM哈希,并开始基于crackmapexec的掠夺。 crackmapexec smb 10.55.100.0/24 -u winlab -H 5120d0cb0df939e3044c5843e37b2c5f –local –lsa

因为为什么我们不遍历整个子网并转储LSA?如下所示,我们捕获了更多用户,其中一个结果是域管理员。

那么。

您可以做什么来减少这些风险?

  • 通过组策略在所有系统上强制执行SMB消息完整性检查(这只是解决此问题的一部分)- “始终数字签名通信”
  • 特别审查网络系统和DNS配置

因为LLMNR和NBNS是回退机制,配置良好的DNS基础设施可以减少通过这些弱协议进行名称查找的需求

  • 更新您的黄金系统映像以包括设置为"禁用"的NBNS

配置在网络适配器上禁用NBNS / NetBIOS / WINS的组策略首选项 配置禁用LLMNR的组策略 限制网络上的用户权限,因为此攻击还依赖于反射的NetNTLMv2"认证器"具有足够的SMB登录权限

链接

https://wiki.wireshark.org/NetBIOS/NBNS https://en.wikipedia.org/wiki/Link-Local_Multicast_Name_Resolution https://blogs.technet.microsoft.com/josebda/2010/12/01/the-basics-of-smb-signing-covering-both-smb1-and-smb2/ https://www.blackhillsinfosec.com/how-to-disable-llmnr-why-you-want-to/ https://github.com/dafthack/MailSniper https://byt3bl33d3r.github.io/practical-guide-to-ntlm-relaying-in-2017-aka-getting-a-foothold-in-under-5-minutes.html

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计