全域控环境中的证书安全性!!!ESC1 至 ESC14 测试方法
在域控环境中,证书管理和配置是确保网络安全的重要组成部分。攻击者往往利用证书配置的漏洞来提升权限、伪装身份或绕过安全控制。为了有效防御这些威胁,我们需要深入了解和检查各种可能的安全漏洞。
本文介绍了14项关键的证书安全性检查方法,这些方法涵盖了从证书模板配置到注册权限、颁发策略等方面的全面测试。通过系统地检查这些方面,我们可以识别和修复潜在的安全问题,确保证书管理过程中的每一环节都经过严格的安全审查。这不仅有助于提升域控环境的整体安全性,也能为组织防御高级持久性威胁(APT)和其他复杂攻击提供有效的保障。
域控环境证书检查项
以下是对 ESC1 到 ESC14 各项检查的标题:
安全警告:
在执行检查和操作时,请确保备份数据、限制权限并遵循组织的安全策略,以防止潜在的风险和损害。如果可能,在测试环境中先行验证检查步骤和工具,以避免对生产环境造成潜在影响。
Active Directory证书服务ESC1 到 ESC14 的检查方法和 PowerShell 命令示例:
ESC1 - 错误配置的证书模板
目标: 检查是否有证书模板允许域用户指定任意主体替代名称 (SAN)。
# 获取证书模板的配置
$Template = Get-ADObject "CN=TemplateName,$TemplateContainer" -Properties msPKI-Subject-Alt-Name
$Template.msPKI-Subject-Alt-Name
结果: 如果发现模板允许域用户注册任意 SAN,这可能会导致伪装成其他用户(如域管理员),需调整模板配置以限制不安全的 SAN。
ESC2 - CSR 中指定 SAN 和 EKU
目标: 检查证书模板是否允许请求者在证书签名请求 (CSR) 中指定 SAN 和 EKU。
# 检查证书模板是否允许指定 SAN 和 EKU
$Template = Get-ADObject "CN=TemplateName,$TemplateContainer" -Properties msPKI-Extended-Key-Usage, msPKI-Subject-Alt-Name
$Template.msPKI-Extended-Key-Usage
$Template.msPKI-Subject-Alt-Name
msPKI-Extended-Key-Usage
和 msPKI-Subject-Alt-Name
是否允许 CSR 中的任意值。结果: 如果 CSR 允许指定任何用途的 SAN,需修改模板以限制合法用途。
ESC3 - “注册代理” EKU
目标: 检查是否有模板允许具有“注册代理” EKU 的用户为其他用户申请证书。
# 检查证书模板的 EKU
$Template = Get-ADObject "CN=TemplateName,$TemplateContainer" -Properties msPKI-Extended-Key-Usage
$Template.msPKI-Extended-Key-Usage
msPKI-Extended-Key-Usage
是否包括“注册代理” EKU。结果: 如果发现有此类模板,需审查其使用情况,并确保其配置不导致安全漏洞。
ESC4 - 修改模板 ACL
目标: 检查是否有证书模板的 ACL 被修改,使其允许未经授权的用户进行注册。
# 检查证书模板的 ACL
$Template = Get-ADObject "CN=TemplateName,$TemplateContainer" -Properties nTSecurityDescriptor
$Template.nTSecurityDescriptor.Access
Allow
权限。结果: 如果 ACL 设置不当,应调整以限制不必要的权限。
ESC5 - 子域模板权限提升
目标: 检查是否可以通过编辑子域中的模板来提升权限。
# 检查子域中的证书模板权限
$Template = Get-ADObject "CN=TemplateName,$TemplateContainer" -Properties nTSecurityDescriptor
$Template.nTSecurityDescriptor.Access
结果: 如果发现模板配置允许权限提升,需调整以确保正确的权限设置。
ESC6 - EDITF_ATTRIBUTESUBJECTALTNAME2 标志
目标: 检查是否滥用了 EDITF_ATTRIBUTESUBJECTALTNAME2 标志,在 SAN 中插入恶意信息。
# 检查证书模板的 SAN 配置
$Template = Get-ADObject "CN=TemplateName,$TemplateContainer" -Properties msPKI-Subject-Alt-Name
$Template.msPKI-Subject-Alt-Name
结果: 如果标志配置不当,需调整以防止信息注入攻击。
ESC7 - 管理 CA 的权限
目标: 检查是否有低权限用户能够管理证书颁发机构 (CA),并进行攻击。
# 检查低权限用户的 CA 管理权限
$CA = Get-ADObject "CN=CAName,$CAContainer" -Properties msPKI-CA-Policy
$CA.msPKI-CA-Policy
结果: 如果发现低权限用户可以管理 CA,需调整配置以限制访问。
ESC8 - 证书模板属性
目标: 检查是否存在配置错误的证书模板属性。
# 检查证书模板的属性
$Template = Get-ADObject "CN=TemplateName,$TemplateContainer" -Properties *
$Template
结果: 如果发现不安全的策略,需调整配置以符合安全最佳实践。
ESC9 - 证书模板配置
目标: 检查是否有不正确配置的证书模板。
# 检查证书模板的详细配置
$Template = Get-ADObject "CN=TemplateName,$TemplateContainer" -Properties *
$Template
结果: 如果发现不安全的多级模板管理配置,需调整以确保安全。
ESC10 - 扩展检查
目标: 检查证书模板是否包含不安全的扩展配置。
# 检查证书模板的扩展配置
$Template = Get-ADObject "CN=TemplateName,$TemplateContainer" -Properties msPKI-Extended-Key-Usage
$Template.msPKI-Extended-Key-Usage
结果: 如果发现权限配置不安全,需调整模板以限制访问。
ESC11 - 发行政策
目标: 检查证书模板是否有不安全的发行政策。
# 检查证书模板的发行政策
$Template = Get-ADObject "CN=ESC13Template,$TemplateContainer" -Properties msPKI-Certificate-Policy
$Template.msPKI-Certificate-Policy
# 检查 OID 组链接
$OIDLink = Get-ADObject "CN=OIDLink,$OIDContainer" -Properties msDS-OIDToGroupLink
$OIDLink.msDS-OIDToGroupLink
# 验证组的类型
$Group = Get-ADGroup "ESC13Group" -Properties GroupScope
$Group.GroupScope
msPKI-Certificate-Policy
和 OID 组链接是否指向正确的组,并验证组的范围。结果: 显示证书模板的发行策略扩展和 OID 组链接,确认是否允许不安全的策略,如果发现发行政策不安全,需调整以符合安全标准。。
ESC12 - 证书申请权限
目标: 检查证书申请权限配置是否允许不安全的证书注册。
# 检查证书申请权限
$Template = Get-ADObject "CN=TemplateName,$TemplateContainer" -Properties nTSecurityDescriptor
$Template.nTSecurityDescriptor.Access
结果: 展示证书模板的权限配置,确认是否存在不正确的权限设置,如果发现证书用途配置不安全,需调整以确保安全。
ESC13 - 证书模板配置错误
目标: 检查证书模板配置是否存在错误。
# 检查证书模板配置
$Template = Get-ADObject "CN=TemplateName,$TemplateContainer" -Properties *
$Template
结果: 显示证书模板中允许的证书用途,确认是否存在不安全的用途配置,如果发现不安全的 OID 组链接,需调整发行策略配置。
ESC14 - 证书颁发策略
目标: 检查证书颁发策略是否允许不安全的证书颁发。
# 检查证书颁发策略
$Template = Get-ADObject "CN=TemplateName,$TemplateContainer" -Properties msPKI-Certificate-Policy
$Template.msPKI-Certificate-Policy
结果: 展示证书生命周期管理设置,确认是否存在不安全的管理配置,如果 ACL 配置不当,需调整以防止不安全的证书颁发。
希望这些信息对您有所帮助!如果觉得这篇文章有价值,欢迎点赞和分享。感谢您的支持!
原文始发于微信公众号(星空网络安全):全面检查域控环境中的证书安全性!!!ESC1 至 ESC14 测试方法
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论