★且听安全★-点关注,不迷路!
★漏洞空间站★-优质漏洞资源和小伙伴聚集地!
本文来自漏洞空间站秘圈小伙伴 XCyber !
2022 年 5 月的微软补丁日,除了前面给小伙伴们分享的 SharePoint 反序列化漏洞 CVE-2022-29108 :
CVE-2022-29108&CVE-2022-22005 SharePoint远程命令执行漏洞分析与复现
QCyber,公众号:且听安全漏洞空间站上线啦!CVE-2022-29108&CVE-2022-22005 SharePoint远程命令执行漏洞分析与复现
还有一个漏洞也很值得关注-- Windows Active Directory 域服务组件特权提升漏洞 CVE-2022-26923 ,此漏洞的 CVSSv3 评分为 8.8 。该漏洞允许低权限用户在安装了 Active Directory 证书服务 (AD CS) 的默认域环境中将权限提升到域管理员。
受影响的 Windows 版本:
-
Windows 8.1
-
Windows 10 Version 1607, 1809, 1909, 2004, 20H2, 21H1, 21H2
-
Windows 11
-
Windows Server 2008,2012,2016,2019,2022
安装过程按默认配置进行,选择企业 CA(独立 CA 虽然也能实现证书颁发,但是并不会泄露域控证书)。
创建普通域账号:
`test1 ` 账号属于普通域用户组 `Domain Users`,我们可以利用该账号在域控上创建一个普通的机器账号 `hackpc`。可以看到该机器账号的默认 DNS 名称为 `hackpc.chronet.com`。
通过 certipy 工具,我们可以为该机器账号申请一个证书(不过该证书是正常的,该步骤与利用无关,只是作为对比),目前一切都比较正常:
借助域控服务器处理逻辑上的一个漏洞可以将 `hackpc` 的 `DNSHostName` 强制修改成域控的名称:`WIN-NISBSVFAJI.chronet.com`,以此来欺骗证书服务。
在正常情况下,如果直接修改 `DNSHostName` 为域控名称,会因名称冲突而修改失败。根据 MS-ADTS ( 3.1.1.5.1.3 唯一性约束)可以发现系统不是要求 `DNSHostName` 具备唯一性,而是要求 `servicePrincipalName` 具有唯一性。其实在修改 `DNSHostName` 时,会间接修改 `servicePrincipalName` 中相关的值,导致冲突。因此我们可以先删除 `servicePrincipalName` 中会导致冲突的值,再修改 `DNSHostName` 就可以了。
修改 `hackpc` 的 `servicePrincipalName`:
修改 `hackpc` 的 `DNSHostName`:
通过 certipy 工具,我们再为该机器账号申请证书,可以看到申请的证书是颁发给主机 WIN-NISBSVFAJI.chronet.com 的,也就是说我们拿到了域控的证书:
有了域控证书,我们可以尝试提权了,这里使用 certipy 工具可以获取域控的 NT hash 值:
再利用 NT hash 值读取账号信息:
整个漏洞利用过程虽然简单,其实也涉及了多处权限管理不严或者逻辑漏洞:
-
权限限制不严:导致我们可以用普通域用户创建机器账号,并修改其关键属性
-
唯一性约束混乱:导致 `DNSHostName` 可以重名,而作为防线的 `servicePrincipalName` 也可以被修改绕过
-
证书问题:颁发过程没有交叉验证申请者身份
有兴趣获取完整工具下载地址和漏洞分析过程的小伙伴,请加入我们的漏洞空间站-致力于打造优质漏洞资源和小伙伴聚集地!
由于传播、利用此文档提供的信息而造成任何直接或间接的后果及损害,均由使用本人负责,且听安全团队及文章作者不为此承担任何责任。
★且听安全★-点关注,不迷路!
★漏洞空间站★-优质漏洞资源和小伙伴聚集地!
原文始发于微信公众号(且听安全):CVE-2022-26923 Windows Active Directory 域服务组件权限提升漏洞
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论