下载地址:https://download.vulnhub.com/corrosion/Corrosion2.ova
1.配置环境
kali:NAT
吧唧:NAT
2.主机发现
我们初步扫描发现吧唧的ip是192.168.139.144
经过较为详细的扫描我们可以看出他开启了22ssh服务和80http服务同时8080端口也开启了http服务
3.访问服务
经典,太经典了,我只能说,没关系,我们还有8080端口的http服务没有访问
典中典……
不难看出这个吧唧的http服务都是非常的抽象,均为经典的apeach服务器
我们可以看到的是扫描80端口的http服务并没有什么特别的东西,挨个儿进行访问也没有发现什么特别有用的东西
不扫不知道,一扫吓一跳,太开心啦有这么多东西(0.o尊嘟假嘟.jpg),第一次扫描的时候有很大一堆紫色的都是404,也就意味着没有什么用,所以我在使用dirsearch的时候加上了-x参数屏蔽404响应码,好啦,接下来我们挨个儿进行访问
我这里选择先查看readme.txt,一来就感受到了制作吧唧的人的亲切的问候,更有动力了家人们,直接就是开始挖
我们把网站上是backup.zip进行下载后发现他有密码,无法进行解压
现学现卖,我们直接使用fcrackzip命令爆破出backup.zip的密码
很好,我们已经成功解压出backup.zip的东西啦
后缀为xml的一般都是配置文件,我们查看这个文件夹内所有后缀为xml的文件,可以看到一个tomcat-users.xml的文件,这个文件是Tomcat的配置文件,我们查看后得到两组账号密码:manager:melehifokivai和admin:melehifokivai,那我们用于登录哪里呢?
在我们配置文件中我们可以看到这样一段注释,他叭叭这么一大堆的意思就是说manager用户登录/manager/html目录,当然我们这里有manager用户,但是怎么会有人不喜欢admin呢?举一反三那么admin用户登录的就是/admin/html么?漏漏漏,大漏特漏。在上文的配置中,配置admin的时候我们可以看见配置了roles="admin-gui,manager-gui",其意思是admin用户同时拥有这两个角色,也就意味着他可以登录到/host-manager/html和/manager/html这两个界面,srds,谁会不喜欢admin呢
但是admin好像不是很喜欢我们,不过没有关系,我们还有manager
我们使用manager:melehifokivai成功登录了/manager/html,这里我们可以看到的是他开启了/host-manager/html的,洗碗儿了家人么,一不小心卸载了,让我进行一番沉淀
活学活用,刚经过沉淀(可以参考我的另一个文章:《vulnhub吧唧——My Tomcat Host: 1》)知道了tomcat这里如果可以上传war包的话,我们就可以使用msfvenom来生成一个war类型的木马文件,然后本地使用msfconsole开启监听接受反弹的shell
他真的我真的
生成文件,上传文件都非常的一帆风顺,最后需要触发木马文件文件的时候告诉我文件被删掉了,看来是我沉淀的不够,我还得继续沉淀
经过一番沉淀我学习到了一个配合账号密码就可以getshell的模块,设置对应的参数,运行就可以拿到一个小小的shell
4.信息搜集
我体会到了出题人环环相扣缜密的心思,居然用manager和admin的密码登录jaye(然后我试了一下这他喵居然可以直接用jay:melehifokivai登录ssh???!!!万恶的出题人毁我青春)
我们用jaye切换到randy目录,怎么听怎么不对,但是我们就是登进来了,并找到了第一个flag
flag{ca73a018ae6908a7d0ea5d1c269ba4b6}
5.提权
这里我们尝试用find命令查找具有suid权限的文件,这里看到一个叫look的文件,正好kali有个同名的命令也叫look其意思是查找给定前缀的单词
总感觉他们两个可以干一些偷梁换柱狸猫换太子的事情,让我进行一番沉淀
简而言之就是我们可以实现任意文件读取
可以看见,我们直接看/etc/shadow是看不了一点儿的,但是我们用look看就可以看到啦,我们把randy的信息复制出来,randy:$6$bQ8rY/73PoUA4lFX$i/aKxdkuh5hF8D78k50BZ4eInDWklwQgmmpakv/gsuzTodngjB340R1wXQ8qWhY2cyMwi.61HJ36qXGvFHJGY/:18888:0:99999:7:::,不难看出我们的哈希值是$6$bQ8rY/73PoUA4lFX$i/aKxdkuh5hF8D78k50BZ4eInDWklwQgmmpakv/gsuzTodngjB340R1wXQ8qWhY2cyMwi.61HJ36qXGvFHJGY/,我们将他保存在hash.txt中,然后使用john进行爆破
经过将近两个小时半的沉淀,我们终于得到了我们的密码randy:07051986randy
我们直接就是登录randy,进行了一下基本的信息搜集,我们可以看见randy可以以root权限运行这个其家目录下randombase64.py
而这个randombase64.py这个程序就是将输入的字符串进行base64编码
我们查看一下文件的权限发现我们并没有改写这个文件的权限,开始沉淀
经过一番沉淀,我得到了一个新的思路。虽然我们不能更改文件本来的内容来达到提升shell的目的,但是我们可以通过更改他使用了的模块base64其相应的文件来达到提升shell的目的
我们使用vi编辑器添加这些代码
然后我们直接就是sudo用Python运行这个代码,他会自己调用base64对应的库文件,然后就会触发我们的恶意代码,拿到root权限
当然也是拿到了我们的flag
flag{2fdbf8d4f894292361d6c72c8e833a4b}
又一次经过一番沉淀后,我们不难发现刚刚在查找所有具有suid权限的文件时找到了一个/usr/lib/policykit-1/polkit-agent-helper-1,其实他是CVE-2021-4034漏洞,在github上有公开的脚本可以一把梭,吧唧上面没有make不方便我们编译项目,我们可以先在kali整好了
(kali设置代理:export http_proxy="windowsip:port"),然后在吧唧上wget下下来直接梭哈
还有一个更抽象的,前面提到look可以读取任意文件,那么也就是说他可以读取root,前提是猜对文件名
总结:这个吧唧主要的一些知识点就是爆破压缩包密码,根据tomcat的tomcat-users.xml文件获取账号密码,msfvenom构造jar文件反弹shell,信息搜集,look任意文件读取,john爆破密码,我觉得收货最多的就是,我学会了一个新的思路,在给定了root权限的具体命令时,更改其对应的配置文件,通过调用来达到触发恶意代码的效果