OpenSSH 命令注入漏洞(CVE-2020-15778)

详细描述

OpenSSH(OpenBSD Secure Shell)是OpenBSD计划组的一套用于安全访问远程计算机的连接工具。该工具是SSH协议的开源实现,支持对所有的传输进行加密,可有效阻止窃听、连接劫持以及其他网络级的攻击。
OpenSSH 9.0p1及之前版本中的scp的scp.c文件存在命令注入漏洞。该漏洞源于外部输入数据构造可执行命令过程中,网络系统或产品未正确过滤其中的特殊元素。攻击者可利用该漏洞执行非法命令。

解决办法

临时缓解措施

可以禁用scp,改用rsync等缓解风险(可能会导致小文件机器内拷贝变慢)

禁止scp

rpm -qa|grep openssh-*
yum remove openssh-clients -y

删除了openssh-clients后,再执行scp,就会报下面的错误:

-bash: scp: command not found

但删除该包也会导致其他ssh命令不可用

移除scp执行权限

whereis scp #查找scp所在目录
cd /usr/local/bin
chmod -x scp #移除执行权限
ll scp

这时远程执行scp命令时也会提示权限不够

升级OpenSSH

开启telnet

记得先测试telnet能否成功登录再升级openssh不然ssh会挂掉,当然如果你是在本机升级可以省略这一步

yum install telnet-server telnet

systemctl start telnet.socket
systemctl enable telnet.socket

lsof -i:23

#开放防火墙策略

firewall-cmd --zone=public --add-port=23/tcp --permanent

备份旧的ssh

#查询ssh目录

whereis sshd

mv /usr/sbin/sshd /usr/sbin/sshd.bak

whereis ssh

mv /usr/bin/ssh /usr/bin/ssh.bak

whereis ssh-keygen
mv /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak

卸载旧的openssh-server

yum  remove openssh-server

安装新的openssh-server

# 安装依赖
yum install zlib-devel openssl-devel -y
cd /usr/local

wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.1p1.tar.gz

tar -zxvf   openssh-9.1p1.tar.gz

cd  openssh-9.1p1

./configure

make & make install

# 设置全局使用
cp /usr/local/sbin/sshd  /usr/sbin
cp /usr/local/bin/ssh /usr/bin
cp /usr/local/bin/ssh-keygen /usr/bin/

查看新本版

ssh -V

启动ssh 并设置开机自启

cp /usr/local/openssh-9.1p1/contrib/redhat/sshd.init /etc/init.d/sshd

/etc/init.d/sshd restart

systemctl status sshd

systemctl enable sshd

安装后可能会导致ssh无法连接,解决办法如下

第一步:
cp /usr/local/openssh-9.1p1/sshd_config /etc/ssh/

第二步:
vim /etc/ssh/sshd_config

找到PermitRootLogin without-password 改成PermitRootLogin yes

第三步:
vim /etc/init.d/sshd
在48行下面加上 OPTIONS="-f /etc/ssh/sshd_config"

第四步:
systemctl daemon-reload
systemctl restart sshd

image

posted @ 2022-10-07 19:32  leepandar  阅读(437)  评论(0编辑  收藏  举报