利用LLMNR和SMB消息签名漏洞:从零到域管理员权限的实战指南

本文详细介绍了如何通过LLMNR和NBNS协议漏洞结合SMB消息签名禁用配置,执行NTLM中继攻击,从外部OWA门户获取初始访问权限,逐步渗透内网直至获取域管理员权限的全过程。

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请求/响应投毒并启动
  • 等待凭证

我们以更全面的方式探讨“SMB认证投毒反射”的NTLM中继主题。我们将仅凭一个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的渗透测试。我们的咨询团队可以为您量身定制套餐;他们随时准备通过[email protected]讨论我们的服务选项。

现在, armed with some background knowledge about the protocols, let’s attack our contrived environment first via OWA, in through the VPN, on to a Linux box, and over to the DCs.

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

  • Recon-ng
  • theHarvester / InSpy
  • Burp and LinkedIn
  • DNSDumpster / DNS UltraTools
  • MXToolbox
  • Metadata Tools
  • Credential Harvesting
  • Pastebin
  • Shodan
  • 数据经纪公司报告(Acxiom、BeenVerified、Epsilon)

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

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

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

我们还继续使用以下命令下载全局地址列表。

1
Get-GlobalAddressList -ExchHostname mail.domain.com -UserName wlabv2\maxine.james -Password Spring2019! -OutFile .\GAL.txt

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

我们可以认证!

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

现在,我们运行Nmap查找东西并直接命中。

1
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响应投毒并启动
  • 等待凭证

以下截图是两个命令的结果,此攻击所需的一切。在一个窗口中:

1
ntlmrelayx.py -t 10.55.100.190

并且,在Responder窗格中,记得在Responder.conf文件中将SMB和HTTP设置为“Off”:

1
./Responder.py -I eth0 -rdw

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

当这些漏洞结合时,在野外更常见,结果可能是毁灭性的。在我们的环境中,我们现在窃取静止的NTLM哈希,并开始基于crackmapexec的掠夺。

1
crackmapexec smb 10.55.100.0/24 -u winlab -H 5120d0cb0df939e3044c5843e37b2c5f --local --lsa

因为为什么不运行整个子网并转储LSA?如下所示,我们捕获了更多用户,其中一个结果是DA。

那么。

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

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

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

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

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

链接

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