openssh升级打怪
OpenSSH 安全漏洞。
·
背景
OpenSSH 安全漏洞

漏洞详细信息
OpenSSH 安全漏洞(CVE-2023-38408)
详细描述
OpenSSH(OpenBSD Secure Shell)是加拿大OpenBSD计划组的一套用于安全访问远程计算机的连接工具。该工具是SSH协议的开源实现,支持对所有的传输进行加密,可有效阻止窃听、连接劫持以及其他网络级的攻击。 OpenSSH 9.3p2之前版本存在安全漏洞,该漏洞源于ssh-agent的PKCS11功能存在安全问题。攻击者可利用该漏洞执行远程代码。
解决办法
厂商补丁: 目前厂商已发布升级补丁以修复漏洞,补丁获取链接: https://github.com/openbsd/src/commit/7bc29a9d5cd697290aa056e94ecee6253d3425f8
| 信息 | 描述 |
|---|---|
| 威胁分值 | 9.8 |
| 危险插件否 | 否 |
| 发现日期 | 2023-07-19 |
| CVE编号 | CVE-2023-38408 |
| CNNVD编号 | CNNVD-202307-1721 |
| CNCVE编号 | CNCVE-202338408 |
OpenSSH 安全漏洞(CVE-2023-51767)
详细描述
OpenSSH(OpenBSD Secure Shell)是加拿大OpenBSD计划组的一套用于安全访问远程计算机的连接工具。该工具是SSH协议的开源实现,支持对所有的传输进行加密,可有效阻止窃听、连接劫持以及其他网络级的攻击。 OpenSSH 9.6及之前版本存在安全漏洞,该漏洞源于当使用常见类型的DRAM时,mm_answer_authpassword中已验证的整数值不能抵抗单个比特的翻转,导致攻击者可以绕过身份验证。
解决办法
厂商补丁: 目前厂商已发布升级补丁以修复漏洞,补丁获取链接: https://www.openssh.com/
| 信息 | 描述 |
|---|---|
| 威胁分值 | 7 |
| 危险插件否 | 否 |
| 发现日期 | 2023-12-24 |
| CVE编号 | CVE-2023-51767 |
| CNNVD编号 | CNNVD-202312-2216 |
| CNCVE编号 | CNCVE-202351767 |
OpenSSH 竞争条件问题漏洞(CVE-2024-6387)
详细描述
OpenSSH(OpenBSD Secure Shell)是加拿大OpenBSD计划组的一套用于安全访问远程计算机的连接工具。该工具是SSH协议的开源实现,支持对所有的传输进行加密,可有效阻止窃听、连接劫持以及其他网络级的攻击。 由于默认配置下的OpenSSH Server (sshd)中存在信号处理程序竞争条件问题,如果客户端未在LoginGraceTime 秒内(默认情况下为 120 秒,旧版 OpenSSH 中为 600 秒)进行身份验证,则 sshd 的 SIGALRM 处理程序将被异步调用,该信号处理程序会调用各种非async-signal-safe的函数(例如syslog()),未经身份验证的攻击者可以利用此漏洞在基于 glibc 的Linux系统上以root身份执行任意代码。
解决办法
厂商补丁: 目前官方发布新版本与安全补丁修复此漏洞,请受影响的用户尽快安装更新进行防护,下载链接:https://www.openssh.com/releasenotes.html 补丁链接:https://github.com/openssh/openssh-portable/commit/81c1099d22b81ebfd20a334ce986c4f753b0db29
| 信息 | 描述 |
|---|---|
| 威胁分值 | 8.1 |
| 危险插件否 | 否 |
| 发现日期 | 2024-06-27 |
| CVE编号 | CVE-2024-6387 |
| CNNVD编号 | CNNVD-202407-017 |
| CNCVE编号 | CNCVE-20246387 |
| CNVD编号 | CNVD-2024-29805 |
升级openssl
要升级 SSH 的前提得升级openssl
版本信息:openssl-1.1.1w.tar.gz
升级前准备
查看之前 openssl 版本
openssl version
![]()
PS: 通过上图可看出1.1.1f版本比较老,需要升级到1.1.1w版本
上传压缩包
将 openssl-1.1.1w.tar.gz 压缩包上传到服务器的 /root 目录下。(无强制要求)

解压并进入目录
使用命令解压缩
tar xf openssl-1.1.1w.tar.gz cd openssl-1.1.1w

配置安装路径
./config --prefix=/usr/local/openssl

编译安装
make -j 10 && make install
PS: -j 10 表示用10线程编译
更新版本
现在如果通过命令来看openssl的话,还是之前 1.1.1f 版本,因为还没有更新连接导致。
ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl ln -sf /usr/local/openssl/include/openssl /usr/include/openssl
![]()
更新动态库
export LD_LIBRARY_PATH=/usr/local/openssl/lib:$LD_LIBRARY_PATH
PS:此时加载的动态库是即时的,可以设置成永久生效的,需要将此命令加入到 /etc/profile
查看版本
此时版本就变成最新版本了
![]()
升级openssh
版本信息:openssh-9.9p1.tar.gz
升级前准备
查看之前 openssl 版本
ssh -V
![]()
PS: 通过上图可看出ssh版本是8.2p1
上传压缩包
将 openssh-9.9p1.tar.gz 压缩包上传到服务器的 /root 目录下。(无强制要求)

解压并进入目录
使用命令解压缩
tar xf openssh-9.9p1.tar.gz cd openssh-9.9p1
配置安装路径
./configure --prefix=/usr/local/openssh --with-ssl-dir=/usr/local/openssl --with-zlib=/usr/local/zlib
![]()

编译安装
make -j 10 && make install
PS: -j 10 表示用10线程编译
设置开机启动
cp /root/openssh-9.9p1/contrib/redhat/sshd.init /etc/init.d/sshd chmod +x /etc/init.d/sshd chkconfig --add sshd chkconfig sshd on

更新版本
cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd
![]()
cp /usr/local/openssh/bin/* /usr/bin/

重启sshd
systemctl restart sshd
PS: 如果是centos系统,会报找不到共享库
需要以下操作
cp /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib/
cp /usr/local/openssl/lib/libcrypto.so.1.1 /usr/local/lib/
ln -s /usr/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
然后更新动态库
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
PS:此时加载的动态库是即时的,可以设置成永久生效的,需要将此命令加入到 /etc/profile
注意
centos还有个坑就是需要使用最新sshd配置文件
最新配置文件需要修改两个地方
vi /usr/local/openssh/etl/sshd_config
32 #PermitRootLogin prohibit-password #默认为禁⽌登录
33 PermitRootLogin yes #改为允许登录
57 #PasswordAuthentication yes
58 PasswordAuthentication yes #打开密码认证,其实默认就是允许通过密码认证登录
然后覆盖之前sshd配置文件并重启
cp /usr/local/openssh/etl/sshd_config /etc/ssh/
systemctl restart sshd
查看版本
此时版本就变成最新版本了
![]()
更多推荐


所有评论(0)