漏洞描述
https://access.redhat.com/security/cve/cve-2020-15778
简单来说,就是scp命令是可以注入特殊字段,在目标主机上执行指令的。
原理是因为scp是通过ssh实现的,一样的需要用户名和密码才能登陆。也就是说,这个漏洞其实针对的是那些禁用了ssh但是没禁用scp的主机,针对这些主机,可以从外部通过scp实现和ssh一样的功能。
漏洞修复方案
1.升级到openssh-8.4以上的版本
(要求操作系统版本在centos 8及以上)
2.centos 7 禁用scp(方法1,会卸载openssh,慎用)
参考
1.系统环境:CentOS Linux release 7.7.1908 (Core)
2.ssh 版本:OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
3.禁止scp
3.1 rpm -qa|grep openssh-*
3.2 yum remove openssh-clients -y
4.重启sshd服务
systemctl restart sshd.service
- 禁止sftp服务
5.1 修改sshd配置文件 /etc/ssh/sshd.config
5.2 vi /etc/ssh/sshd.config
5.3 将 # Subsystem sftp /usr/libexec/openssh/sftp-server 信息前面加上"#"
6.重启sshd服务
systemctl restart sshd.service
查看ssh版本
[root@T_SPM-SPMN-testdb2 scm]# ssh -V
OpenSSH_8.4p1, OpenSSL 1.1.1h 22 Sep 2020
卸载scp
[root@T_SPM-SPMN-testdb2 scm]# rpm -qa|grep openssh-*
[root@T_SPM-SPMN-testdb2 scm]# yum remove openssh-clients -y
[root@T_SPM-SPMN-testdb2 scm]# systemctl restart sshd.service
3.centos 7 禁用scp(方法2,推荐,但是对修复漏洞貌似不管用)
1.禁用scp命令
mv /usr/bin/scp /usr/bin/no_use_scp
然后本机执行scp或是从其他机器往本机执行scp都会提示command not found
禁用scp后可以用rsync等命令替代
4.Linux限制某些用户或IP登录SSH、允许特定IP登录SSH(可以修复漏洞)
参考:https://blog.csdn.net/sinat_26809255/article/details/122212372?spm=1001.2014.3001.5501