漏洞原理
该漏洞发生于 OpenSSH <= 8.3p1 系统,即使在禁用ssh登录的情况下,但是允许使用scp传文件,而且远程服务器允许使用反引号(`),可利用scp复制文件到远程服务器时,执行带有payload的scp命令,从而在后续利用中getshell。
scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录。
上面的意思主要是说:在知道ssh登录密码,但是禁用了登录,没有禁用scp的情况下,可以利用该漏洞。前提:知道ssh密码。所以该漏洞最重要的防范措施我认为是,保管好ssh密码,设置较高的密码复杂度。
漏洞处理
本次处理使用禁用scp方法,服务器一般没有用到scp,多数使用sftp。
#查看openssh安装包 [root@localhost ~]# rpm -qa|grep openssh-* openssh-7.4p1-21.el7.x86_64 openssh-clients-7.4p1-21.el7.x86_64 openssh-server-7.4p1-21.el7.x86_64 #卸载openssh-clients [root@localhost ~]# yum remove openssh-clients -y #重启sshd服务 [root@localhost ~]# systemctl restart sshd.service
[root@localhost ~]# scp -bash: scp: 未找到命令
从其他服务器通过scp拷贝文件到本服务器,也会提示找不到命令了。
[root@host-192.168.1.1 logs]# scp localhost.2021-04-07.log root@192.168.1.2:/home/ The authenticity of host '192.168.1.2 (192.168.1.2)' can't be established. ECDSA key fingerprint is SHA256:no50I09gBIRzzj2oe/4RdVCwopzA44zjeLJWbrgkizM. ECDSA key fingerprint is MD5:36:9a:5c:7a:dc:a1:41:d0:37:c3:61:01:2c:e7:c6:04. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.1.2' (ECDSA) to the list of known hosts. root@192.168.1.2's password: #此处输入密码 bash: scp: 未找到命令 lost connection
ssh正常,sftp正常。
OpenSSH 命令注入漏洞(CVE-2020-15778)修复就宣告完成。
修复案例
避免该问题的建议
1、周期性的更换密码或密钥
2、使用rsync代替scp
参考
https://blog.csdn.net/lhrm0213/article/details/117549337
https://www.secpulse.com/archives/143302.html
.