下载地址:https://www.vulnhub.com/entry/enubox-mattermost,414/
前言:
作为小白(后面省略好几个字),文中提到的工具仅用于学习。
Kali:192.168.109.129
目标机:192.168.109.140
信息收集:
Udp扫描:
漏洞挖掘:
从nmap扫描结果来看,ftp可以匿名登录,先登录ftp,看看有没有有用信息。
啥也没有。接下来先访问一下这个8065端口。
登录界面,mattermost是个时时通讯的通讯平台。对于模板,可以看看有没有直接利用的漏洞。最好能找找版本,所以可以先简单爆破一下目录,看有没有提示。然而只找到了robots.txt。
但是内容没啥。那就先看看已知漏洞吧。当然也可以试试弱密码。但都没有。进一步爆破目录试试。爆破目录都是image目录,而且也没有结果。唯一的变化就是目录名变到了redirect_to参数后面,参数翻译是重定向到。
一想到重定向,会不会有包含文件漏洞,但是没有,远程、本地都没有,输入百度网址,网页都跳转不过去。从udp扫描结果来看,出现一个tftp,连接一下tftp。但是又有迷惑行为,就是连接上后,列不出文件,想起访问80端口的时候有个README.md文件,可以尝试下载,结果下载成功。
打开查看
好像是用户名和密码。现在尝试一下登录。
登录成功。拿到后台权限后,就要getshell,getshell就想到类似于WordPress那种,修改主题页面,结果找了一圈都没有,反而发现了一个文件上传点,就是上传头像的地方,但是传了一堆都没用。看着首页密密麻麻的英文,发现反复出现一个zoom,虽然也不知道是啥,但是在插件管理里发现了这个zoom插件。
我先点击的enable,但是报错,于是就进入了setting,发现一个本地网址。
访问看一下,发现ftp的用户名和密码。
登录ftp
登录后发现是一个用户目录,此时看看有没有.ssh文件,如果有的话就本地生成密钥,然后ssh连接。
没有的话可以创建,但是发现一个users文件夹,好奇心驱使我进入看看。一层层进入后,发现一个可读文件。
下载下来,看看内容是什么。
我靠。直接写密钥吧(往.ssh文件夹里面添加公钥,进行ssh登录)。先看看有没有写权限,没有写权限(图略)。想来想去,ftp登录密码会不会是ssh登录的密码,尝试一下(图略),然而也不是。后来,隔了好久,在网上看到了别人的解答办法,我惊奇的发现,这个“Welcome!!!”居然是ssh连接的密码!用户名是mattermost。
提权:
接下来继续自己走,在该用户的文件夹下发现了一个文件。使用“find *”是因为
还是带s的可执行文件,先执行以下看看吧。
突然想起有个README文件啊,看看,发现密码。
再次执行看看。现实很打脸。
仔细翻译README后,结合README的创建日期,发现密码是过期了。下一步是要找新的密钥。翻译是联系服务台,可是,服务台去哪找,不如分析一下这个文件,逆向看看有没有什么破绽。使用Python开个服务器,下载过来,前提是它确实可以被复制。然而Python没有这个SimpleHTTPServer模块。80端口没写权限,那就去找mattermost文件。然而没找到。然而用nc传吧。
获取文件后,进行反编译(逆向确实不会,得到结果是因为虽然不了解原理,但是用用kali自带的工具看看,学习一下使用工具,然后就搞出了下面这个图,工具是rd2,对于下面这个图大致能看懂一点。看样子也要学学逆向了),
发现如果等于0xf447,则通过,十六进制转化后获得密码62535。
提权成功。