当前位置: 首页 > news >正文

Active Directory Certificate Services(AD CS)攻击基础

一、引言

在现代企业网络环境中,Active Directory Certificate Services(AD CS) 是微软提供的一项关键服务,用于构建和管理公钥基础设施(PKI)。AD CS通过颁发和管理数字证书,支持多种安全场景,例如智能卡登录、Wi-Fi/VPN认证、加密文件系统(EFS)以及自动化证书注册。然而,AD CS的复杂性和配置灵活性使其成为攻击者的潜在目标。一旦配置不当,攻击者可以利用AD CS的漏洞迅速从普通域用户提权至域管理员,威胁整个域环境的完整性。


二、AD CS攻击简介

2.1 AD CS的核心功能

AD CS是Active Directory环境中用于管理数字证书的核心组件,其主要功能包括:

  • 证书颁发机构(CA):负责生成、颁发和撤销数字证书。
  • 智能卡登录:通过证书实现高安全性的用户认证。
  • Wi-Fi和VPN认证:利用证书确保设备和用户的安全连接。
  • 加密文件系统(EFS):为文件提供基于证书的加密保护。
  • 自动化证书注册(Autoenrollment):简化证书的分发和管理流程。
  • 网络设备注册服务(NDES):支持非域设备(如路由器)获取证书。
  • Web Enrollment:通过Web界面提供证书申请功能。

这些功能使AD CS成为企业安全基础设施的重要组成部分,但也因其复杂性带来了潜在风险。

2.2 AD CS攻击的威胁

AD CS攻击的核心目标是利用CA服务或证书模板的配置漏洞,伪造高权限用户(如域管理员)的身份,从而获取对域控制器的完全控制。常见的攻击场景包括:

  • 伪造Kerberos票据(TGT):通过伪造用户身份获取域内任意服务的访问权限。
  • 权限提升:从低权限用户(如普通域用户)提权至域管理员。
  • 持久化攻击:利用证书实现长期的隐秘访问。

由于AD CS的广泛部署(尤其在大型企业中),攻击者只需满足少量条件即可实施高危攻击。因此,深入了解AD CS攻击的条件和原理对红蓝双方都至关重要。


三、AD CS攻击的前提条件与环境特征

要成功实施AD CS攻击,攻击者需要满足一系列网络、权限和配置条件。以下是详细的前提条件分析。

3.1 网络层面前提

攻击者需要在目标域环境中获得初始立足点(Foothold),这通常包括以下情况:

  • 域内用户凭据:攻击者通过钓鱼、密码喷洒或漏洞利用获取普通域用户账户。
  • 普通域权限:如域用户组(Domain Users)的默认权限。
  • 机器权限:控制域内某台工作站或服务器的本地管理员权限。
  • 网络连通性:攻击者需要与目标CA服务器通信,通常通过以下协议:
    • HTTP/HTTPS:用于访问Web Enrollment服务(如certsrv)。
    • DCOM/RPC:用于与CA服务器交互或执行证书请求。

如果目标网络启用了防火墙或网络分段,攻击者可能需要进一步利用代理(如SOCKS)或横向移动技术来确保通信畅通。

3.2 AD CS部署特征

目标环境中必须部署AD CS,且包含以下组件之一:

  • 企业CA(Enterprise CA):与Active Directory深度集成,允许基于域用户权限的证书申请。
  • Web Enrollment服务:通过Web界面(如https://<CA-Server>/certsrv)提供证书申请功能,通常是攻击的切入点。
  • 网络设备注册服务(NDES):允许非域设备申请证书,某些场景下可能被滥用。
  • 证书模板:企业CA的核心组件,定义了证书的用途、权限和属性。攻击者通常针对配置不当的模板展开攻击。

3.3 配置漏洞(攻击的关键)

AD CS攻击的成功往往依赖于目标环境的配置错误。以下是常见的漏洞类型:

3.3.1 弱权限控制的证书模板(Misconfigured Certificate Templates)

证书模板是AD CS攻击的核心目标。以下配置错误可能导致模板被滥用:

  • 低权限用户可注册:模板允许Authenticated Users或低权限组(如Domain Users)申请证书。
  • 启用高危EKU:模板包含Client Authentication(客户端认证)或Smartcard Logon(智能卡登录)扩展密钥用法(EKU),可用于Kerberos认证。
  • 支持ALT UPN:模板允许在证书的Subject Alternative Name(SAN)字段中指定任意用户主名称(UPN),从而伪造高权限用户身份。
  • 自定义SAN:攻击者可以自由指定SAN字段,构造恶意证书。

攻击场景(ESC1):攻击者利用支持Client Authentication且允许低权限用户申请的模板,请求包含域管理员UPN的证书,进而通过PKINIT协议获取域管理员的TGT。

3.3.2 证书模板滥用(ESC系列漏洞)

SpecterOps的研究团队提出了ESC(Exploitable Security Configuration)系列漏洞,总结了AD CS中常见的模板滥用场景。以下是主要漏洞类型:

漏洞编号条件描述
ESC1模板允许Authenticated Users请求,EKU包含客户端认证攻击者可申请包含任意UPN的证书,用于伪造Kerberos TGT。
ESC2模板允许“任意主体”注册,支持自定义UPN攻击者可伪造任何用户身份,包括域管理员。
ESC3模板允许签名证书用于身份认证攻击者可利用签名证书执行S4U2Self/S4U2Proxy攻击。
ESC6攻击者可写入危险模板属性通过修改模板配置实现横向移动或权限提升。
ESC8CA允许任意模板申请攻击者可利用未授权模板注册高权限证书。
3.3.3 Web Enrollment服务漏洞

Web Enrollment服务(certsrv)通常通过HTTP/HTTPS提供证书申请功能。如果该服务未启用身份验证或配置不当,攻击者可能通过以下方式滥用:

  • 使用工具如certreqcertutil直接申请证书。
  • 结合PetitPotamNTLM Relay攻击,强制CA服务器向攻击者控制的服务器发起认证,窃取凭据或证书。
3.3.4 CA服务账户权限错误

CA服务器的权限配置不当可能导致严重后果,例如:

  • CA服务以域管理员账户运行:攻击者可直接提取高权限凭据。
  • CA服务账户拥有过多权限:如对域对象的写权限,可用于提权或持久化。

3.4 工具支持的环境

AD CS攻击依赖于成熟的工具链和域环境的默认配置:

  • AD CS服务启用:目标域内至少存在一台CA服务器。
  • Kerberos认证:Active Directory默认使用的认证协议,支持PKINIT(基于证书的Kerberos认证)。
  • 常用工具
    • Certify:用于枚举CA服务器和证书模板。
    • Certipy:支持证书申请、滥用和Kerberos票据生成。
    • Rubeus:执行PKINIT认证,获取TGT。
    • Mimikatz:提取凭据或执行后续攻击。

四、AD CS攻击的基本原理与典型攻击链

4.1 攻击原理概述

AD CS攻击的核心在于利用CA服务或证书模板的配置漏洞,生成伪造的高权限证书。攻击者通过以下步骤实现提权:

  1. 枚举环境:识别CA服务器、可用模板和权限配置。
  2. 申请恶意证书:利用弱权限模板,请求包含高权限用户(如域管理员)UPN的证书。
  3. 伪造身份:使用恶意证书通过PKINIT协议获取Kerberos TGT。
  4. 权限提升:利用TGT访问域控制器或其他高价值目标。

4.2 典型攻击链:ESC1场景

以下是一个基于ESC1漏洞的完整攻击流程,假设攻击者已获得普通域用户凭据:

  1. 获取初始凭据:通过钓鱼或漏洞利用获得普通域用户账户(如user1@domain.local)。
  2. 枚举证书模板:使用Certify运行以下命令,枚举CA服务器和可用模板:
    Certify.exe /ca:ca.corp.local\Corp-CA /enum
    
    输出显示存在一个名为UserCert的模板,支持Client Authentication,允许Authenticated Users申请。
  3. 确认漏洞:检查模板是否允许自定义SAN字段。
  4. 申请恶意证书:使用Certipy请求包含域管理员UPN的证书:
    certipy req -u user1@domain.local -p password -ca Corp-CA -template UserCert -upn admin@domain.local
    
    输出为一个PFX格式的证书文件。
  5. 执行PKINIT认证:使用Rubeus将证书转换为Kerberos TGT:
    Rubeus.exe asktgt /user:admin@domain.local /certificate:user1.pfx
    
    输出为域管理员的TGT。
  6. 访问域控制器:使用TGT通过Mimikatz或其他工具访问域控制器,提取所有域凭据:
    mimikatz.exe "sekurlsa::logonpasswords" "exit"
    

结果:攻击者从普通域用户提权至域管理员,获得对整个域环境的完全控制。


五、优化与高级攻击策略

5.1 提高攻击隐蔽性

为避免触发防御机制(如EDR或SIEM),攻击者可优化以下方面:

  • 减少网络指纹:通过代理(如proxychains)隐藏请求来源。
  • 绕过监控:使用混淆后的工具或自定义Certipy脚本,避免特征检测。
  • 清理日志:在申请证书后,删除或修改CA服务器的日志记录(如Event ID 4886)。

5.2 结合其他攻击向量

AD CS攻击可与其他技术结合,形成更复杂的攻击链:

  • NTLM Relay:利用PetitPotam强制CA服务器发起NTLM认证,结合Web Enrollment服务窃取凭据。
  • Golden Ticket:在获取域管理员TGT后,生成长期有效的Golden Ticket以实现持久化。
  • Pass-the-Ticket:将TGT传递到其他攻击节点,扩大攻击范围。

5.3 防御与缓解措施

防御者可通过以下措施降低AD CS攻击的威胁:

  1. 加固证书模板
    • 禁用不必要的模板,限制Authenticated Users的申请权限。
    • 移除高危EKU(如Client Authentication)或禁止自定义SAN。
  2. 限制CA服务权限
    • 确保CA服务以低权限账户运行,避免使用域管理员账户。
  3. 启用监控
    • 监控CA服务器的异常证书申请事件(如Event ID 4887)。
    • 检查Kerberos认证日志,检测异常的PKINIT请求。
  4. 网络隔离
    • 限制CA服务器与普通工作站的直接通信,启用强认证。
  5. 定期审计
    • 使用工具如PingCastleBloodHound定期扫描AD CS配置,识别潜在漏洞。

六、总结

AD CS攻击是现代域环境渗透测试中的高级技术,利用了企业CA和证书模板的配置缺陷,进而为攻击者提供了从普通域用户到域管理员的快速提权路径。通过深入理解AD CS的配置、漏洞和攻击链,红队可以更高效地发现和利用漏洞,而蓝队则可以采取加固措施降低风险。

相关文章:

  • 泰国跨境电商系统开发:多语言多币种 + 国际物流对接,中泰贸易桥梁
  • 影刀学院课程地图导航汇总
  • 数据库中的索引作用:索引分类、索引失效、聚集索引和非聚集索引
  • 构建高效CMDB管理体系:企业数字化转型的基石
  • tp3.1临时连接指定数据库,切片分类in查询,带过滤需要的数据
  • 工业自动化发展:工业相机在机器视觉领域的应用趋势
  • OpenLayers 图层控制
  • 14.安卓逆向2-frida hook技术-HookJava主动调用
  • 离线部署minio以及主从复制
  • ITIL 4考试介绍
  • atcoder [ABC271D] Flip and Adjust
  • js 查看字符串字节数
  • FreeSurfer的脑区表面重建与注意力nii图结合
  • Java面试题021:一文深入了解微服务之网关Zuul
  • 缓存击穿,缓存穿透,缓存雪崩的原因和解决方案
  • 传智健康---十天项目总结
  • 挑战杯三个项目
  • 09 - TripletAttention模块
  • RAG数据集综述
  • 第六章 进阶19 琦琦的追求
  • 沙市网站建设/焊工培训班
  • 青岛市住房和城乡建设局官方网站/seo招聘
  • 合肥个人做网站/资源网站优化排名软件
  • 昌乐做网站/新的seo网站优化排名 网站
  • WordPress审核评论插件/杭州seo代理公司
  • 免费做宣传单页的网站/怎么做seo