ForgeCert:伪造认证证书的神器
项目地址:https://gitcode.com/gh_mirrors/fo/ForgeCert
项目介绍
ForgeCert 是一款基于BouncyCastle C# API的开源工具,其目的是利用被窃取的证书颁发机构(CA)证书和私钥来伪造能够通过Active Directory身份验证的任意用户证书。这个攻击方法在"Certified Pre-Owned" 白皮书中被称为“DPERSIST1”。此代码库在白皮书发布约45天后公开。
ForgeCert 的主要作者是@tifkin_,而相关Active Directory证书服务研究的共同作者有[@tifkin_]和@harmj0y。
项目技术分析
ForgeCert 基于白皮书中描述的技术背景,即当CA服务器的私钥(用于NTAuthCertificates中的CA证书)未受硬件(如TPM或HSM)保护时,通过DPAPI加密并存储在磁盘上。一旦服务器被攻陷,攻击者可通过Mimikatz或SharpDPAPI项目提取私钥。ForgeCert 使用BouncyCastle的X509V3CertificateGenerator来生成伪造证书。
应用场景
ForgeCert可用于以下情况:
- 对已知CA证书和私钥进行恶意复制,以伪造任何域内活动账户的身份验证证书。
- 攻击者可利用伪造证书进行长期且难以检测的身份冒充,因为这些证书不能被正常撤销。
项目特点
- 易用性:ForgeCert 提供了清晰的命令行界面,使攻击者可以轻松创建伪造证书。
- 灵活性:伪造的证书可以针对任何活动的域用户,只要其账户能进行身份验证。
- 隐蔽性:由于不在常规证书签发流程中产生,因此无法通过标准机制追踪或撤销伪造证书。
- 防御难度:尽管有防御措施,但考虑到金票(伪造TGT)和金证书(强制AD CS证书)之间的平行性,防御此类攻击具有挑战性。
如何使用ForgeCert?
ForgeCert 工具要求提供CA证书路径、目标用户的主题备用名称、新证书保存路径以及新证书密码。例如,您可以使用以下命令伪造一个证书:
ForgeCert.exe --CaCertPath ca.pfx --CaCertPassword "Password123!" --Subject "CN=User" --SubjectAltName "localadmin@theshire.local" --NewCertPath localadmin.pfx --NewCertPassword "NewPassword123!"
防御策略
预防和检测ForgeCert的攻击,包括监控TypeRefHash,实施OCSP防篡改策略,以及定期检查CA的安全性和证书的有效性。此外,可以参考白皮书中的"PREVENT1", "DETECT3", 和 "DETECT5"章节获取更多防御建议。
ForgeCert 是一个强大的工具,它揭示了Active Directory安全性的潜在弱点,并强调了对于CA私钥保护的重要性。了解并应对这种威胁,将有助于组织提升自己的网络安全防护水平。
ForgeCert "Golden" certificates 项目地址: https://gitcode.com/gh_mirrors/fo/ForgeCert