_本文共计:1145__字,_预计阅读时间:3 分钟
我们在《域渗透系列 - ADCS技术(概述)》中大致介绍了ADCS的相关概念,并对一些常用语和缩略词进行了释义,如果对部分术语的记忆感到模糊,可随时回看。接下来将就具体的技术ID进行分享。
ESC1 - ESC8
域升级技术
THEFT1 - THEFT5
证书窃取技术
PERSIST1 - PERSIST3
账户持久性技术
DPERSIST1 - DPERSIST3
域持久性技术
ESC2 - 证书模板配置错误
第二种滥用方法ESC2与ESC1都属于证书模板存在错误配置。此易受攻击的配置(条件)如下所示:
**企业 CA 授予低特权用户请求权限。**企业 CA 的配置必须允许低特权用户请求证书。
**管理员审批处于停用状态。**当此设置开启时,用户请求证书需要得到CA管理员权限用户的批准。
**不需要授权签名。**此设置要求任何 CSR 都由现有授权证书签名。有关详细信息,请参阅本文开头的“注册代理、授权签名和应用程序策略”部分。
**低特权用户具有证书注册权限。**拥有证书注册权限后,低权限攻击者可以请求并获取基于模板的证书。注册权限是通过证书模板 AD 对象的安全描述符授予的。
证书模板定义的EKU为空或Any。
ESC2 与 ESC1 在 EKU 配置上存在不同,在模板属性→扩展→应用程序策略中可见,此处存在ESC2误配置模板的应用程序策略被设置为空。
其余前置条件细节可参考《域渗透系列 - ADCS技术(ESC1)》
具有此 EKU 的模板不能用于在没有 CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT 标志(即无法指定SAN)的情况下以其他用户身份请求身份验证证书,但攻击者可以使用它们作为请求它们的用户向 AD 进行身份验证,并且这两个 EKU 本身肯定是危险的。
攻击者可以将 具有任何用途的证书 用于任何目的,客户端身份验证、服务器身份验证、代码签名等。相比之下,攻击者也可以将没有 EKU 的证书(从属 CA 证书)用于任何目的,但也可以使用它来签署新证书。因此,使用从属 CA 证书,攻击者可以在新证书中指定任意 EKU 或字段。
但是,如果 NTAuthCertificates 对象不信任从属 CA(默认情况下不信任),则攻击者无法创建可用于域身份验证的新证书。尽管如此,攻击者仍可以使用任何 EKU 和任意证书值创建新证书,攻击者可能会滥用其中的大量内容(例如,代码签名、服务器身份验证等),并可能对网络中的其他应用程序(如 SAML、AD FS 或 IPSec)产生重大影响。
如果攻击者可以获取任何用途或从属 CA (SubCA) 证书,无论它是否受 NTAuthCertificates 信任,这是非常危险的。针对 AD 林的配置架构运行时,可以使用以下 LDAP 查询枚举与此方案匹配的模板:
(&(objectclass=pkicertificatetemplate)(!(mspki-enrollment-
flag:1.2.840.113556.1.4.804:=2))(|(mspki-ra-signature=0)(!(mspki-ra-
signature=*)))(|(pkiextendedkeyusage=2.5.29.37.0)(!(pkiextendedkeyusag
e=*))))
ESC2 - 示例
此处仅示例使用 Certify 识别 ESC2,其余步骤可参考 《域渗透系列 - ADCS技术(ESC1)》
使用 Certify 枚举易受攻击模板
Certify.exe find /vulnerable
如图为一个易受ESC2攻击的证书模板,标记处分别为:
证书已启用 CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT 标志
空 EKU
域用户具有注册权限
防御 ID:
强化证书模板设置 - PREVENT4
强制执行严格的用户映射 - PREVENT7
监视用户/计算机证书注册 - DETECT1
监视证书身份验证事件 - DETECT2