揭秘ForgeCert:如何利用Golden Certificates实现Active Directory认证绕过

揭秘ForgeCert:如何利用Golden Certificates实现Active Directory认证绕过
揭秘ForgeCert如何利用Golden Certificates实现Active Directory认证绕过【免费下载链接】ForgeCertGolden certificates项目地址: https://gitcode.com/gh_mirrors/fo/ForgeCertForgeCert是一款强大的工具它利用BouncyCastle C# API和被盗的证书颁发机构CA证书及私钥为任意用户伪造能够对Active Directory进行身份验证的证书。这种攻击在“Certified Pre-Owned”白皮书中被编码为DPERSIST1该代码库在白皮书发布约45天后发布。背景Golden Certificates的威胁Active Directory环境的安全至关重要而证书颁发机构CA的私钥安全更是其中的关键。如果CA的私钥未受到硬件解决方案如TPM或HSM的保护那么该密钥将使用数据保护APIDPAPI进行加密并存储在CA服务器的磁盘上。一旦攻击者能够入侵CA服务器就可以使用Mimikatz或SharpDPAPI等工具提取未受硬件保护的任何CA证书的私钥。证书注册流程解析证书的注册过程涉及多个关键步骤以下是对正常证书注册流程的概述客户端用户或计算机生成公钥/私钥对。客户端向企业CA服务器发送证书请求CSR。企业CA会检查证书模板是否存在、CSR中的设置是否被证书模板允许以及用户是否被允许注册证书。CA生成证书并使用CA私钥对其进行签名。客户端将证书存储在Windows证书存储中并使用证书执行允许的操作身份验证、代码签名等。因为用于签署已颁发证书的唯一关键材料是CA的私钥所以如果攻击者窃取了这样的密钥用于NTAuthCertificates中的证书他们就可以伪造能够进行域身份验证的证书。这些伪造的证书可以用于域中的任何主体尽管该帐户需要处于“活动”状态才能进行身份验证因此krbtgt等帐户将无法使用并且只要CA证书有效这些证书就将有效默认情况下通常为5年但可以设置为更长时间。ForgeCert的使用方法要使用ForgeCert进行证书伪造需要以下几个关键步骤和参数命令行选项ForgeCert的命令行选项如下 --CaCertPath必需CA私钥为.pfx或.p12文件。 --CaCertPasswordCA私钥文件的密码。 --Subject证书中的主题名称默认为CNUser。 --SubjectAltName必需要进行身份验证的用户的UPN。 --NewCertPath必需保存新.pfx证书的路径。 --NewCertPassword必需.pfx文件的密码。 --CRL伪造证书的CRL的ldap路径。 --help显示帮助屏幕。 --version显示版本信息。实际使用示例假设我们有以下情境被盗CA的证书为ca.pfx密码为Password123!。主题是任意的因为我们要为证书指定主题备用名称。主题备用名称即我们要为其伪造证书的用户是localadmintheshire.local。伪造的证书将保存为localadmin.pfx密码为NewPassword123!。使用以下命令进行证书伪造 C:\Tools\ForgeCertForgeCert.exe --CaCertPath ca.pfx --CaCertPassword Password123! --Subject CNUser --SubjectAltName localadmintheshire.local --NewCertPath localadmin.pfx --NewCertPassword NewPassword123!执行命令后会显示CA证书信息和伪造证书信息最终提示伪造的证书已保存到localadmin.pfx。防御建议为了防范Golden Certificates攻击我们可以采取以下防御措施保护CA私钥CA的私钥安全是重中之重。应使用硬件解决方案如TPM或HSM来保护CA的私钥防止攻击者通过入侵CA服务器获取私钥。实施OCSP缓解措施Fabian Bader发表了一篇关于如何通过调整Microsoft OCSP来缓解许多“Golden Certificates”使用的优秀文章。尽管这种方法并非万无一失但默认情况下序列号将被随机化因此OCSP预防在许多情况下应该有效值得实施。检测与响应可以参考“Certified Pre-Owned”白皮书中的PREVENT1、DETECT3和DETECT5获取有关预防和检测的指导。此外当前ForgeCert代码库的TypeRefHash是b26b451ff2c947ae5904f962e56facbb45269995fbb813070386472f307cfcf0TypeLib GUID是bd346689-8ee6-40b3-858b-4ed94f08d40a这些信息可用于构建Yara等检测规则。总结“Golden Tickets”伪造的TGT和“Golden Certificates”强制的AD CS证书之间存在明显的相似之处。krbtgt哈希和CA私钥都是Active Directory环境安全的关键加密材料都可用于为任意用户伪造身份验证器。然而krbtgt哈希可以通过DCSync远程检索而CA私钥据我们所知必须通过CA计算机上的代码执行来恢复。虽然krbtgt哈希可以相对容易地轮换但轮换CA私钥则困难得多。ForgeCert的出现为安全研究人员和防御者提供了一个了解和防范Golden Certificates攻击的工具。通过了解其原理和使用方法我们可以更好地保护Active Directory环境的安全。要获取ForgeCert工具可以通过以下命令克隆仓库git clone https://gitcode.com/gh_mirrors/fo/ForgeCert【免费下载链接】ForgeCertGolden certificates项目地址: https://gitcode.com/gh_mirrors/fo/ForgeCert创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

最新新闻

日新闻

周新闻

月新闻