CVE-2023-38408揭秘与破局:OpenSSH高危漏洞的逆袭之战1 漏洞简述2 风险等级 3 漏洞详情4 影响版本5 修复步骤5.1 安装依赖包5.2 创建RPM包的相关目录5.3 打开OpenSSH官网下载最新版本的Openssh 9.3p2和相关依赖包5.4 配置相关编译文件5.5 编译文件5.6 升级OpenSSH5.7 修改OpenSSH相关的文件5.8 查看OpenSSH当前的版本
CVE-2023-38408揭秘与破局:OpenSSH高危漏洞的逆袭之战
手动更新Openssh到最新 9.3.2版本
1 漏洞简述
2023年07月21日,360CERT监测发现OpenSSH发布了OpenSSH的风险通告,漏洞编号为CVE-2023-38408,漏洞等级:高危,漏洞评分:8.1。
OpenSSH 是 Secure Shell (SSH) 协议的开源实现,提供一套全面的服务,以促进客户端-服务器环境中不安全网络上的加密通信。
2 风险等级
3 漏洞详情
组件: OpenSSH:OpenSSH
漏洞类型: 程序逻辑错误
实际影响: 远程代码执行
主要影响: 敏感数据窃取
简述: 该漏洞存在于OpenSSH SSH 代理的转发功能中,是一个远程代码执行漏洞。在特定条件下利用 SSH 代理对 PKCS#11 的支持,攻击者可以通过转发的代理套接字执行代码。
4 影响版本
5 修复步骤
5.1 安装依赖包
# yum install -y rpm-build gcc gcc-c++ glibc glibc-devel openssl-devel openssl pcre-devel zlib zlib-devel make wget krb5-devel pam-devel libX11-devel xmkmf libXt-devel initscripts libXt-devel imake gtk2-devel lrzsz
5.2 创建RPM包的相关目录
# mkdir -pv /root/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
5.3 打开OpenSSH官网下载最新版本的Openssh 9.3p2和相关依赖包
# cd /root/rpmbuild/SOURCES/
# wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.3p2.tar.gz
# tar -xf openssh-9.3p2.tar.gz
# wget https://src.fedoraproject.org/repo/pkgs/openssh/x11-ssh-askpass-1.2.4.1.tar.gz
5.4 配置相关编译文件
1、将/etc/pam.d/sshd拷贝为openssh-9.3p2/contrib/redhat/sshd.pam文件
这么做的原因是spec文件中有一步会把openssh-9.3p2/contrib/redhat/sshd.pam部署到/etc/pam.d/sshd,默认的ssh.pam文件如果被拷贝过去就会导致升级完连不上服务器。
# cp /etc/pam.d/sshd ./openssh-9.3p2/contrib/redhat/sshd.pam
2、不产生ask包
# cp ./openssh-9.3p2/contrib/redhat/openssh.spec /root/rpmbuild/SPECS/
# cd /root/rpmbuild/SPECS/
# sed -i -e "s/%global no_gnome_askpass 0/%global no_gnome_askpass 1/g" openssh.spec
# sed -i -e "s/%global no_x11_askpass 0/%global no_x11_askpass 1/g" openssh.spec
3、修改openssl-devel的报错
# sed -i '/openssl-devel < 1.1/s/^/#/' openssh.spec
4、修改PreReq的报错
# sed -i '/PreReq:/s/^/#/' openssh.spec
5.5 编译文件
# rpmbuild -ba openssh.spec
# ll /root/rpmbuild/RPMS/x86_64
总用量 4928
-rw-r--r--. 1 root root 649176 11月 8 17:52 openssh-9.3p2-1.el7.x86_64.rpm
-rw-r--r--. 1 root root 641124 11月 8 17:52 openssh-clients-9.3p2-1.el7.x86_64.rpm
-rw-r--r--. 1 root root 3274728 11月 8 17:52 openssh-debuginfo-9.3p2-1.el7.x86_64.rpm
-rw-r--r--. 1 root root 472488 11月 8 17:52 openssh-server-9.3p2-1.el7.x86_64.rpm
5.6 升级OpenSSH
注意: 一定要先打开telnet,保证telnet能登陆!
# cd /root/rpmbuild/RPMS/x86_64/
# yum -y localinstall openssh*.rpm
结果如下:
# yum -y localinstall openssh*.rpm
已加载插件:fastestmirror, langpacks
正在检查 openssh-9.3p2-1.el7.x86_64.rpm: openssh-9.3p2-1.el7.x86_64
openssh-9.3p2-1.el7.x86_64.rpm 将作为 openssh-7.4p1-16.el7.x86_64 的更新
正在检查 openssh-clients-9.3p2-1.el7.x86_64.rpm: openssh-clients-9.3p2-1.el7.x86_64
openssh-clients-9.3p2-1.el7.x86_64.rpm 将作为 openssh-clients-7.4p1-16.el7.x86_64 的更新
正在检查 openssh-debuginfo-9.3p2-1.el7.x86_64.rpm: openssh-debuginfo-9.3p2-1.el7.x86_64
openssh-debuginfo-9.3p2-1.el7.x86_64.rpm 将被安装
正在检查 openssh-server-9.3p2-1.el7.x86_64.rpm: openssh-server-9.3p2-1.el7.x86_64
openssh-server-9.3p2-1.el7.x86_64.rpm 将作为 openssh-server-7.4p1-16.el7.x86_64 的更新
正在解决依赖关系
--> 正在检查事务
---> 软件包 openssh.x86_64.0.7.4p1-16.el7 将被 升级
---> 软件包 openssh.x86_64.0.9.3p2-1.el7 将被 更新
---> 软件包 openssh-clients.x86_64.0.7.4p1-16.el7 将被 升级
---> 软件包 openssh-clients.x86_64.0.9.3p2-1.el7 将被 更新
---> 软件包 openssh-debuginfo.x86_64.0.9.3p2-1.el7 将被 安装
---> 软件包 openssh-server.x86_64.0.7.4p1-16.el7 将被 升级
---> 软件包 openssh-server.x86_64.0.9.3p2-1.el7 将被 更新
--> 解决依赖关系完成
依赖关系解决
==========================================================================================================================
Package 架构 版本 源 大小
==========================================================================================================================
正在安装:
openssh-debuginfo x86_64 9.3p2-1.el7 /openssh-debuginfo-9.3p2-1.el7.x86_64 16 M
正在更新:
openssh x86_64 9.3p2-1.el7 /openssh-9.3p2-1.el7.x86_64 2.9 M
openssh-clients x86_64 9.3p2-1.el7 /openssh-clients-9.3p2-1.el7.x86_64 2.4 M
openssh-server x86_64 9.3p2-1.el7 /openssh-server-9.3p2-1.el7.x86_64 1.1 M
事务概要
==========================================================================================================================
安装 1 软件包
升级 3 软件包
总计:22 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在更新 : openssh-9.3p2-1.el7.x86_64 1/7
正在更新 : openssh-server-9.3p2-1.el7.x86_64 2/7
正在更新 : openssh-clients-9.3p2-1.el7.x86_64 3/7
正在安装 : openssh-debuginfo-9.3p2-1.el7.x86_64 4/7
清理 : openssh-clients-7.4p1-16.el7.x86_64 5/7
清理 : openssh-server-7.4p1-16.el7.x86_64 6/7
清理 : openssh-7.4p1-16.el7.x86_64 7/7
验证中 : openssh-server-9.3p2-1.el7.x86_64 1/7
验证中 : openssh-9.3p2-1.el7.x86_64 2/7
验证中 : openssh-clients-9.3p2-1.el7.x86_64 3/7
验证中 : openssh-debuginfo-9.3p2-1.el7.x86_64 4/7
验证中 : openssh-7.4p1-16.el7.x86_64 5/7
验证中 : openssh-clients-7.4p1-16.el7.x86_64 6/7
验证中 : openssh-server-7.4p1-16.el7.x86_64 7/7
已安装:
openssh-debuginfo.x86_64 0:9.3p2-1.el7
更新完毕:
openssh.x86_64 0:9.3p2-1.el7 openssh-clients.x86_64 0:9.3p2-1.el7 openssh-server.x86_64 0:9.3p2-1.el7
完毕!
5.7 修改OpenSSH相关的文件
1、修改文件权限
# chmod 600 /etc/ssh/ssh_host_rsa_key
# chmod 600 /etc/ssh/ssh_host_ecdsa_key
# chmod 600 /etc/ssh/ssh_host_ed25519_key
2、修改/etc/ssh/sshd_config的配置,使其可以远程连接
# sed -i -e "s/#Port 22/Port 22/g" /etc/ssh/sshd_config
# sed -i -e "s/#PasswordAuthentication yes/PasswordAuthentication yes/g" /etc/ssh/sshd_config
# echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
3、重启sshd服务
# systemctl restart sshd
5.8 查看OpenSSH当前的版本
# sshd -V
结果如下:
# sshd -V
OpenSSH_9.3, OpenSSL 1.0.2k-fips 26 Jan 2017
? 点赞,你的认可是我创作的动力!
⭐️ 收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!
