IT评测·应用市场-qidao123.com技术社区
标题:
保卫安全无死角!OpenSSH CVE-2024-6387远程代码执行漏洞:深度解析与修复
[打印本页]
作者:
老婆出轨
时间:
2024-9-9 09:38
标题:
保卫安全无死角!OpenSSH CVE-2024-6387远程代码执行漏洞:深度解析与修复
文章目次
保卫安全无死角!OpenSSH CVE-2024-6387远程代码执行漏洞:深度解析与修复全攻略
1 漏洞简述
1.1 漏洞成因
1.2 漏洞影响
1.3 处置优先级:高
2 影响版本
3 解决方案
3.1 临时缓解方案
3.2 升级修复方案
4 升级修复步骤
4.1 查抄OpenSSH升级前的版本
4.2 安装依靠组件和依靠包
4.2.1 安装依靠组件
4.2.2 安装依靠包
4.3 启用telnet服务
4.3.1 查抄是否安装telnet
4.3.2 打开telnet服务
4.3.3 启动telnet服务
4.3.3.1 RedHat Linux & CentOS Linux 5/6
4.3.3.2 RedHat Linux & CentOS Linux 7
4.4 备份老版本相关命令
4.5 编译安装升级zlib
4.5.1 下载zlib
4.5.2 编译安装zlib
4.6 编译安装升级OpenSSL-fips
4.6.1 下载OpenSSL-fips
4.6.2 编译安装OpenSSL-fips
4.7 编译安装升级OpenSSL
4.7.1 下载OpenSSL
4.7.2 编译安装OpenSSL
4.8 修改并重建ssl动态链接库
4.9 删除自带老版本OpenSSH
4.10 编译安装升级OpenSSH
4.10.1 下载OpenSSH
4.10.2 编译安装升级OpenSSH版本
4.10.3 替换老版本相关命令
4.10.4 设置sshd服务并设置随系统自动启动
4.10.5 重启sshd服务
4.11 查看OpenSSH升级后的版本
4.12 制止telnet服务
4.12.1 设置telnet服务参数
4.12.2 制止telnet服务
4.12.2.1 RedHat Linux & CentOS Linux 5/6
4.12.2.3 RedHat Linux & CentOS Linux 7
保卫安全无死角!OpenSSH CVE-2024-6387远程代码执行漏洞:深度解析与修复全攻略
手动编译更新Openssh到最新9.8p1版本。
1 漏洞简述
1.1 漏洞成因
CVE-2024-6387 是 OpenSSH 服务器中的一个严重漏洞,影响基于 glibc 的 Linux 系统。攻击者可以利用该漏洞在无需认证的情况下,通过竞态条件远程执行任意代码,获得系统控制权。这个漏洞源于处理超时信号时的不安全操纵,最早在 OpenSSH 8.5p1 版本中引入。
1.2 漏洞影响
成功利用该漏洞的攻击者可以以 root 身份进行未经身份验证的远程代码执行 (RCE)
在某些特定版本的 32 位操纵系统上,攻击者
最短
需 6-8 小时即可获得最高权限的 root shell。而在 64 位呆板上,现在没有在可接受时间内的利用方案,但未来的改进可能使其成为实际。
1.3 处置优先级:高
漏洞类型
:远程代码执行
漏洞危害等级
:高
触发方式
:网络远程
权限认证要求
:无需权限
系统配置要求
:默认配置可利用
用户交互要求
:无需用户交互
利用成熟度
:部分 EXP 已公开(适配单一版本,32 位系统)
批量可利用性
:可使用通用原理 POC/EXP 进行检测/利用
修复复杂度
:中,官方提供升级修复方案
2 影响版本
组件影响版本安全版本OpenSSH8.5p1 <= OpenSSH < 9.8p1>=9.8p1
3 解决方案
3.1 临时缓解方案
如果暂时无法更新或重新编译 sshd
可以在配置文件中将 LoginGraceTime 设置为 0(永不超时)。如许虽然会使 sshd 袒露于拒绝服务攻击(占满所有 Startups 连接),但可以克制远程代码执行风险。
启用 fail2ban 等防护机制,封禁发生过多次失败登录 ssh 尝试的来源 IP。
3.2 升级修复方案
将 OpenSSH 更新到最新版本 9.8p1 大概各发行版本的修复版本。
4 升级修复步骤
4.1 查抄OpenSSH升级前的版本
# ssh -V
复制代码
结果如下:
[root@superman ~]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017[root@superman ~]#
复制代码
4.2 安装依靠组件和依靠包
4.2.1 安装依靠组件
# yum groupinstall -y "Compatibility libraries" "Development tools" "debugging Tools"
复制代码
4.2.2 安装依靠包
# yum install -y gcc* glibc* openssl-devel telnet telnet-server -y
复制代码
4.3 启用telnet服务
4.3.1 查抄是否安装telnet
# rpm -qa | grep telnet
复制代码
确保有telnet和telnet-server包。
结果如下:
[root@superman ~]# rpm -qa | grep telnet
telnet-0.17-66.el7.x86_64telnet-server-0.17-66.el7.x86_64[root@superman ~]#
复制代码
4.3.2 打开telnet服务
**留意:**只需RedHat Linux & CentOS Linux 5/6 操纵即可,RedHat Linux & CentOS Linux 7无需操纵。
# vi /etc/xinetd.d/telnet
复制代码
将其中disable字段有yes改为no。
4.3.3 启动telnet服务
4.3.3.1 RedHat Linux & CentOS Linux 5/6
# ntsysv
复制代码
大概
# service xinetd restart
复制代码
4.3.3.2 RedHat Linux & CentOS Linux 7
# systemctl start telnet.socket
复制代码
4.4 备份老版本相关命令
# cp -f /usr/bin/openssl /usr/bin/openssl.bak
# cp -f /usr/bin/ssh /usr/bin/ssh.bak
# cp -f /usr/bin/slogin /usr/bin/slogin.bak
# cp -f /usr/sbin/sshd /usr/sbin/sshd.bak
复制代码
4.5 编译安装升级zlib
4.5.1 下载zlib
# wget https://zlib.net/fossils/zlib-1.2.11.tar.gz
复制代码
4.5.2 编译安装zlib
# tar -zxvf zlib-1.2.11.tar.gz
# cd zlib-1.2.11
# ./configure
# make && make install
# cd ../
复制代码
4.6 编译安装升级OpenSSL-fips
4.6.1 下载OpenSSL-fips
# wget https://www.openssl.org/source/old/fips/openssl-fips-2.0.16.tar.gz
复制代码
4.6.2 编译安装OpenSSL-fips
# tar -zxvf openssl-fips-2.0.16.tar.gz
# cd openssl-fips-2.0.16
# ./config
# make && make install
# cd ../
复制代码
4.7 编译安装升级OpenSSL
4.7.1 下载OpenSSL
# wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1w.tar.gz
复制代码
4.7.2 编译安装OpenSSL
# tar -zxvf openssl-1.1.1w.tar.gz
# cd openssl-1.1.1w
# ./config --prefix=/usr/local/ssl -d shared
# make depend
# make && make install
# cd ../
复制代码
4.8 修改并重建ssl动态链接库
# echo "/usr/local/ssl/lib" >>/etc/ld.so.conf
# ldconfig
复制代码
4.9 删除自带老版本OpenSSH
# for i in $(rpm -qa|grep openssh);do rpm -e $i --nodeps;done
复制代码
4.10 编译安装升级OpenSSH
4.10.1 下载OpenSSH
# wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz
复制代码
4.10.2 编译安装升级OpenSSH版本
# tar -xzf openssh-9.8p1.tar.gz
# cd openssh-9.8p1
# ./configure --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/ssl
# make && make install
# chmod 600 /etc/ssh/ssh_host*
复制代码
4.10.3 替换老版本相关命令
# \cp -f /usr/local/bin/ssh /usr/bin
# \cp -f /usr/local/bin/ssh-keygen /usr/bin/
# \cp -f /usr/local/ssl/bin/openssl /usr/bin/
# \cp -f /usr/local/sbin/sshd /usr/sbin/
# \cp ./contrib/redhat/sshd.init /etc/init.d/sshd
# cd ..
复制代码
4.10.4 设置sshd服务并设置随系统自动启动
# chkconfig --add sshd
# chkconfig sshd on
复制代码
4.10.5 重启sshd服务
# systemctl restart sshd
复制代码
4.11 查看OpenSSH升级后的版本
# sshd -V
复制代码
结果如下:
[root@superman ~]# ssh -V
OpenSSH_9.8p1, OpenSSL 1.1.1w 11 Sep 2023[root@superman ~]#
复制代码
4.12 制止telnet服务
4.12.1 设置telnet服务参数
**留意:**只需RedHat Linux & CentOS Linux 5/6 操纵即可,RedHat Linux & CentOS Linux 7无需操纵。
# vi /etc/xinetd.d/telnet
复制代码
将其中disable字段有no改为yes。
4.12.2 制止telnet服务
4.12.2.1 RedHat Linux & CentOS Linux 5/6
# ntsysv
复制代码
大概
# service xinetd restart
复制代码
4.12.2.3 RedHat Linux & CentOS Linux 7
# systemctl stop telnet.socket
复制代码
原文链接:https://mp.weixin.qq.com/s?__biz=MzkxNzI1OTE3Mw==&mid=2247492223&idx=1&sn=96d09c5b77eb3dc973748e95c21dd598&chksm=c141f4b5f6367da35eaa0c1b9760ed3c70c5e96085d257ce347f437e8b8e2261c04c78b0c867&token=300531807&lang=zh_CN#rd
欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/)
Powered by Discuz! X3.4