开设这个随笔主要是因为最近在学习王放do9gy老师的web漏洞解析与攻防实战。顺便完成里面的配套实验了,其实大部分靶场都是来在vulhub,相当于对人家的靶场进行依次复现了。
内容可以在 https://vulhub.org/#/environments/rsync/common/ 见到。毕竟理论是理论,实战是实战。搭建个靶场才会发现更多问题,进而解决进步。
前置知识
Rsync是Unix系统的一个应用软件。它可以同步文件和目录(主要用来备份)。既可以是不同计算机之间,也可以是一个计算机。它的默认监听端口是873.如果开启了Rsync服务,并且没有配置ACL或访问密码就可以续写目标服务器文件。支持rsync协议,ftp协议,ssh协议
如果是一个计算机内的不同目录的rsync同步非常简单,直接命令行
rsync 源地址 同步地址
我们说rsync未授权访问漏洞都是不同主机之间建立的目录和文件同步
那么就需要一方建立rsync服务端,而且没有配置secrets file,host allow ,端口轻易对外开放
那么当rsync服务端存在这样的错误配置的时候,就可以轻易的建立同步目录,进而进行攻击
- 任意文件读取 直接读取/etc/passwd 和/etc/shadow
- 上传后门,木马文件。通常可以上传一个crontab指定定时任务,然后执行反弹shell脚本
靶场搭建
在虚拟机上新建一个目录
将文件复制到新建目录下去
输入命令
docker compose build
docker compose up -d
建立环境,稍等片刻
输入命令看到确实已经在本地873端口开启了rsync服务
我们去看一眼配置文件
可以看到配置文件十分简陋
没有配置secrets file,host allow
所以本质还是一个运维漏洞,配置错误了
想要加固也是比较简单的
rsync支持账号认证,可以设置权限添加用户名和密码
echo "pub:pub@1001011" > /etc/rsync.secrets #在secrets文件中添加用户名和密码
chomod 0666 /etc/rsyncd.secrets
sudo chown root:root /etc/rsyncd.secrets
配置文件中添加
auth users= pub
secrets file=/etc/rsyncd.secrets
2.隐藏module信息
list=no
3.限制ip
配置文件中添加 hosts allow=127.0.0.1 172.16.55.1/24
标签:Rsync,配置文件,etc,secrets,rsync,漏洞,授权,目录
From: https://www.cnblogs.com/Erebussss/p/17964081