推荐开源项目:ForgeCert —— 强大的证书伪造工具
ForgeCert "Golden" certificates 项目地址: https://gitcode.com/gh_mirrors/fo/ForgeCert
项目介绍
ForgeCert 是一个基于 BouncyCastle C# API 开发的开源项目,它利用被盗的证书颁发机构(CA)证书和私钥,为任意用户伪造能够通过 Active Directory 认证的证书。这一攻击方式在 "Certified Pre-Owned" 白皮书 中被编码为 DPERSIST1
。该项目由 @tifkin_ 主导开发,并与 @harmj0y 共同完成了相关的 Active Directory 证书服务研究。
项目技术分析
ForgeCert 的核心功能依赖于 BouncyCastle 的 X509V3CertificateGenerator
类,用于生成伪造的证书。其工作原理如下:
- 背景知识:CA 的私钥通常存储在 CA 服务器上,受 DPAPI 或硬件(如 HSM/TPM)保护。CA 证书(不含私钥)发布到 NTAuthCertificates 林对象中,用于 AD 认证。
- 攻击过程:如果攻击者能够攻陷 CA 服务器,可以通过 Mimikatz 或 SharpDPAPI 提取 CA 私钥。利用该私钥,攻击者可以伪造任意域用户的认证证书,这些证书在 CA 证书有效期内(通常为 5 年)有效,且无法被撤销。
项目及技术应用场景
ForgeCert 主要应用于以下场景:
- 安全研究:帮助安全研究人员理解和演示 CA 私钥泄露后的潜在风险。
- 渗透测试:在合法的渗透测试范围内,模拟攻击者利用被盗 CA 私钥进行域内认证。
- 防御策略验证:帮助企业验证其针对“黄金证书”攻击的防御和检测措施的有效性。
项目特点
- 易于使用:提供简洁的命令行界面,用户只需指定必要的参数即可生成伪造证书。
- 高度灵活:支持自定义证书主题、替代名称等,适应不同攻击场景。
- 防御友好:项目提供了防御指南和 Yara 规则,帮助组织检测和预防相关攻击。
- 开源透明:代码完全开源,便于社区审查和改进。
命令行使用示例
C:\Tools\ForgeCert>ForgeCert.exe --CaCertPath ca.pfx --CaCertPassword "Password123!" --Subject "CN=User" --SubjectAltName "localadmin@theshire.local" --NewCertPath localadmin.pfx --NewCertPassword "NewPassword123!"
防御考虑
项目提供了详细的防御指南,包括如何通过 Microsoft OCSP 配置来缓解“黄金证书”攻击,以及如何构建 Yara 规则检测伪造证书。
结语
ForgeCert 是一个强大的工具,旨在帮助安全社区更好地理解和防御 CA 私钥泄露带来的风险。通过实际演示攻击过程,该项目促使组织重视并加强其 Active Directory 证书服务的安全性。我们强烈推荐安全研究人员和渗透测试人员关注并使用这一开源项目。
注意:该项目仅供合法安全研究和渗透测试使用,未经授权的非法使用将承担相应法律责任。
ForgeCert "Golden" certificates 项目地址: https://gitcode.com/gh_mirrors/fo/ForgeCert
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考