漏洞简介:
rsync是linux系统下的数据镜像备份工具,使用rsync可以快速增量备份数据,支持本地复制,或与其他ssh、rsync主机同步。该协议默认监听873端口,如果目标开启rsync,并且没有配置ACL或访问密码,就可以未授权读写目标服务器文件。
环境搭建: 本此环境使用docker-vulhub 进入vulhub-rsync,运行docker-compose up -d 环境搭建完成后,用nmap扫描一下,发现服务已经启动
漏洞复现
1.列出模块下的文件 2.下载任意文件 rsync rsync://XXXXXX/src/etc/passwd ./passwd.txt
3.写shell到/etc/cron.hourly cron是一个Linux定时执行工具,可以在无需人工干预的情况下运行作业。在Ubuntu server 下,cron是被默认安装并启动的。通过/etc/crontab文件,可以看到以下内容 1)/etc/cron.hourly,目录下的脚本会每个小时让执行一次,在每小时的17分钟时运行;
2)/etc/cron.daily,目录下的脚本会每天让执行一次,在每天6点25分时运行;
3)/etc/cron.weekly,目录下的脚本会每周让执行一次,在每周第7天的6点47分时运行;
4)/etc/cron.mouthly,目录下的脚本会每月让执行一次,在每月1号的6点52分时运行; (思路),将shell写入到定时任务/etc/cron.hourly,即可在每小时17分钟触发。 4.创建shell 赋予执行权限:chmod +x shell
将shell上传到/etc/cron.hourly
进入docker容器查看,发现上传成功 接着只需要监听端口,等待反弹即可。
修复建议:
更改配置文件/etc/rsyncd.conf,添加或修改参数:
访问控制,设置host allow,限制访问主机IP; 权限控制,设置read only=yes,模块设置为只读; 访问认证,设置auth、secrets,认证成功才能调用服务; 模块隐藏,设置list,将模块隐藏起来。
|