网络信息安全:OpenSSH_7.4p1升级至OpenSSH_9.6p1 | ssh-agent远程代码执行漏洞(CVE-2023-38408)

网络&信息安全:OpenSSH_7.4p1升级至OpenSSH_9.6p1 | ssh-agent远程代码执行漏洞(CVE-2023-38408)

    • 1.1 风险详情
    • 1.2 操作环境
    • 1.3 漏洞处理:OpenSSH升级
      • 1、查看SSH客户端的版本信息
      • 2、列出系统中openssl、openssh的软件包
      • 3、启动telnet(防止无法登录主机)
      • 4、备份SSL和SSH
      • 5、开始升级SSl
      • 6、开始升级SSH
    • 1.4 验证升级结果


💖The Begin💖点点关注,收藏不迷路💖

1.1 风险详情

在这里插入图片描述

漏洞名称 : OpenSSH ssh-agent远程代码执行漏洞(CVE-2023-38408)

风险等级:

高可利用:

CVE编号: CVE-2023-38408

端口(服务): 22(OpenSSH)

风险描述:

【该漏洞通过版本比较方式检测,结果可能不准确,需要根据实际情况确认。】OpenSSH 的 ssh-agent 中存在了一个远程代码执行漏洞。此漏洞允许远程攻击者在存在漏洞的 OpenSSH的 forwarded ssh-agent 代理上执行任意命令。

风险影响: 影响openssh: 5.5版本(含)到9.3.p1版本(含)

解决方案: 该漏洞在OpenSSH 9.3p2版本中已得到修复。建议用户升级到最新版本。对于 OpenBSD,发布了一个勘误补丁来修复此问题。

链接如下:
https://www.openssh.com/releasenotes.html
https://www.openbsd.org/errata.html

参考资料: https://blog.qualys.com/vulnerabilities-threat-research/2023/07/19/cve-2023-38408-remote-code-execution-in-opensshs-forwarded-ssh-agent

协议类型: ssh

风险举证: OpenSSH: 7.4

1.2 操作环境

##linux
[root@zyl-server zyl]# uname -a
Linux zyl-server 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
[root@zyl-server zyl]# cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)
[root@zyl-server zyl]# 


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

1.3 漏洞处理:OpenSSH升级

1、查看SSH客户端的版本信息

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

在这里插入图片描述

2、列出系统中openssl、openssh的软件包

请注意,openssh软件包依赖于openssl软件包,因此在更新openssh时,openssl也要更新。

[root@zyl-server zyl]# rpm -qa | grep openssl
openssl-devel-1.0.2k-26.el7_9.x86_64
openssl-1.0.2k-26.el7_9.x86_64
openssl-libs-1.0.2k-26.el7_9.x86_64
xmlsec1-openssl-1.2.20-7.el7_4.x86_64
[root@zyl-server zyl]# 


[root@zyl-server zyl]# rpm -qa | grep openssh
openssh-clients-7.4p1-21.el7.x86_64
openssh-7.4p1-21.el7.x86_64
openssh-server-7.4p1-21.el7.x86_64
[root@zyl-server zyl]# 

3、启动telnet(防止无法登录主机)

!!!!!!!这里很关键:建议小心或者测试设备等先行验证。要不你就要跑现场或者机房了!!!!!!

为了确保在卸载openssh时不会导致无法登录主机,可以通过启动telnet服务、创建一个普通账号来提供备用登录方式。

开两个终端,防止升级中断无法连接。

1、设置telnet服务开机启动

systemctl enable telnet.socket

2、启动telnet服务

systemctl start telnet.socket

3、查看端口,看到23端口已打开

netstat -tunlp|grep 23

在这里插入图片描述

4、开启防火墙允许访问23端口(没开防火墙跳过此步骤)

firewall-cmd --add-port=23/tcp --permanent firewall-cmd --reload

5、默认root无法远程访问,修改/etc/securetty

vi /etc/securetty #在末尾添加 pts/0 pts/1 pts/2 pts/3 pts/4

6、测试用telnet连接

telnet 192.168.234.10 23 输入用户 输入密码

在这里插入图片描述

4、备份SSL和SSH

5、开始升级SSl

下载ssl地址:
https://www.openssl.org/source/old/1.1.1/index.html

在这里插入图片描述

下载ssh地址:
https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/

在这里插入图片描述

1、上传安装包:

在这里插入图片描述

2、解压安装包

tar -xvf openssl-1.1.1w.tar.gz -C /usr/local/
tar -xvf openssh-9.6p1.tar.gz -C /usr/local/

在这里插入图片描述

3、编译安装openssl

cd /usr/local/openssl-1.1.1w/

##编译openssl
./config shared --prefix=/usr/local/openssl

在这里插入图片描述

##安装openssl
make -j 4
make install

在这里插入图片描述
在这里插入图片描述

4、设置openssl软连接

[root@zyl-server openssl-1.1.1w]# echo "/usr/local/openssl/lib/" >> /etc/ld.so.conf
[root@zyl-server openssl-1.1.1w]# ldconfig
[root@zyl-server openssl-1.1.1w]# mv /usr/bin/openssl /usr/bin/openssl.old
[root@zyl-server openssl-1.1.1w]# ln -sv /usr/local/openssl/bin/openssl /usr/bin/openssl
openssl/        openssl-1.1.1w/ 
[root@zyl-server openssl-1.1.1w]# ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
[root@zyl-server openssl-1.1.1w]# ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

##版本检查——————》OpenSSL 1.1.1w 
[root@zyl-server openssl-1.1.1w]# openssl version -a
OpenSSL 1.1.1w  11 Sep 2023
built on: Tue Mar  5 07:04:18 2024 UTC
platform: linux-x86_64
options:  bn(64,64) rc4(8x,int) des(int) idea(int) blowfish(ptr) 
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DNDEBUG
OPENSSLDIR: "/usr/local/openssl/ssl"
ENGINESDIR: "/usr/local/openssl/lib/engines-1.1"
Seeding source: os-specific
[root@zyl-server openssl-1.1.1w]# 

在这里插入图片描述

6、开始升级SSH

1、备份并卸载旧版openssh

## 备份
mv /etc/ssh/ /etc/ssh.bak
mv /usr/bin/ssh /usr/bin/ssh.bak
mv /usr/sbin/sshd /usr/sbin/sshd.bak
mv /etc/init.d/sshd /etc/init.d/sshd.bak

在这里插入图片描述

## 卸载
rpm -e --nodeps $(rpm -qa |grep openssh)

##检查
rpm -qa | grep openssh

在这里插入图片描述

2、编译安装openssh

cd /usr/local/openssh-9.6p1

# 编译openssh
[root@zyl-server 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

# 安装openssh

make -j 4
make install

在这里插入图片描述

3、复制配置文件

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

在这里插入图片描述

4、授权

chmod 600 /etc/ssh/*

5、允许root用户远程登录

cat >>/etc/ssh/sshd_config<<EOF
PermitRootLogin yes
X11Forwarding yes
PasswordAuthentication yes
KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group1-sha1,curve25519-sha256@libssh.org
EOF

在这里插入图片描述

6、开启端口,赋予/etc/init.d/sshd权限

sed -i "s/^#Port/Port/g" /etc/ssh/sshd_config
chmod 755 /etc/init.d/sshd

7、启用sshd,生成服务配置文件,并重启服务

# 设置开机启用sshd,生成服务配置文件
systemctl enable sshd

# 重启服务
systemctl restart sshd
# 查看服务状态
systemctl status sshd

在这里插入图片描述

1.4 验证升级结果

已从 OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 升级至 OpenSSH_9.6p1, OpenSSL 1.1.1w

[root@zyl-server openssh-9.6p1]# ssh -V
OpenSSH_9.6p1, OpenSSL 1.1.1w  11 Sep 2023
[root@zyl-server openssh-9.6p1]# 

新建连接窗口,设备可正常连接:

在这里插入图片描述

在这里插入图片描述
参考文章:https://blog.csdn.net/liu_chen_yang/article/details/133697104


💖The End💖点点关注,收藏不迷路💖

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/431959.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

idea:springboot项目搭建

目录 一、创建项目 1、File → New → Project 2、Spring Initializr → Next 3、填写信息 → Next 4、web → Spring Web → Next 5、填写信息 → Finish 6、处理配置不合理内容 7、注意事项 7.1 有依赖包&#xff0c;却显示找不到依赖&#xff0c;刷新一下maven 二…

SmartX 携手 openGauss 社区发布联合方案评测与性能最佳实践 | 附优化方法与测试数据

近日&#xff0c;北京志凌海纳科技有限公司&#xff08;以下简称 “SmartX”&#xff09;携手 openGauss 社区完成了 openGauss 数据库基于 SmartX 超融合平台&#xff08;SMTX OS&#xff09;和 SmartX 分布式存储平台&#xff08;SMTX ZBS&#xff09;的性能测试和调优。 结…

JVM(垃圾回收机制 ---- GC)

啥是垃圾? 不再使用的内存 啥是垃圾回收机制? 自动释放不用的内存 注意: GC 主要是针对 堆 进行的 GC的基本操作单位是 对象, 即GC’回收的是整个对象都不使用的情况 GC 的优缺点 好处: 省心, 写代码简单, 不易出错 缺点: 需要消耗额外资源, 有额外性能开销 , 此外, 易触发 S…

vue 内容渲染和属性绑定

内容渲染指令 1. 使用v-text指令&#xff0c;将数据采用纯文本方式填充其空元素中 <script setup>import { reactive } from vuelet student reactive({name: Jack,desc: <h3>我是来自中国的小朋友&#xff01;</h3>}) </script> <template><…

介绍下RabbitMQ的事务机制

想要保证发送者一定能把消息发送给RabbitMQ&#xff0c;一种是通过confirm机制&#xff0c;另外一种就是通过事务机制。 RabbitMQ的事务机制&#xff0c;允许生产者将一组操作打包一个原子事务单元&#xff0c;那么全部执行成功&#xff0c;要么全部失败。事务提供了一种确保消…

【开源】JAVA+Vue.js实现食品生产管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 加工厂管理模块2.2 客户管理模块2.3 食品管理模块2.4 生产销售订单管理模块2.5 系统管理模块2.6 其他管理模块 三、系统展示四、核心代码4.1 查询食品4.2 查询加工厂4.3 新增生产订单4.4 新增销售订单4.5 查询客户 五、…

操作系统:初识操作系统

目录 1.冯诺依曼体系结构 2.操作系统 2.1什么是操作系统 2.2为什么需要操作系统 2.3怎么实现操作系统 1.冯诺依曼体系结构 对于上图&#xff1a; 输入设备完成的是写入工作&#xff0c;输出设备完成输出工作&#xff0c;这两部分包含磁盘这类的外存。 存储器一般指的是内存…

【C#杂谈】在 .NET Framework 中使用新的C#语言特性

前排提示&#xff1a;提出一个可以让 [^1] 这中语法可以在.NET Framework运行时中使用的方法 众所都周知&#xff0c;.NET Framework&#xff08;以下简称 .NF&#xff09;作为一个被微软官方确认不在继续发布新特性的运行时&#xff0c;它所对应的C#语言版本被&#xff08;官方…

TruEra

文章目录 关于 TruEra关于 TruLens 关于 TruEra TruEra Gen AI Observability and LLM Evaluation​ Monitor, evaluate, and debug your LLM and Gen AI apps. All part of Full Lifecycle AI Observability from TruEra. 官网&#xff1a;https://truera.comgithub : https…

时间序列分析技巧(一):根据ACF、PACF进行AR、MA、ARMA模型选择

程序员如何选择职业赛道&#xff1f; &#x1f349;CSDN小墨&晓末:https://blog.csdn.net/jd1813346972 个人介绍: 研一&#xff5c;统计学&#xff5c;干货分享          擅长Python、Matlab、R等主流编程软件          累计十余项国家级比赛奖项&#…

定时执行专家 - 自动截屏任务的设置步骤

以下是使用定时执行专家进行自动截屏的设置步骤&#xff1a; 下载并安装定时执行专家 从以下 官方博客 下载最新版本的定时执行专家&#xff0c;并按照提示进行安装。 BoomWorks软件的最新版-CSDN博客文章浏览阅读10w次&#xff0c;点赞9次&#xff0c;收藏42次。▉定时执行…

C语言数据结构与算法——深度、广度优先搜索(DFS、BFS)

目录 一、深度优先搜索&#xff08;Depth-First-Search 简称&#xff1a;DFS&#xff09; 无向图的深度优先搜索 有向图的深度优先搜索 二、广度优先搜索&#xff08;Breadth-First-Search 简称&#xff1a;BFS&#xff09; 无向图的广度优先搜索 有向图的广度优先搜索 深…

市场复盘总结 20240305

仅用于记录当天的市场情况&#xff0c;用于统计交易策略的适用情况&#xff0c;以便程序回测 短线核心&#xff1a;不参与任何级别的调整&#xff0c;采用龙空龙模式 一支股票 10%的时候可以操作&#xff0c; 90%的时间适合空仓等待 二进三&#xff1a; 进级率中 25% 最常用的…

CSS字体样式值,html注释标签

突破困境&#xff1a; 1. 提升学历 前端找工作&#xff0c;学历重要吗&#xff1f; 重要。谁要是告诉你不重要那一定是在骗你。现实情况是大专吃紧&#xff0c;本科够用&#xff0c;硕士占优&#xff0c;大专以下找到工作靠运气和真实力。 学历是硬伤&#xff0c;已经毕业的你…

(黑马出品_02)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

&#xff08;黑马出品_02&#xff09;SpringCloudRabbitMQDockerRedis搜索分布式 微服务技术栈治理 今日目标1.Nacos配置管理1.1.统一配置管理1.1.1.在nacos中添加配置文件1.1.2.从微服务拉取配置 1.2.配置热更新1.2.1.方式一1.2.2.方式二 1.3.配…

【Java设计模式】六、代理模式:静态代理、JDK + CGLIB动态代理

文章目录 1、代理对象2、代理模式结构3、静态代理4、JDK动态代理5、JDK动态代理的原理6、CGLIB动态代理7、三种代理的对比8、代理模式的总结 结构型设计是将类或者对象按某种布局&#xff08;继承机制、组合聚合&#xff09;来组成更大结构。包括七种&#xff1a; * 代理模式 …

代码随想录第51天|● 309.最佳买卖股票时机含冷冻期 ● 714.买卖股票的最佳时机含手续费 ●总结

文章目录 ● 309.最佳买卖股票时机含冷冻期思路代码 ● 714.买卖股票的最佳时机含手续费思路&#xff1a; ●总结 ● 309.最佳买卖股票时机含冷冻期 思路 代码 class Solution {public int maxProfit(int[] prices) {// 0.买入状态-(持有)// 1.保持卖出股票的状态// 2.今天…

JVM运行时数据区——堆

文章目录 1、堆的核心概述1.1、JVM实例与堆内存的对应关系1.2、堆与栈的关系1.3、JVM堆空间划分 2、设置堆内存大小与内存溢出2.1、设置堆内存大小2.2、内存溢出案例 3、新生代与老年代4、图解对象分配过程5、Minor GC、Major GC、Full GC5.1、GC的分类5.2、分代式GC策略的触发…

Sora:AI视频模型的无限可能与挑战

随着人工智能技术的突飞猛进&#xff0c;AI视频模型已成为科技领域的新焦点。OpenAI推出的AI视频模型Sora&#xff0c;凭借其卓越的技术性能和前瞻性&#xff0c;为AI视频领域的发展揭开了新的篇章。本文将从技术解析、应用场景、未来展望、伦理与创意以及用户体验与互动五个方…

【python基础学习09课_装饰器、模块、文件】

一、项目的日志 1、日志意义与级别 1、日志的意义&#xff1a;项目的日志 -- 开发编写的&#xff0c;日志记录 -- 测试就是去查看日志信息&#xff08;为了协助我们进行问题的定位&#xff09; 可以根据日志&#xff0c;看是哪个应用的哪台机器&#xff0c;出现了什么问题&…