1、漏洞情况
如下图所示,服务器基线整改,在centos服务器上扫出一些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-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 |
OpenSSH 命令注入漏洞(CVE-2020-15778)
详细描述 | OpenSSH(OpenBSD Secure Shell)是OpenBSD计划组的一套用于安全访问远程计算机的连接工具。该工具是SSH协议的开源实现,支持对所有的传输进行加密,可有效阻止窃听、连接劫持以及其他网络级的攻击。 OpenSSH 9.7p1及之前版本中的scp的scp.c文件存在命令注入漏洞。该漏洞源于外部输入数据构造可执行命令过程中,网络系统或产品未正确过滤其中的特殊元素。攻击者可利用该漏洞执行非法命令。 |
---|---|
解决办法 | 厂商补丁: 目前厂商暂未发布修复措施解决此安全问题,建议使用此软件的用户随时关注厂商主页或参考网址以获取解决办法: https://www.openssh.com/ 临时缓解措施: 可以禁用scp,改用rsync等缓解风险(可能会导致小文件机器内拷贝变慢) |
威胁分值 | 7.8 |
危险插件 | 否 |
发现日期 | 2020-07-24 |
CVE编号 | CVE-2020-15778 |
CNNVD编号 | CNNVD-202007-1519 |
CNCVE编号 | CNCVE-202015778 |
CVSS评分 | 6.8 |
CNVD编号 | CNVD-2020-42668 |
OpenSSH 输入验证错误漏洞(CVE-2020-12062)
详细描述 | OpenSSH(OpenBSD Secure Shell)是OpenBSD计划组的一套用于安全访问远程计算机的连接工具。该工具是SSH协议的开源实现,支持对所有的传输进行加密,可有效阻止窃听、连接劫持以及其他网络级的攻击。 OpenSSH 8.2版本中存在安全漏洞,该漏洞源于在utimes系统调用失败时,scp客户端错误地向服务器发送了重复的响应。攻击者可通过在远程服务器上创建子目录利用该漏洞覆盖客户端下载目录中的任意文件。 |
---|---|
解决办法 | 厂商补丁: 目前厂商已发布升级补丁以修复漏洞,补丁获取链接: https://www.openssh.com/txt/release-8.3 |
威胁分值 | 7.5 |
危险插件 | 否 |
发现日期 | 2020-06-01 |
CVE编号 | CVE-2020-12062 |
CNNVD编号 | CNNVD-202006-078 |
CNCVE编号 | CNCVE-202012062 |
CVSS评分 | 5.0 |
CNVD编号 | CNVD-2020-36277 |
OpenSSH 安全漏洞(CVE-2021-28041)
详细描述 | OpenSSH(OpenBSD Secure Shell)是Openbsd计划组的一套用于安全访问远程计算机的连接工具。该工具是SSH协议的开源实现,支持对所有的传输进行加密,可有效阻止窃听、连接劫持以及其他网络级的攻击。 OpenSSH 8.2到8.5 存在安全漏洞,攻击者可利用该漏洞在遗留操作系统上不受约束的代理套接字访问。 |
---|---|
解决办法 | 厂商补丁: 目前厂商已发布升级补丁以修复漏洞,补丁获取链接: https://github.com/openssh/openssh-portable/commit/e04fd6dde16de1cdc5a4d9946397ff60d96568db |
威胁分值 | 7.1 |
危险插件 | 否 |
发现日期 | 2021-03-05 |
CVE编号 | CVE-2021-28041 |
CNNVD编号 | CNNVD-202103-527 |
CNCVE编号 | CNCVE-202128041 |
CVSS评分 | 4.6 |
OpenSSH 安全漏洞(CVE-2021-41617)
详细描述 | OpenSSH(OpenBSD Secure Shell)是Openbsd计划组的一套用于安全访问远程计算机的连接工具。该工具是SSH协议的开源实现,支持对所有的传输进行加密,可有效阻止窃听、连接劫持以及其他网络级的攻击。 OpenSSH 6.2到8.8之前版本存在安全漏洞。该漏洞源于允许权限提升,因为补充组未按预期初始化。 |
---|---|
解决办法 | 厂商补丁: 建议使用此软件的用户随时关注厂商主页或参考网址以获取解决办法: https://www.openssh.com/security.html |
威胁分值 | 7.0 |
危险插件 | 否 |
发现日期 | 2021-09-26 |
CVE编号 | CVE-2021-41617 |
CNNVD编号 | CNNVD-202109-1695 |
CNCVE编号 | CNCVE-202141617 |
CVSS评分 | 4.4 |
OpenSSH 安全漏洞(CVE-2023-51767)
详细描述 | OpenSSH(OpenBSD Secure Shell)是加拿大OpenBSD计划组的一套用于安全访问远程计算机的连接工具。该工具是SSH协议的开源实现,支持对所有的传输进行加密,可有效阻止窃听、连接劫持以及其他网络级的攻击。 OpenSSH 9.6及之前版本存在安全漏洞,该漏洞源于当使用常见类型的DRAM时,mm_answer_authpassword中已验证的整数值不能抵抗单个比特的翻转,导致攻击者可以绕过身份验证。 |
---|---|
解决办法 | 厂商补丁: 目前厂商已发布升级补丁以修复漏洞,补丁获取链接: https://www.openssh.com/ |
威胁分值 | 7.0 |
危险插件 | 否 |
发现日期 | 2023-12-24 |
CVE编号 | CVE-2023-51767 |
CNNVD编号 | CNNVD-202312-2216 |
CNCVE编号 | CNCVE-202351767 |
2、整改方案
大概瞄了一下,一个个去打补丁的话,甚是麻烦,直接将openssh版本升级到要求最高的版本(OpenSSH 9.7p1)之后的。这边直接下载了openssh-9.8p1.tar.gz来进行安装。
3、整改详细步骤
3.1 去官网下载对应新版包
Index of /pub/OpenBSD/OpenSSH/portable/
3.2 将安装包同步至对应机器
scp -P 22 -r openssh-9.8p1.tar.gz root@192.168.0.12:/root/
3.3 在机器上安装新版openssh
##先安装对应依赖
sudo yum install zlib-devel
sudo yum install openssl-devel
##解压对应安装包
tar -zxvf openssh-9.8p1.tar.gz
##cd 到已解压的目录中
cd openssh-9.8p1
##执行安装命令
./configure
###指示配置脚本跳过对 OpenSSL 头文件的检查 ./configure --without-openssl-header-check
make
sudo make install
##重新加载配置文件
systemctl daemon-reload
##重启sshd服务
sudo systemctl restart sshd
##验证openssh版本
[gxpt@localhost ~]$ ssh -V
OpenSSH_8.2p1, OpenSSL 1.1.1f 31 Mar 2020
[root@localhost gxpt]# ssh -V
OpenSSH_9.8p1, OpenSSL 1.1.1f 31 Mar 2020
3.4 调整系统默认调用的sshd配置
在上述章节中,安装好对应新版openssh后,服务器上会存在多个版本的openssh,虽然执行ssh -V会显示新版本,但是系统中调用的还是旧版的openssh,扫描还是不通过,需要调整如下配置。
##备份现有的 sshd.service 文件
cp /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd.service.bak
##编辑 /etc/systemd/system/sshd-new.service 文件,将 ExecStart 行中的 /usr/sbin/sshd 替换为 /usr/local/sbin/sshd
sudo sed -i 's|/usr/sbin/sshd|/usr/local/sbin/sshd|g' /usr/lib/systemd/system/sshd.service
3.5 将原sshd_config配置拷贝到新配置中
升级后,需要将
##把openssh8.2配置文件cp到9.8的配置上使用
cp /etc/ssh/sshd_config /usr/local/etc/sshd_config
3.6 重新加载ssh配置,并重启sshd服务
##重新加载 systemd 配置
systemctl daemon-reload
##重启sshd服务
sudo systemctl restart sshd
5、参考文献
本文参考了对应文章,多谢大神:
在centos7 用的OpenSSH_0.6p1 OpenSSL 3.0.12上面扫描出 CVE-2023-51767 漏洞该如何修复?_博问_博客园 (cnblogs.com)