ADCS攻击指北-权限提升
字数 2068 2025-08-29 08:30:12
ADCS攻击指北:权限提升技术详解
背景知识
Active Directory证书服务(AD CS)是Windows Server提供的公钥基础设施(PKI)功能,支持域内身份验证和其他安全功能(如文件加密、电子邮件加密和网络流量加密)。AD CS可以创建、验证和撤销公钥证书。
证书申请流程:
- 客户端生成密钥对
- 客户端发送证书签名请求(CSR)给企业CA服务器
- CA检查CSR内容,决定是否颁发证书
- CA批准后,使用CA私钥签名并颁发证书
关键术语:
- PKI:公钥基础设施,实现证书的产生、管理、存储、分发和撤销
- PKINIT:初始认证的公钥加密技术,可在Kerberos认证的初始阶段使用
ESC1攻击
配置要求
- 有权限获取证书
- 能够登记为客户端身份验证或智能卡登录
- CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT开启
配置步骤
- 打开证书颁发机构
- 在证书模板中右键选择"管理"
- 复制现有模板并修改:
- 常规:修改模板名称
- 使用者名称:选择"在请求中提供"
- 扩展的应用策略:包含客户端身份验证/智能卡验证
- 安全:添加Authenticated Users或Domain Users组的注册权限
- 在证书颁发机构中发布模板
利用方法
使用Certipy工具:
certipy find -u user@domain -p password -dc-ip DC_IP
certipy req -u user@domain -p password -dc-ip DC_IP -ca CA_NAME -template VULN_TEMPLATE -upn administrator@domain
certipy auth -pfx administrator.pfx -dc-ip DC_IP
ESC2攻击
配置要求
与ESC1相同,但扩展中设置"Any Purpose"类型的EKU
利用方法
- 申请Any Purpose证书
- 使用该证书申请高权限证书
- 获取高权限账户的NTLM hash
ESC3攻击
配置1
- 扩展中设置"证书申请代理"的EKU
配置2
- 修改发布要求
利用方法
配置1与ESC2类似,配置2需要使用certify.exe工具
ESC4攻击
配置要求
- 安全组默认完全控制,拥有写入权限
- 工作站身份认证模板
利用方法
- 使用Certipy修改模板权限
- 申请修改后的模板
- 使用证书进行权限提升
- 恢复原始模板权限
ESC5攻击
前提条件
- 域之间存在信任关系
- 各域都搭建了AD CS服务器
利用方法
- 使用LOCAL SYSTEM权限添加ESC1脆弱证书模板
- 利用活动目录同步特性将模板发布到林根域
- 使用脆弱模板申请企业管理员证书
ESC6攻击
配置要求
- 企业CA授予低权限用户请求权限(默认)
- 模板中CA管理员审批未启用(默认)
- 模板中不需要授权的签名(默认)
- CA设置了EDITF_ATTRIBUTESUBJECTALTNAME2标志
利用方法
与ESC1相同,但可以选择任意带有客户端身份认证的模板
关闭EDITF_ATTRIBUTESUBJECTALTNAME2:
certipy ca -u user@domain -p password -dc-ip DC_IP -ca CA_NAME -disable-editf-attributesubjectaltname2
ESC7攻击
配置要求
用户或所属组拥有管理CA权限(如Domain Users、Authenticated Users)
利用方法
- 给用户添加管理证书权限
- 查看并启动SubCA模板(如未启动)
- 请求SubCA模板(记录请求ID)
- 使用issue-request发出证书请求
- 检索已颁发的证书
ESC8攻击
利用方法
- 发现ADCS网页认证地址
- 使用ntlmrelayx.py将CA设置为中继目标
- 使用printerbug、PetitPotam或DFSCoerce强制认证
- 获取base64格式证书
- 使用gettgtpkinit.py申请票据
ESC9攻击
配置要求
- 证书模板使用者名称选择UPN
- 设置msPKI-Enrollment-Flag为524288
- 设置用户ACL
利用方法
- 设置影子账户获取hash
- 修改test账户UPN为administrator
- 申请证书
- 恢复test账户UPN
- 使用证书进行认证
ESC10攻击
场景1
- StrongCertificateBindingEnforcement设置为0
- 利用方法与ESC9相同,但可随意选择支持客户端身份验证的模板
场景2
- 设置注册表CertificateMappingMethods值为4(UPN)
- 修改用户UPN
- 申请证书
- 恢复UPN
- 使用证书请求LDAP并设置RBCD
ESC11攻击
配置要求
域控上关闭强制加密
利用方法
使用ntlmrelay进行中继利用,配合打印机或PetitPotam触发
ESC13攻击
配置要求
- 创建通用组(组内无成员)
- 创建普通用户
- 配置证书模板:
- 使用者名称选择UPN
- 添加新颁发策略
- 设置组权限
- 设置msDS-OIDToGroupLink属性
利用方法
- 申请证书
- 获取票据
- 导入票据导出hash
ESC15攻击
配置要求
- 用户注册权限
- schema版本为1(默认)
- subjectName为请求中提供(默认)
利用方法
- 修改Web Server模板添加注册权限
- 添加客户端认证
- 使用LDAP方式认证(不支持Kerberos)
防御建议
- 限制证书模板权限
- 监控证书申请活动
- 及时安装安全补丁
- 限制CA管理权限
- 启用强证书绑定
- 定期审计AD CS配置
以上攻击技术展示了AD CS环境中多种权限提升路径,管理员应全面评估证书模板配置和权限分配,以降低安全风险。