1、漏洞版本用户执行scp操作时,攻击者控制的服务器或中间人()攻击scp请求者的.bash_aliases文件,将恶意代码注入并发送受害者的服务器。通过发送ANSI控制序列到受害的标准错误(stderr)隐藏对,恶意脚本文件的传输显示:
2.一旦受害者启动新终端时候,就会自动执行.bash_aliases中的恶意命代码(比如wget恶意木马、启动远程shell等等)。
注意:)中间人攻击确实要求受害者接受错误的主机ssh指纹。

1. CWE-20:scp客户端不正确的目录名称验证(CVE-2018-20685)
scp客户端允许服务器修改目标scp目录的权限,使用空(\"D0777 0 \n\")或点(\"D0777 0 .\n\")的目录名称。
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或更高版本