01 漏洞描述
rsync是Linux/Unix下的一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件和目录,默认运行在873端口。由于配置不当,导致任何人可未授权访问rsync,上传本地文件,下载服务器文件。
rsync未授权访问带来的危害主要有两个:一是造成了严重的信息泄露;二是上传脚本后门文件,远程命令执行。
02 漏洞检测
rsync未授权访问漏洞只需使用rsync命令即可进行检测。首先使用nmap或其他工具对目标服务器进行端口扫描,当检测到目标服务器开放873端口后,使用rsync命令,查看是否能获取到模块名列表(需要同步的目录),然后查看模块内的文件,rsync未授权访问漏洞的检测就是如此简单。
查看模块名列表
使用如下两条命令之一,列出目标服务器的同步目录:
rsync ip::rsync rsync://ip:873
两条命令都列出了目标服务器的同步目录,在验证的时候任意使用其中一条命令即可。
查看模块文件
获取到目录之后,只需在路径后添加目录名即可查看目录中的文件。
到这里,rsync未授权访问漏洞就验证成功了,之后的步骤不再赘述。
03 漏洞修复
更改rysnc默认配置文件/etc/rsyncd.conf,添加或修改参数:
访问控制;设置host allow,限制允许访问主机的IP。
权限控制;设置read only,将模块设置成只读。
访问认证;设置auth、secrets,认证成功才能调用服务。
模块隐藏;设置list,将模块隐藏。
详情可参考官方doc:https://rsync.samba.org/ftp/rsync/rsyncd.conf.html