前述

德国波鸿鲁尔大学的一组研究人员发现了 Secure Shell (SSH) 协议中的新安全漏洞,攻击者可能会利用该漏 洞破坏 SSH 连接的完整性。

该漏洞名为 Terrapin Attack,编号为(CVE-2023-48795,CVSS 评分:5.9),该漏洞被描述为“有史以来第 一个实际可利用的前缀截断攻击”。

SSH 是一种网络协议,用于在不安全的网络上安全访问远程服务器和服务。它使用加密技术确保连接安全, 并对服务器进行身份验证。SSH 被系统管理员和开发人员广泛用于管理服务器和基础设施。

修复方法如下:

1、升级openssl

1、解压openssl包到/usr/local
tar xf openssl-1.1.1t.tar.gz -C /usr/local

2、编译安装
#进入Openssl目录
cd /usr/local/openssl-1.1.1t
#编译安装
./config shared --prefix=/usr/local/openssl
make -j 4
make install

3、为openssl做软连接
echo "/usr/local/openssl/lib/" >> /etc/ld.so.conf
#加载配置文件
ldconfig
#备份以前的Openssl
mv /usr/bin/openssl /usr/bin/openssl.bak
#创建软链接
ln -sv /usr/local/openssl/bin/openssl /usr/bin/openssl

4、查看openssl版本
openssl version -a
#若为 OpenSSL 1.1.1t 7 Feb 2023 则证明升级成功

CVE-2023-48795漏洞修复方法_配置文件

2、升级OpenSSH(※下面操作可能会影响到ssh服务,建议先启用Telnet服务,完成后再关闭,以防万一)

1、查看当前OpenSSH包
rpm -qa | grep openssh

2、查看当前OpenSSH版本
ssh -V

3、备份现有的ssh
mv /etc/ssh/ /etc/ssh.bak
mv /usr/bin/ssh /usr/bin/ssh.bak
mv /usr/sbin/sshd /usr/sbin/sshd.bak
# 如果是第一次升级,备份/etc/init.d/sshd时会不存在,不影响后续操作
mv /etc/init.d/sshd /etc/init.d/sshd.bak
#执行下面命令,如果没有返回,则卸载成功
rpm -qa | grep openssh

4、上传OpenSSH并解压到/usr/local下
tar xf openssh-9.6p1.tar.gz -C /usr/local/
#进入OpenSSH目录
cd /usr/local/openssh-9.6p1
#编译安装
CCFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib64" ./configure --
sysconfdir=/etc/ssh --with-zlib --with-ssl-dir=/usr/local/openssl
make -j 4
make install

5、授权
chmod 600 /etc/ssh/*

6、复制配置文件
#执行以下命令时,必须全部执行成功,否则影响最终结果
cp -rf /usr/local/sbin/sshd /usr/sbin/sshd
cp -rf /usr/local/bin/ssh /usr/bin/ssh
cp -rf /usr/local/bin/ssh-keygen /usr/bin/ssh-keygen
cp -ar /usr/local/openssh-9.6p1/contrib/redhat/sshd.init /etc/init.d/sshd
cp -ar /usr/local/openssh-9.6p1/contrib/redhat/sshd.pam /etc/pam.d/sshd.pam

7、启用sshd,生成服务配置文件,并重启服务
#启用sshd,生成服务配置文件
systemctl enable sshd
#重启服务
systemctl restart sshd
#查看状态
systemctl status sshd

8、验证结果
ssh -V
#显示为(OpenSSH_9.6p1, OpenSSL 1.1.1t 7 Feb 2023)说明升级成功

CVE-2023-48795漏洞修复方法_编译安装_02

注:在将OpenSSH版本升级至9.6后,CVE-2023-48795漏洞修复完成,重新复扫即可