CentOS 7.9升级OpenSSH修复CVE-2023-38408漏洞
  K3k0UXFBZYtj 2023年11月02日 106 0

一、漏洞简述:

1、近期360CERT发布了CVE-2023-38408:OpenSSH ssh-agent远程代码执行漏洞通告。该漏洞存在于OpenSSH SSH代理的转发功能中,是一个远程代码执行漏洞,在特定条件下利用SSH代理对PKCS#11的支持,可以通过转发的代理套接字执行代码。OpenSSH 5.5至9.3p1之间的版本都受此漏洞影响,需要升级至9.3p2版本(目前最新版本)。

2、OpenSSH:Secure Shell(SSH)协议的开源实现,提供一套全面的服务,以促进客户端-服务器环境中不安全网络上的加密通信。

3、Telnet:用于通过TCP/IP网络远程登录计算机的协议。一旦与远程计算机建立了连接,它就会成为一个虚拟终端且允许与远程计算机通信。数据采用明文传输,不安全。安装Telnet,避免OpenSSH升级过程中发生中断服务器无法远程登录。

二、演示环境:

1、操作系统:

# cat /etc/redhat-release

CentOS 7.9升级OpenSSH修复CVE-2023-38408漏洞_漏洞修复

2、OpenSSH默认版本:

# ssh -V

CentOS 7.9升级OpenSSH修复CVE-2023-38408漏洞_CVE-2023-38408_02

3、服务器IP:

# ip a

CentOS 7.9升级OpenSSH修复CVE-2023-38408漏洞_openssh-9.3p2_03

4、配置Telnet服务:

(1)关闭firewalld和SELinux

(2)安装Telnet服务端:

# yum -y install xinetd telnet-server

(3)允许root用户登录:

# echo -e "pts/0\npts/1\npts/2\npts/3\npts/4\npts/5" >> /etc/securetty
# tail -6 /etc/securetty

CentOS 7.9升级OpenSSH修复CVE-2023-38408漏洞_漏洞修复_04

(4)修改Telnet默认TCP/23端口:

# grep -w "^telnet" /etc/services

CentOS 7.9升级OpenSSH修复CVE-2023-38408漏洞_Telnet_05

# sed -i "s#23/tcp#23023/tcp#" /etc/services
# sed -i "s#23/udp#23023/udp#" /etc/services
# grep -w "^telnet" /etc/services

CentOS 7.9升级OpenSSH修复CVE-2023-38408漏洞_CVE-2023-38408_06

# grep -w "^ListenStream" /usr/lib/systemd/system/telnet.socket

CentOS 7.9升级OpenSSH修复CVE-2023-38408漏洞_CVE-2023-38408_07

# sed -i "s/ListenStream=23/ListenStream=23023/" /usr/lib/systemd/system/telnet.socket
# grep -w "^ListenStream" /usr/lib/systemd/system/telnet.socket

CentOS 7.9升级OpenSSH修复CVE-2023-38408漏洞_openssh-9.3p2_08

(5)启动服务:

# systemctl start xinetd
# systemctl enable xinetd
# systemctl start telnet.socket
# systemctl enable telnet.socket
# ss -tunlp | grep 23023

CentOS 7.9升级OpenSSH修复CVE-2023-38408漏洞_CVE-2023-38408_09

(6)功能测试:

a、Windows客户端:

控制面板中启用“Telnet客户端”功能:

CentOS 7.9升级OpenSSH修复CVE-2023-38408漏洞_openssh-9.3p2_10

cmd下输入“telnet 192.168.0.202 23023”:

CentOS 7.9升级OpenSSH修复CVE-2023-38408漏洞_OpenSSH升级_11

输入登录服务器的用户名和密码:

CentOS 7.9升级OpenSSH修复CVE-2023-38408漏洞_Telnet_12

b、Linux客户端:

# yum -y install telnet
# telnet 192.168.0.202 23023

CentOS 7.9升级OpenSSH修复CVE-2023-38408漏洞_openssh-9.3p2_13

说明:也可以开多个SSH终端,防止OpenSSH升级失败后导致当前SSH终端断开连接无法远程操作。

三、升级OpenSSH:

1、升级计划:7.4p1升级至9.3p2

2、下载OpenSSH:

地址:https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/

软件包:openssh-9.3p2.tar.gz

3、备份配置文件:

# cd /etc/ssh
# cp sshd_config{,.bak}
# cd /etc/pam.d
# cp sshd{,.bak}

4、安装依赖软件包:

# yum -y install gcc gcc-c++ zlib-devel openssl-devel pam-devel

说明:如果生产环境中无法使用yum,可在测试环境中开启yum缓存,提前将所需的依赖软件包下载保存。

5、卸载旧版本,编译安装新版本OpenSSH:

# tar -xf openssh-9.3p2.tar.gz -C /usr/src
# cd /usr/src/openssh-9.3p2
# ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-zlib --with-pam

CentOS 7.9升级OpenSSH修复CVE-2023-38408漏洞_Telnet_14

# rpm -qa | grep openssh

CentOS 7.9升级OpenSSH修复CVE-2023-38408漏洞_CVE-2023-38408_15

# rpm -e --nodeps `rpm -qa | grep openssh`
# make && make install

CentOS 7.9升级OpenSSH修复CVE-2023-38408漏洞_OpenSSH升级_16

# echo $?

CentOS 7.9升级OpenSSH修复CVE-2023-38408漏洞_CVE-2023-38408_17

说明:此次升级OpenSSH,并没有同时升级OpenSSL。

6、修改文件权限:

# chmod 600 /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ed25519_key

7、复制配置文件并授权:

# cp -a contrib/redhat/sshd.init /etc/init.d/sshd
# chmod u+x /etc/init.d/sshd

8、还原之前备份的配置文件:

# cd /etc/ssh
# mv -f sshd_config.bak sshd_config
# cd /etc/pam.d
# mv -f sshd.bak sshd

9、允许root用户远程登录:

# sed -i 's/#PermitRootLogin yes/PermitRootLogin yes/g' /etc/ssh/sshd_config

10、设置开机自启:

# chkconfig --add sshd
# chkconfig sshd on
# chkconfig --list

11、重启SSH:

# systemctl restart sshd

12、版本验证:

# ssh -V

CentOS 7.9升级OpenSSH修复CVE-2023-38408漏洞_漏洞修复_18

四、升级后的功能验证及后续操作:

1、能正常ssh远程登录至其它主机

2、能正常scp拷贝文件至其它主机

3、能正常通过sftp协议使用类似Xftp工具传输文件

CentOS 7.9升级OpenSSH修复CVE-2023-38408漏洞_Telnet_19

# vim /etc/ssh/sshd_config
Subsystem  sftp  /usr/libexec/openssh/sftp-server
修改为:
Subsystem  sftp  internal-sftp
# systemctl restart sshd

CentOS 7.9升级OpenSSH修复CVE-2023-38408漏洞_openssh-9.3p2_20

4、关闭Telnet服务:

# systemctl stop xinetd
# systemctl disable xinetd
# systemctl stop telnet.socket
# systemctl disable telnet.socket
# ss -tunlp | grep 23023
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

K3k0UXFBZYtj