当前,不少企业在安装AD域的同时安装ADCS证书服务器来管理证书,攻击者会针对ADCS进行攻击从而获取域控权限,导致AD集权安全收到威胁。
本系列前两篇文章,主要介绍了ADCS的基础架构,对证书模板错误配置攻击ESC1-8以及THEFT1-5进行了配置与分析。
本文为第三篇,也是本系列最后一篇。我们将为大家分享账户持久化及域持久化相关内容。
PERSIST1-通过证书窃取活跃用户凭据
如果存在企业CA,则用户可以请求任何可供其注册的模板的证书。在用户凭证被盗用的情况下,可以通过该身份凭据向已存在的证书模板申请一个可以进行AD身份验证的模板,具体模板需符合以下情况:
- 证书模版允许公开注册
- 允许域用户或者所属的组进行注册
- 还得具有以下EKU:
客户端认证 1.3.6.1.5.5.7.3.2
PKINIT客户端认证 1.3.6.1.5.2.3.4
智能卡登录 1.3.6.1.4.1.311.20.2.2
任何目的 2.5.29.37.0
子CA (no EKUs)
- 不需要证书管理员批准
默认情况下在所有的证书模版中,用户模板符合此项要求,某些情况下,用户模板可能会被禁止使用。
Certify.exe find /clientauth 命令将通过LDAP查询符合上述条件的可用模板:
如上所示,用户模板存在并符合标准。默认的用户模板发放的证书有效期为一年,证书管理员可能会修改到期时间来延长使用期限,并且如果攻击者使用此类的恶意模板注册证书,则只要证书还未失效则攻击者还可以利用此证书来进行身份验证,即使用户更改了此密码!
在发现任何存在漏洞的模板时,需要特别关注“注册主体”。如“注册权限和协议”部分所述,对于已发布的模板,存在一种特殊的“证书注册”扩展权限,用于定义允许在证书中进行注册的主体。Certify的find命令将枚举这些主体,以及模板的ACL信息。攻击者只需要控制具有在模板中进行注册的权限的主体即可。
我们可以通过GUI界面或者certify来申请证书:
Certify.exe request /ca:ADCS.lohack.com\lohack-ADCS-CA /template:User