CVE-2021-28316:Microsoft Windows WLAN AutoConfig Service 安全功能绕过漏洞 - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

CVE-2021-28316:Microsoft Windows WLAN AutoConfig Service 安全功能绕过漏洞

xiaohui 漏洞 2021-04-26 09:43:23
280316
收藏

导语:由于入域的工作站在锁屏页面中可以修改连接 Wi-Fi,攻击者可以滥用此功能将工作站接入非法的 Wi-Fi 中进行身份验证,以捕捉 MSCHAPv2。

由于入域的工作站在锁屏页面中可以修改连接 Wi-Fi,攻击者可以滥用此功能将工作站接入非法的 Wi-Fi 中进行身份验证,以捕捉 MSCHAPv2。

默认情况下,加入域的Windows工作站允许从锁定屏幕访问网络选择UI。

可以物理访问具有WiFi功能的锁定设备(例如笔记本电脑或工作站)的攻击者可以滥用此功能,以强制笔记本电脑针对恶意访问点进行身份验证,并捕获域计算机帐户的MSCHAPv2质询响应哈希。

然后,可以在不到24小时的时间内将此质询响应哈希值提交给crack.sh以恢复计算机帐户的NTLM哈希值。

一旦恢复,此NTLM哈希与域SID结合可用于伪造Kerberos银票据,以模拟特权用户并危及主机。比如,为笔记本电脑的CIFS服务创建一张银票,以便以SMB身份作为SYSTEM用户进行身份验证并获得对硬盘的无限制访问权限。银票据(silver ticket):它不需要和域控制器进行通信,原理是伪造TGS,使用的是计算机账户的hash进行加密的,所以只能访问指定的权限,也就是只能访问特定的服务。

由于可以从锁定的设备执行攻击,因此可以利用它绕过BitLocker完整磁盘加密并获得对设备文件系统的访问权限。

此外,由于可以为特权用户伪造银票,因此也可以利用此攻击将特权提升到设备上本地管理员的特权。具体视频,请点此观看。

受影响的版本

确认该漏洞存在于加入域的Windows 10主机上。

Windows的早期版本也可能会受到影响,但尚未经过测试。

背景

熟悉企业无线网络的人可能会熟悉受保护的可扩展身份验证协议(PEAP)。

PEAP是隧道式身份验证协议,这意味着首先与RADIUS服务器建立SSL隧道(称为阶段1),以保护在身份验证(阶段2)期间发送的凭据材料。

Windows环境中使用的最常见的内部身份验证方法之一是MSCHAPv2。

这项研究的高潮是crack.sh服务,该服务保证为任何给定的MSCHAPv2质询响应哈希(无论密码复杂度如何)都恢复NTLM哈希。

在Windows环境中,当域用户使用带有MSCHAPv2的PEAP对无线访问点进行身份验证时,所产生的质询响应哈希是从域用户密码的NTLM哈希得出的。

除了域用户身份验证外,Windows还提供了使用计算机或计算机身份验证的选项,这可以允许设备在域用户登录之前向无线网络进行身份验证。

需要计算机身份验证来解决“先有鸡还是先有蛋”的情况,即设备在能够到达Active Directory并对域用户进行身份验证之前,首先需要对网络进行身份验证。为了为用户创建无缝体验,这种身份验证在用户登录到设备之前从锁屏开始进行。

计算机身份验证可以使用客户端证书或MSCHAPv2作为其内部身份验证机制。如果是客户端证书,则使用为域计算机帐户颁发的证书进行身份验证。但是,如果计算机身份验证与PEAP和MSCHAPv2一起使用,会发生什么情况呢?在本例中,域计算机帐户的NTLM哈希将用于身份验证。

计算机帐户密码复杂、冗长且随机生成。研究人员不可能恢复这个帐户的纯文本密码,所以为什么这很重要?所以研究人员无法恢复纯文本密码,但是由于使用了crack.sh,研究人员可以恢复NTLM哈希值。

计算机帐户NTLM哈希在Windows域环境中具有特殊意义,因为它们与Kerberos银票有关。使用计算机帐户的NTLM哈希对由计算机托管的服务(例如CIFS服务)的Kerberos服务票证进行签名和加密。

为了伪造服务票,研究人员需要以下信息:

1.计算机帐户的NTLM哈希;

2.研究人员想获得的服务名称;

3.域SID;

一旦研究人员从crack.sh中恢复了计算机帐户NTLM哈希,所需要的就只是域SID,研究人员可以伪造研究人员自己的票证。域SID不是秘密信息,可以由任何常规域用户检索。

权限从域用户升级到本地管理员

为了对此进行武器化,研究人员首先需要创建一个恶意访问点,该访问点支持将PEAP和MSCHAPV2设置为内部身份验证方法。有很多工具可以完成此操作,这里研究人员使用hostapd-mana。

注意为了允许Windows 10的更高版本连接到访问点,需要使用受信任的CA对RADIUS服务器证书进行签名。否则,将在Windows 10请求方上导致模糊的“连接失败”错误。

在这里,研究人员使用LetsEncrypt通过以下命令实现此目的。请注意,证书上的服务器名称无关紧要,只需由受信任的权威机构对其进行签名即可。

2.png

生成证书后,研究人员使用hostapd配置对其重命名以使其更有意义,并生成DH参数。

3.png

然后,研究人员创建一个包含以下内容的“hostapd.conf”文件:

4.png

和“ hostapd.eap_user”文件,其内容如下:

5.png

完成此操作后,可以使用命令./hostapd hostpad.conf运行hostpad-mana。此时,攻击者可以迫使笔记本电脑从锁定屏幕连接到访问点(忽略证书错误),从而捕获计算机帐户的MSCHAPV2质询响应哈希,如下所示。

6.png

由于MSCHAPv2要求访问点也知道密码,因此无线身份验证将在此阶段失败,但是将捕获质询响应哈希。

恢复NTLM哈希

然后,可以使用工具chapcrack将捕获的MSCHAPv2挑战响应哈希值转换为Cloud Crack格式,并提交给crack.sh进行破解。

8.png

出于POC目的,在研究人员的实验室中,研究人员使用了Impacket的工具secretsdump.py来验证chapcrack输出的K3的前4个字节与计算机帐户的NTLM哈希的后4个字节是否匹配。

9.png

作为经过身份验证的域用户,研究人员可以通过许多不同的方式来获取域SID。最简单的方法就是简单地运行whoami / all。

10.png

现在,研究人员已经获得了为设备上的CIFS服务伪造银票据所需的所有信息。由于研究人员可以指定服务票据中包含的用户和组SID,因此可以使用它以管理用户身份访问CIFS服务。

研究人员可以使用来自Impacket的工具ticketer.py和以下命令来执行此操作。

11.png

12.png

使用smbclient,研究人员现在可以访问笔记本电脑的整个文件系统。

13.png

Impacket中的smbexec.py之类的工具提供了一种简便的方法,可以在SYSTEM用户的安全环境中在主机上执行命令。

14.png

后来发现可以从锁定屏幕上获取质询响应哈希之后,这打开了一些更有趣的攻击方案,例如,针对启用了全盘加密(FDE)的锁定笔记本电脑。

但是,为了利用这一点,还需要域SID。研究人员需要一种无需先登录到计算机即可恢复它的方法。

在发现这次攻击的几个月后,一个客户找到研究人员,对其一台SOE笔记本电脑进行了测试。他们特别担心的一个问题是,如果攻击者能够得到一台被BitLocker全磁盘加密保护的锁定笔记本电脑,会造成多大的破坏。

在这个攻击场景中,研究人员重新考虑了这个想法,并着手看看是否可以找到一种无需登录计算机即可泄漏域SID的方法。

当加入域的计算机首次访问网络时,将执行许多CLDAP搜索,以识别域控制器上可用的服务,这些消息称为LDAP ping。

这听起来很有希望,因为在此发现过程中使用的CLDAP查询包含以下信息:

· DnsDomain

· Host

· DnsHostName

· User

· DomainSid

· DomainGuid

研究人员的初始测试涉及运行Wireshark捕获并观察无线客户端发出的LDAP DNS请求。

15.png

将这些srv-host DNS条目添加到dnsmasq配置并重新连接客户端后,研究人员找到了所需的内容。

16.png

这样,研究人员现在拥有了尝试攻击锁定笔记本电脑所需的一切条件。

在启用了全盘加密的情况下访问锁定的计算机

同样的rouge AP配置可以用于从目标设备的锁屏捕获挑战响应哈希并提交到crack.sh。

为了泄漏域SID,研究人员需要将笔记本电脑加入攻击者控制的网络,在该网络中,研究人员将使用攻击者的IP地址响应笔记本电脑发出的所有DNS SRV请求。

这将使研究人员能够捕获包含域SID和域名的“ LDAP ping”数据包。同样,研究人员将运行恶意访问点,并强制客户端从锁定屏幕进行连接。但是,这次研究人员将使用下面的hostapd.conf和hostapd-psk文件创建WPA2-PSK网络,而不是配置访问点以支持PEAP身份验证。

17.png

接下来创建一个文件hostapd-psk来为网络00:00:00:00:00:00 airstrike配置密码。

当研究人员希望笔记本电脑连接到研究人员的网络时,研究人员还需要使用带有以下dnsmasq.conf文件的dnsmasq运行DHCP和DNS服务器。

18.png

现在,研究人员可以为无线适配器分配IP地址并启动DNS / DHCP服务器。

19.png

为了从笔记本电脑中捕获流量,研究人员还将在无线接口上启用tcpdump。

20.png

一旦运行,研究人员就可以从锁定屏幕连接到无线网络,并且应该还会看到笔记本电脑从DHCP服务器接收到一个IP。

当笔记本电脑首次连接时,研究人员将看到许多未响应的SRV DNS请求。研究人员将记录所有这些内容,并修改dnsmasq.conf文件,以使用无线接入点的IP地址响应它们。

21.png

现在,研究人员可以从接入点断开并重新连接笔记本电脑,并检查新pcap文件的内容。如果研究人员对CLDAP协议的数据包进行过滤,可以看到笔记本电脑尝试对攻击者IP进行LDAP ping操作。 LDAP ping消息的内容包含Active Directory域名,笔记本电脑的主机名和域SID。

研究人员可以再次使用工具ticketer.py为CIFS服务创建一张银票,并使用smbclient进行身份验证以不受限制地访问设备的文件系统。

注意:在某些情况下,默认的RID 500帐户在加入域的主机上没有本地管理员权限。在这种情况下,可以通过增加银票中包含的RID,直到发现有效帐户来采取暴力手段。

目前研究人员已把该漏洞披露给Microsoft安全响应中心,并且已在2021年4月的最新安全更新中得到解决。

作为进一步的加强措施,可以通过以下组策略设置禁用从锁定屏幕访问网络选择UI的功能。

22.png

也可以通过启用DontDisplayNetworkSelectionUI标志通过注册表配置此设置。

23.png

本文翻译自:https://shenaniganslabs.io/2021/04/13/Airstrike.html如若转载,请注明原文地址
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

 
本站4hou.com,所使用的字体和图片文字等素材部分来源于原作者或互联网共享平台。如使用任何字体和图片文字有侵犯其版权所有方的,嘶吼将配合联系原作者核实,并做出删除处理。
©2022 北京嘶吼文化传媒有限公司 京ICP备16063439号-1 本站由 提供云计算服务