漏洞简介:
rsync是linux系统下的数据镜像备份工具,使用rsync可以快速增量备份数据,支持本地复制,或与其他ssh、rsync主机同步。该协议默认监听873端口,如果目标开启rsync,并且没有配置ACL或访问密码,就可以未授权读写目标服务器文件。
环境搭建:
本此环境使用docker-vulhub
进入vulhub-rsync,运行docker-compose up -d
![在这里插入图片描述](https://img-blog.csdnimg.cn/6e8ba31b87af42fd8abb96b4e56d66c5.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6b6NNjY=,size_20,color_FFFFFF,t_70,g_se,x_16)
环境搭建完成后,用nmap扫描一下,发现服务已经启动
![在这里插入图片描述](https://img-blog.csdnimg.cn/61195666baea4829b3d5767025a1c486.png)
漏洞复现
1.列出模块下的文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/d3423951a1d847c28ec88aa010e91be6.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6b6NNjY=,size_20,color_FFFFFF,t_70,g_se,x_16)
2.下载任意文件
rsync rsync://XXXXXX/src/etc/passwd ./passwd.txt
![在这里插入图片描述](https://img-blog.csdnimg.cn/c4120bf4b49044309f9b6403aa7a8209.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6b6NNjY=,size_20,color_FFFFFF,t_70,g_se,x_16)
3.写shell到/etc/cron.hourly
cron是一个Linux定时执行工具,可以在无需人工干预的情况下运行作业。在Ubuntu server 下,cron是被默认安装并启动的。通过/etc/crontab文件,可以看到以下内容
![在这里插入图片描述](https://img-blog.csdnimg.cn/cb06341d59584cdb8a939690fb800d80.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6b6NNjY=,size_20,color_FFFFFF,t_70,g_se,x_16)
1)/etc/cron.hourly,目录下的脚本会每个小时让执行一次,在每小时的17分钟时运行;
2)/etc/cron.daily,目录下的脚本会每天让执行一次,在每天6点25分时运行;
3)/etc/cron.weekly,目录下的脚本会每周让执行一次,在每周第7天的6点47分时运行;
4)/etc/cron.mouthly,目录下的脚本会每月让执行一次,在每月1号的6点52分时运行;
(思路),将shell写入到定时任务/etc/cron.hourly,即可在每小时17分钟触发。
4.创建shell
![在这里插入图片描述](https://img-blog.csdnimg.cn/130882e556b5462289da0a38c50d9b7e.png)
赋予执行权限:chmod +x shell
将shell上传到/etc/cron.hourly
![在这里插入图片描述](https://img-blog.csdnimg.cn/1d4274c496584ec5ab37fd0d019e3376.png)
进入docker容器查看,发现上传成功
![在这里插入图片描述](https://img-blog.csdnimg.cn/7eb09e456c344c108a4d4359734bfa4f.png)
接着只需要监听端口,等待反弹即可。
![在这里插入图片描述](https://img-blog.csdnimg.cn/e53e8caddccc41a4a94c2ab2897ec032.png)
修复建议:
更改配置文件/etc/rsyncd.conf,添加或修改参数:
访问控制,设置host allow,限制访问主机IP;
权限控制,设置read only=yes,模块设置为只读;
访问认证,设置auth、secrets,认证成功才能调用服务;
模块隐藏,设置list,将模块隐藏起来。
|