—
title: ‘OpenSSH命令注入CVE-2020-15778’
date: Fri, 04 Sep 2020 03:17:16 +0000
draft: false
tags: [‘白阁-漏洞库’]
—
### 漏洞概述
OpenSSH(OpenBSD Secure Shell)是OpenBSD计划组的一套用于安全访问远程计算机的连接工具。该工具是SSH协议的开源实现,支持对所有的传输进行加密,可有效阻止窃听、连接劫持以及其他网络级的攻击。 OpenSSH 8.3p1及之前版本中的scp的scp.c文件存在操作系统命令注入漏洞。该漏洞源于外部输入数据构造操作系统可执行命令过程中,网络系统或产品未正确过滤其中的特殊字符、命令等。攻击者可利用该漏洞执行非法操作系统命令。
### 漏洞原理
漏洞触发点如下,当文件复制到远程SSH服务器时,文件路径会附加在本地scp命令的末尾: 
比如执行如下命令时 scp source\_file user@host: directory/destination\_file
在SSH服务器的本地将会执行: scp -t directory/destination\_file
同时,在创建本地scp命令时,未清理文件名,攻击者可利用反引号进行命令注入,而linux系统允许以反引号进行文件命名。所以如果把payload写入在反引号中作为文件名,当调用scp命令时就会触发payload。
### 影响范围
OpenSSH <=8.3p1 ### 漏洞复现 payload:scp /source\_file user@ip:'`touch /tmp/wow.sh`/destination\_file ' 登录到SSH服务器,可以看到成功执行命令创建了文件: 该漏洞利用条件较为严格,需要获取SSH服务器的密码才能进行命令注入。但是在某些特定场景下也可发挥大用处,比如SSH端口被限制访问,则可通过该漏洞的远程命令执行,从而获取新权限。 ### 修复建议 (1)关注厂商的安全通告和补丁发布:[http://www.openssh.com/portable.html](/static/baige/03-产品漏洞/SSH/http://www.openssh.com/portable.html) (2)禁用scp -r拷贝目录的方式













请登录后查看评论内容