scp客户端现多个漏洞,可执行恶意脚本

0x00概述

根据国外安全人员披露,基于ssh文件传输软件scp暴露了多个漏洞,影响windwos、Linux等多个平台的SCP客户端。可以通过恶意scp服务器,未经授权的更改目标目录和客户端输出操作,执行恶意脚本。

0x01漏洞介绍

现有的很多scp客户端无都不会校验scp服务器返回的对象是否与请求的对象匹配。问题可以追溯到1983年,基于rcp软件开发scp的初始代码。客户端中的漏洞允许客户端可以任意更改目标目录属性。客户端存在另外两个漏洞则可以允许服务器端混淆欺骗客户端输出,保证恶意操作不被使用者察觉。

0x02表现

恶意scp服务器可以将任意文件写入scp目标目录,更改目标目录权限并且欺骗客户端输出。

0x03 攻击过程

漏洞有系列的几个漏洞组成,其中最关键的是scp客户端对接受的内容没有做任何校验。

1、漏洞版本用户执行scp操作时,攻击者控制的服务器或中间人(*)攻击scp请求者的.bash_aliases文件,将恶意代码注入并发送受害者的服务器。通过发送ANSI控制序列到受害的标准错误(stderr)隐藏对,恶意脚本文件的传输显示:

2.一旦受害者启动新终端时候,就会自动执行.bash_aliases中的恶意命代码(比如wget恶意木马、启动远程shell等等)。

注意:*)中间人攻击确实要求受害者接受错误的主机ssh指纹。

ox04漏洞细节

1. CWE-20:scp客户端不正确的目录名称验证(CVE-2018-20685)

2. CWE-20:scp客户端对缺少接收对象名称验证(CVE-2019-6111)

由于scp实现源自1983 rcp,由服务器选择哪个文件/目录被发送到客户端。但是,scp客户端只执行粗略验证返回的对象名称(仅仅可以防止目录遍历攻击)。

恶意scp服务器,可以利用注入恶意代码覆盖scp客户端目标目录中的任意文件。

如果执行递归操作(-r),则服务器可以操控scp目录目录子目录(例如覆盖.ssh/authorized_keys,则实现了证书的添加,获得ssh权限)。在WinSCP中的相同漏洞称为CVE-2018-20684。

3. CWE-451:通过对象名称进行scp客户端输出信息欺骗(CVE-2019-6109)

由于进度显示中缺少字符编码,因此可以使用对象名称操纵客户端输出,例如使用ANSI代码来隐藏其他传输文件的输出。

4. CWE-451:通过stderr scp客户端欺骗(CVE-2019-6110)

由于接受并显示来自scp服务器的任意信息,通过stderr输出,恶意scp服务器可以操纵客户端输出,例如通过使用ANSI代码隐藏正在传输的其他文件。

0x05漏洞验证

改漏洞的PoC,披露者还未发布。

0x06受影响的版本

以下软件包具有部分或全部漏洞(四个漏洞,X为受影响):

Tectia SSH scpg3不受影响,它使用sftp协议。

由于该漏洞需要有一定触发条件(恶意的服务器或中间人,scp版本,shell登陆权限、恶意脚本等)影响有限,各大发行方把该漏洞标注为Moderate

安全加固

1. OpenSSH

如果可能,切换到sftp;

安装最新版本;

2、Putty

尚未修复,等待官方发布新版本、

3. WinSCP

升级到WinSCP 5.14或更高版本

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190116A0QK7M00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券