Certsync | 使用黄金证书转储 NTDS 和 UnPAC 哈希值插图

Certsync是一种使用黄金证书和UnPAC哈希值来远程转储NTDS的新技术。它的作用是获取域控制器中的用户列表、CA信息和CRL,并转储CA证书和私钥。

安装

  1. 克隆Certsync源代码:
git clone https://github.com/zblurx/certsync
  1. 进入certsync目录:
cd certsync
  1. 执行安装命令:
pip install .

或者直接使用pip安装:

pip install certsync

用法

使用以下命令行格式执行Certsync:

certsync -u khal.drogo -p 'horse' -d essos.local -dc-ip 192.168.56.12 -ns 192.168.56.12

该命令会连接到LDAP服务器,收集用户列表、CA信息和CRL。然后,它会找到CA证书和私钥,并为每个用户生成伪造证书。最后,它会使用UnPAC算法获取用户的nt和lm哈希值。

可以使用-h参数查看所有可用选项和用法示例。

为什么使用Certsync

由于DSRUAPI(Domain Services Remote Protocol API)越来越受到EDR解决方案的监控和限制,Certsync提供了一种绕过这些限制的方法。与使用DSRUAPI不同,Certsync不需要域管理员权限,只需要CA管理员权限。

要求

使用Certsync进行攻击时,需要满足以下条件:

  • 在域中有配置企业CA的ADCS(Active Directory Certificate Services)服务器。
  • PKINIT正常工作。
  • AD中有本地管理员域帐户或导出CA证书和私钥。

局限性

尽管Certsync具有一定的优势,但也存在一些局限性。由于无法对被撤销的用户进行PKINIT,因此无法转储这些用户的哈希值。

OPSEC选项

Certsync提供了一些OPSEC选项,可以自定义工具的行为:

  • -ldap-filter:更改用于选择用户名的LDAP过滤器。
  • -template:在伪造用户证书时使用指定的证书模板。
  • -timeout-jitter:调整PKINIT连接之间的超时和间隔时间。
  • -randomize:随机化证书生成过程,使每个伪造的用户证书具有不同的私钥、序列号和有效期,但会增加生成时间。

使用这些选项可以根据特定需求自定义Certsync工具的行为。

资源

Certsync
仅供学习用途,目标Github