看了ms08067实验室的writeup,得到了思路,再次重拾信心做一遍。
过程:
nmap全端口扫描,如图:
之前自己做的时候没有扫出6379的redis服务,所以做一半都走不通没有了思路。这次直接对redis服务进行攻击渗透,经过测试msf中的exploit不能成功进入redis。
这里要说一下,MS08067实验室的writeup使用的某个payload的python脚本直接进去。我亲测了一下总是失败的,后经研究发现writeup可能有的地方没有提及或者可能有第三方的因素导致实验室成员使用脚本成功登入,
这里我是手工根据redis未授权访问进入
首先本机中要安装redis-cli,这是连接redis的手段。我们在/root/.ssh下输入ssh-keygen-t rsa,生成ssh密钥,文件夹内会生成一个私钥和公钥,接着输入(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > key.txt,将公钥导入到key.txt中,如图:
输入cat /root/.ssh/key.txt | redis-cli-h 10.10.10.160 -x set “xxx”,将公钥key.txt导入到目标中,输入redis-cli -h10.10.10.160进入目标redis环境,这里需要先利用 config get dir查看目标中的目录,如图:
接着config set dir /var/lib/redis/.ssh, config set dbfilename authorized_keys,然后save即可。如图:
然后通过ssh连入,这里要注意,咱们刚才看到的路径是/var/lib/redis/.ssh,很明显ssh连接的时候要使用redis作为用户登陆。如图:
返回到跟目录,输入locate user.txt,定位user的flag,得到位置,但是权限不能访问,如图:
这里也参考了一下writeup,在/opt下找了一个私钥的备份文件,如图:
弄到本地然后利用john界面,这里第一次接触john,学了一下是非常强大的密码破解工具。先利用john的ssh2john.py将私钥文件转换成john可解析的文件。输入python /usr/share/john/ssh2john.py sshkey > dekey,接着输入john dekey破解即可,如图:
这里偷了个懒,直接根据实验室的writeup得出的密码:computer2008进入到了Matt。直接获得user.txt,提交即可。这里想根据sudo的提权漏洞查看是否能有其他收获,但是没有提权成功。
这里想到了之前走不通的webmin,可以利用很多payload,现在也有了用户名和密码,看看能否登录。如图:
能够登录,直接msf使用exploit,利用exploit/linux/http/webmin_packageup_rce。查看options,如图:
配置好执行,成功获得shell并进入,如图:
查找root.txt是否存在,存在并且查看flag即可。
参考资料:
https://blog.csdn.net/fly_hps/article/details/80937837 ::: redis未授权利用
https://blog.csdn.net/qq_40490088/article/details/97812715 ::: john破解ssh密钥
思考:
在得到hints之前,我nmap是没有扫出redis服务的,在ssh、webmin甚至是http上投入了大量的时间和exploits都没有进展,让我接近崩溃。在得到redis服务的hint后重拾思路,通过未授权访问完成一系列渗透。
这个环境其实说难不难,如果不细心或者经验较少可能就会像我一样,卡住原地崩溃。但是一旦知道了立足点就迎刃而解了。
这次的靶机我认为主要需要了解redis服务的操作以及机制吧。到现在我还有很多redis内容还需要巩固,还有就是john ripper这个工具,需要花点时间去再研究。Webmin的漏洞还是需要掌握的,毕竟从EDB上伸手拿来也不是很好,对自己也没长进。