Rsync未授权访问漏洞复现及彻底修复

一、什么是 Rsync?

  1. Rsync 是一种广泛使用的文件传输工具,它允许系统管理员和用户通过局域网(LAN)或广域网(WAN)在计算机之间同步文件和目录。
  2. Rsync 支持通过本地或远程 shell 访问,也可以作为守护进程运行,监听特定端口(默认为 873)上的连接。
  3. Rsync 使用一种高效的算法来同步文件,只传输文件的变更部分,而不是整个文件,可以保持文件属性、权限、时间戳和符号链接等,这使得它非常适合于大型文件和频繁更新的场景。

二、Rsync未授权访问漏洞复现

1、首先,可以通过以下命令直接访问,并查看各个Rsync配置好的文件

Shell 复制代码
rsync rsync://192.168.118.3:873

如下

2、未认证的话,还可直接访问到模块内的目录

三、漏洞修复措施

1、先别急,看看配置文件/etc/rsync.conf,详细解析

bash 复制代码
motd file = /path -> motd文件位置
log file = /path -> 日志文件位置
path = /path -> 默认路径位置
use chroot = yes -> 是否限定在该目录下,默认为true,当有软连接时,需要改为fasle,如果为true就限定为模块默认目录
read only = no -> 只读配置(yes or no)
list = true -> 是否可以列出模块名
uid = root -> 传输使用的用户名
gid = root -> 传输使用的用户组
auth users = username -> 认证用户名
secrets file = /etc/rsyncd.passwd -> 指定密码文件,如果设定验证用户,这一项必须设置,设定密码权限为400,密码文件/etc/rsyncd.passwd的内容格式为:username:password
hosts allow = 192.168.0.101  -> 设置可以允许访问的主机,可以是网段,多个Ip地址用空格隔开
hosts deny = 192.168.118.0/24  -> 禁止的主机,host的两项可以使用*表任意。

2、好了,大概了解,可以用hosts allow和hosts deny,来允许和禁止访问的主机IP,例如

bash 复制代码
[Confi]
path = /etc
hosts allow = 192.168.0.101
hosts deny = 192.168.118.0/24

设置192.168.118.0/24网段,Confi访问不了了,效果如下

3、或者添加账号密码认证,给Priva添加,例如

bash 复制代码
[Priva]
path = /tmp
auth users = username
secrets file = /etc/rsyncd.passwd

接下来访问Priva模块,要输入密码啦,效果如下

4、还有个问题,一开始访问的目录,该怎么隐藏呢

哈哈,细心的小伙伴肯定发现了,从rsync.conf解析看,可以将list默认的true,设置为false

bash 复制代码
list = false

就啥模块也找不到啦,不过后面添加模块路径,依旧可以访问的,效果如下

5、简单粗暴的,直接在系统iptables防火墙设置,只允许指定的主机IP访问873端口

bash 复制代码
iptables -A INPUT -p tcp -s 192.168.0.101 --dport 873 -j DROP
iptables -A INPUT -p tcp --dport 873 -j DROP

嘿嘿,结果显示是,一直超时,效果如下

iptables重启后,规则会自动失效 ,记得保存,iptables-save保存到一个路径,重启后输入iptables-restore命令还原,即可

bash 复制代码
iptables-save > /tmp/iptables.save
iptables-restore < /tmp/iptables.save

6、完美解决,Over~~

相关推荐
白帽黑客沐瑶2 天前
【网络安全就业】信息安全专业的就业前景(非常详细)零基础入门到精通,收藏这篇就够了
网络·安全·web安全·计算机·程序员·编程·网络安全就业
树码小子2 天前
Java网络编程:(socket API编程:TCP协议的 socket API -- 回显程序的服务器端程序的编写)
java·网络·tcp/ip
绿箭柠檬茶2 天前
Ubuntu 服务器配置转发网络访问
服务器·网络·ubuntu
real 12 天前
传输层协议UDP
网络·网络协议·udp
路由侠内网穿透2 天前
本地部署 GPS 跟踪系统 Traccar 并实现外部访问
运维·服务器·网络·windows·tcp/ip
喵手2 天前
玩转Java网络编程:基于Socket的服务器和客户端开发!
java·服务器·网络
徐子元竟然被占了!!2 天前
实验-基本ACL
网络
ftpeak2 天前
从零开始使用 axum-server 构建 HTTP/HTTPS 服务
网络·http·https·rust·web·web app
LabVIEW开发2 天前
LabVIEW气体污染无线监测
网络·labview·labview知识·labview功能·labview程序
error:(2 天前
【从零到公网】本地电脑部署服务并实现公网访问(IPv4/IPv6/DDNS 全攻略)
网络·智能路由器