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

CSDN 2024-07-06 14:07:03 阅读 90

网络&信息安全: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和SSH5、开始升级SSl6、开始升级SSH

1.4 验证升级结果

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

1.1 风险详情

在这里插入图片描述

<code>漏洞名称 : 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也要更新。

<code>[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端口(没开防火墙跳过此步骤)

<code>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、解压安装包

<code>tar -xvf openssl-1.1.1w.tar.gz -C /usr/local/

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

在这里插入图片描述

3、编译安装openssl

<code>cd /usr/local/openssl-1.1.1w/

##编译openssl

./config shared --prefix=/usr/local/openssl

在这里插入图片描述

<code>##安装openssl

make -j 4

make install

在这里插入图片描述

在这里插入图片描述

4、设置openssl软连接

<code>[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

<code>## 备份

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

在这里插入图片描述

<code>## 卸载

rpm -e --nodeps $(rpm -qa |grep openssh)

##检查

rpm -qa | grep openssh

在这里插入图片描述

2、编译安装openssh

<code>cd /usr/local/openssh-9.6p1

# 编译openssh

[root@zyl-server openssh-9.6p1]# CCFLAGS="-I/usr/local/include" \code>

LDFLAGS="-L/usr/local/lib64" \code>

./configure \

--sysconfdir=/etc/ssh \

--with-zlib \

--with-ssl-dir=/usr/local/openssl

# 安装openssh

make -j 4

make install

在这里插入图片描述

3、复制配置文件

<code>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、授权

<code>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权限

<code>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 验证升级结果

已从 <code>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💖点点关注,收藏不迷路💖



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。