OpenSSH漏洞(CVE-2024-6387),你修复了吗

打印 上一主题 下一主题

主题 722|帖子 722|积分 2166

一、漏洞概述

CVE-2024-6387是OpenSSH服务器(sshd)中的一个远程代码实行漏洞。它是自1995年OpenSSH问世近20年来初次出现的未经验证的远程实行(RCE)漏洞,攻击者可利用此漏洞提权至root最高权限,在不必要用户交互的情况下实行任意代码。该漏洞于2024年5月被发现,存在于使用glibc的Linux系统上的OpenSSH Server(sshd)中。由于信号处理器竞赛条件存在缺陷,如果客户端没有在默认的LoginGraceTime秒(默认为120秒,旧版OpenSSH中为600秒)内通过身份验证,那么sshd的SIGALRM处理步伐就会被异步调用,并调用各种不安全的异步信号函数,最终造成Double-Free内存管理问题,从而答应未经认证的远程攻击者以root用户身份实行任意代码。 漏洞名称:OpenSSH Server远程代码实行漏洞 漏洞编号:CVE-2024-6387 公开时间:2024-7-1 受影响版本:8.5p1 <= OpenSSH < 9.8p1 注:OpenBSD系统不受该漏洞影响。用户可实行sshd -V确认OpenSSH版本,现在该漏洞技术细节已在互联网上公开,鉴于影响范围较大,建议用户尽快做好自查及防护。
二、解决措施

升级OpenSSH服务器到最新可用更新(版本9.8p1)以修复漏洞。
三、升级前准备

1、openssh版本检查
  1. [root@localhost ~]# cat /etc/os-release 
  2. NAME="openEuler"
  3. VERSION="22.03 LTS"
  4. ID="openEuler"
  5. VERSION_ID="22.03"
  6. PRETTY_NAME="openEuler 22.03 LTS"
  7. ANSI_COLOR="0;31"
  8. [root@localhost ~]# ssh -V
  9. OpenSSH_8.8p1, OpenSSL 1.1.1wa  16 Nov 2023
复制代码
可见该版本在漏洞版本范围,必要举行升级。
2、备份ssh相关文件
  1. cp -rf /etc/ssh/ /etc/ssh.bak
  2. cp -rf /usr/bin/openssl /usr/bin/openssl.bak
  3. cp -rf /etc/pam.d/ /etc/pam.d.bak
  4. cp -rf /usr/lib/systemd/system /usr/bin/system.bak
复制代码
3、 安装telnet(防止安装失败无法登录系统)
  1. # 安装telnet
  2. yum install telnet -y
  3. yum install xinetd
  4. #启动telnet服务
  5. systemctl enable --now xinetd
  6. systemctl enable --now  telnet.socket 
复制代码
四、获取升级包并升级OpenSSH

1、安装依靠并下载软件包
  1. yum install -y vim gcc gcc-c++ glibc make autoconf openssl openssl-devel pcre-devel pam-devel zlib-devel tcp_wrappers-devel tcp_wrappers libedit-devel perl-IPC-Cmd wget tar lrzsz nano
  2. cd /usr/local/src/
  3. wget https://www.zlib.net/zlib-1.3.1.tar.gz
  4. wget https://www.openssl.org/source/old/3.2/openssl-3.2.1.tar.gz
  5. wget https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz
  6. # 若服务器不连接外网,则可以直接复制URL到浏览器下载后再上传到服务器上
复制代码
2、解压升级包
  1. cd /usr/local/src/
  2. tar -xvf openssh-9.8p1.tar.gz
  3. tar -xvf openssl-3.2.1.tar.gz
  4. tar -xvf zlib-1.3.1.tar.gz
复制代码
3、安装zlib
  1. (1)进入zlib-1.3.1目录
  2. cd /usr/local/src/zlib-1.3.1
  3. (2)配置
  4. ./configure --prefix=/usr/local/src/zlib
  5. (3)编译及安装(编译时间预计几分钟,视机器而定)
  6. make -j 4 && make test && make install
复制代码
4、安装openssl
  1. (1)进入openssl-3.2.1目录
  2. cd /usr/local/src/openssl-3.2.1
  3. (2)配置编译安装
  4. ./config --prefix=/usr/local/src/openssl
  5. make -j 4 &&  make install
  6. (3)配置
  7. mv /usr/bin/openssl /usr/bin/oldopenssl
  8. ln -s /usr/local/src/openssl/bin/openssl /usr/bin/openssl
  9. ln -s /usr/local/src/openssl/lib64/libssl.so.3 /usr/lib64/libssl.so.3
  10. ln -s /usr/local/src/openssl/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3
  11. (4)更新动态库
  12. echo "/usr/local/src/openssl/lib64" >> /etc/ld.so.conf
  13. ldconfig
  14. 5)查看更新后的版本
  15. openssl version -v
  16. OpenSSL 3.2.1 30 Jan 2024 (Library: OpenSSL 3.2.1 30 Jan 2024)
复制代码
5、****卸载老版本并安装新版本OpenSSH
  1. (1)卸载openssh
  2. yum remove -y openssh
  3. (2)清理残余文件
  4. rm -rf /etc/ssh/*
  5. (3)安装新版本openssh9.8p1
  6. # 进入openssh-9.8p1目录
  7. cd /usr/local/src/openssh-9.8p1
  8. (4)配置编译安装
  9. ./configure --prefix=/usr/local/src/ssh --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/usr/local/src/openssl --with-zlib=/usr/local/src/zlib
  10. yum install make 
  11. make -j 4 && make install
  12. (5)查看目录版本
  13. /usr/local/src/ssh/bin/ssh -V
  14. (6)复制新ssh文件
  15. cp -rf /usr/local/src/openssh-9.8p1/contrib/redhat/sshd.init /etc/init.d/sshd
  16. cp -rf /usr/local/src/openssh-9.8p1/contrib/redhat/sshd.pam /etc/pam.d/sshd
  17. cp -rf /usr/local/src/ssh/sbin/sshd /usr/sbin/sshd
  18. cp -rf /usr/local/src/ssh/bin/ssh /usr/bin/ssh
  19. cp -rf /usr/local/src/ssh/bin/ssh-keygen /usr/bin/ssh-keygen
  20. (7)允许root登录
  21. echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
  22. echo 'PasswordAuthentication yes' >> /etc/ssh/sshd_config
  23. (8)重启sshd服务
  24. /etc/init.d/sshd restart
  25. (9)查看服务运行状态
  26. /etc/init.d/sshd status
  27. (10)添加开机启动
  28. chkconfig --add sshd
  29. (11)查看升级后ssh版本
  30. [root@localhost ~]# ssh -V
  31. OpenSSH_9.8p1, OpenSSL 3.2.1 30 Jan 2024
复制代码
6、测试是否正常登录
  1. ssh root@ip
复制代码
做完所有操纵后,对服务器重启(reboot),再测试一下是否可以连接。

关注微信公众号:小李运维之路,更多实用高效的技巧等着你

感谢关注、点赞、收藏!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

雁过留声

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表