漏洞简介:
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,将模块隐藏起来。
|