当前位置: 首页 > ai >正文

OpenSSH 命令注入漏洞(CVE-2020-15778)修复,升级openssh9.8p1

文章目录

  • 前言
  • 漏洞名称
  • 漏洞描述
  • 修复措施
    • 查看当前openssh版本
    • 安装必备依赖库
    • 下载openssh源码
    • 编译安装
      • OpenSSL安装步骤
        • 下载源码包
        • 编译安装
        • 配置系统使用新版OpenSSL
        • 验证OpenSSL版本
    • 重新编译openssh
      • 问题修复![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/e65b80f3ec0740b5984c632754fb4b0b.png)
    • 重启sshd,并检查版本

前言

openssh版本过低会引起命令注入漏洞,生产环境十分危险,需升级openssh到新版本。

漏洞名称

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

漏洞描述

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

修复措施

升级openssh 为 9.8p1版本,以下为具体步骤

查看当前openssh版本

[root@rabbitmq1 openssh-9.8p1]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017

安装必备依赖库

yum install gcc openssl-devel zlib-devel pam-devel libselinux-devel -y

下载openssh源码

cd /usr/src
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz
tar -xzf openssh-9.8p1.tar.gz
cd openssh-9.8p1

如果要升级10.0版本,下载链接就替换为https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-10.0p1.tar.gz,其余步骤一样

编译安装

./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-selinux --with-privsep-path=/var/lib/sshd
make && make install

这时候我们会报错checking OpenSSL library version... configure: error: OpenSSL >= 1.1.1 required (have "100020bf (OpenSSL 1.0.2k-fips 26 Jan 2017)"),这是因为OpenSSH 9.8p1要求OpenSSL版本至少为1.1.1。但是系统自带的OpenSSL是1.0.2k,我们不能替换它,因为很多系统工具依赖它。我们要为OpenSSH单独编译一个OpenSSL。

OpenSSL安装步骤

下载源码包
cd /usr/src
wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz
tar -xzf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w
编译安装
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib
make && make install
配置系统使用新版OpenSSL
# 备份旧版 OpenSSL
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak# 创建新链接
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl# 更新库路径
echo "/usr/local/openssl/lib" | sudo tee /etc/ld.so.conf.d/openssl.conf
ldconfig -v
验证OpenSSL版本
[root@rabbitmq1 openssl-1.1.1w]# openssl version
OpenSSL 1.1.1w  11 Sep 2023

重新编译openssh

cd /usr/src/openssh-9.8p1
#指定OpenSSL路径安装
sudo ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-selinux --with-privsep-path=/var/lib/sshd --with-ssl-dir=/usr/local/openssl

继续编译安装

make && make install

问题修复在这里插入图片描述

问题1:不支持的配置选项​

/etc/ssh/sshd_config line 79: Unsupported option GSSAPIAuthentication
/etc/ssh/sshd_config line 80: Unsupported option GSSAPICleanupCredentials

编辑sshd配置文件,注释这两条
在这里插入图片描述
问题2 密钥文件权限

Permissions 0640 for '/etc/ssh/ssh_host_rsa_key' are too open.
...
Unable to load host key: /etc/ssh/ssh_host_rsa_key
...
sshd: no hostkeys available -- exiting.

权限配置

[root@rabbitmq1 openssh-9.8p1]# chmod 600 /etc/ssh/ssh_host_*_key
[root@rabbitmq1 openssh-9.8p1]# chmod 644 /etc/ssh/ssh_host_*_key.pub
[root@rabbitmq1 openssh-9.8p1]# chown root:root /etc/ssh/ssh_host_*_key
[root@rabbitmq1 openssh-9.8p1]# chown root:root /etc/ssh/ssh_host_*_key.pubsshd -t #如果输出空白即为正确

重启sshd,并检查版本

root@rabbitmq1 openssh-9.8p1]# openssl version
OpenSSL 1.1.1w  11 Sep 2023
[root@rabbitmq1 openssh-9.8p1]# ssh -V
OpenSSH_9.8p1, OpenSSL 1.1.1w  11 Sep 2023

在这里插入图片描述
TIPS:强烈建议升级openssh时,多开几个窗口,避免操作失误无法远程!!!!

http://www.xdnf.cn/news/18208.html

相关文章:

  • rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(一)基本代码
  • Qt设置软件使用期限【新版防修改系统时间】
  • React响应式链路
  • 【蒸蒸日上】专栏前言
  • Google Chrome v139.0.7258.139 便携增强版
  • 云手机在社交媒体场景中的优势体现在哪些方面?
  • 趣打印高级版--手机打印软件!软件支持多种不同的连接方式,打印神器有这一个就够了!
  • AutoGLM2.0背后的云手机和虚拟机分析(非使用案例)
  • Claude Code NPM 包发布命令
  • 数据挖掘笔记:点到线段的距离计算
  • GitHub宕机生存指南:从应急协作到高可用架构设计
  • [TryHackMe]Mr Robot CTF(hydra爆破+Wordpress更改主题)
  • Leetcode 深度优先搜索 (9)
  • MPR多平面重建一:初步实现
  • linux报permission denied问题
  • 【C语言16天强化训练】从基础入门到进阶:Day 4
  • 创建Vue项目的不同方式及项目规范化配置
  • 大数据常见问题分析与解决方案
  • 《SQLAlchemy 2 In Practice》读后感
  • C++开发/Qt开发:单例模式介绍与应用
  • IDEA:控制台中文乱码
  • Redis知识总结
  • 【机器学习深度学习】Ollama、vLLM、LMDeploy对比:选择适合你的 LLM 推理框架
  • MySQL高阶篇-数据库优化
  • 计算机网络模型
  • 企业通讯软件保证内部通讯安全,搭建数字安全体系
  • 建筑行业变革:用Three.js构建BIM数据可视化孪生平台
  • 代码管理平台Gitlab如何通过 ZeroNews 实现远程访问?
  • AI时代SEO关键词优化新策略
  • Redis-缓存-雪崩-持久化、集群、灾备