ADCS攻击指北-权限维持
字数 1314 2025-08-29 08:30:05
ADCS攻击指北-权限维持技术文档
1. 黄金证书攻击
1.1 提取CA证书及私钥
方法一:使用certsrv.msc备份
- 在CA服务器上使用certsrv.msc工具备份整个CA
方法二:使用Mimikatz提取
- 运行Mimikatz提取CA私钥
- 注意识别正确的证书:Subject和Issuer必须一致
- 导出证书(通常会导出2个证书)
方法三:使用SharpDPAPI提取
- 运行SharpDPAPI提取私钥
- 同样需要验证Issuer和Subject的一致性
- 将私钥保存为PEM格式
- 使用以下命令转换为PFX文件:
openssl pkcs12 -in cert.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provider v1.0" -export -out cert.pfx
1.2 证书生成
- 获取CA私钥后,使用ForgeCert工具生成伪造证书
- 生成管理员证书文件
1.3 请求证书
- 当目标系统未设置智能卡认证时,可使用SChannel进行身份验证
- 使用Rubeus工具获取TGT票据
2. 白银证书攻击
2.1 添加权限
- 需要对NTAuthCertificates对象设置权限
- 可通过PowerShell添加权限:
# 示例PowerShell命令 Add-ADPermission -Identity "CN=NTAuthCertificates,CN=Public Key Services,CN=Services,CN=Configuration,DC=domain,DC=com" -User "stu1" -AccessRights WriteProperty -Properties "cACertificate" - 如果不添加权限,将无法添加自签CA证书
2.2 自签证书
-
使用OpenSSL创建伪造CA证书:
- 只需填写Common Name字段,其他字段留空
openssl req -new -x509 -keyout fakeCA.key -out fakeCA.cer -days 365 -nodes -
使用certutil添加伪造CA:
certutil -dspublish -f fakeCA.cer RootCA -
在域控制器上将伪造CA添加到受信任的颁发证书机构
-
手动更新注册表:
certutil -pulse -
创建CA配置文件(ca.conf)用于请求证书吊销列表(CRL)
-
启动Web服务供certipy请求本地CRL文件
2.3 请求证书
- 使用certipy请求管理员证书,成功后可获取管理员hash
3. Shadow Credentials攻击
3.1 使用PyWhisker工具
- 修改目标对象的msDS-KeyCredentialLink属性
- 要求服务器版本>=2016
- 获取证书后可使用Rubeus等进行Pass-The-Ticket攻击
3.2 NTLM Relay强制认证
- 通过NTLM Relay到LDAP/LDAPS为客户端设置msDS-KeyCredentialLink
- 由于KB957097补丁阻止了SMB到SMB的中继,需将--shadow-target设为辅助域控
- 使用PetitPotam强制DC02$向攻击机发起NTLM认证
- 查看NTLM Relay结果,确认msDS-KeyCredentialLink属性已添加
4. 工具与命令总结
4.1 关键工具
- Mimikatz:提取CA私钥
- SharpDPAPI:提取私钥
- ForgeCert:生成伪造证书
- Rubeus:请求TGT票据
- certipy:请求证书
- PyWhisker:修改KeyCredentialLink属性
- PetitPotam:强制NTLM认证
4.2 常用命令
# PEM转PFX
openssl pkcs12 -in cert.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provider v1.0" -export -out cert.pfx
# 添加伪造CA
certutil -dspublish -f fakeCA.cer RootCA
# 更新注册表
certutil -pulse
5. 防御建议
- 限制对NTAuthCertificates对象的写权限
- 监控CA证书的异常导出行为
- 及时安装安全补丁(KB957097等)
- 限制智能卡认证配置
- 监控msDS-KeyCredentialLink属性的异常修改
- 实施NTLM Relay防护措施
6. 参考资源
- 微信公众号:赛博海妖(获取更多技术文章)
- 先知社区技术文档
- 相关工具GitHub仓库