守护服务器安全|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 影响版本
| 组件 | 影响版本 | 安全版本 |
|---|---|---|
| OpenSSH | 8.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 -y4.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_64 telnet-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 restart4.3.3.2 RedHat Linux & CentOS Linux 7
# systemctl start telnet.socket4.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.bak4.5 编译安装升级zlib
4.5.1 下载zlib
# wget https://zlib.net/fossils/zlib-1.2.11.tar.gz4.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.gz4.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.gz4.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 # ldconfig4.9 删除自带老版本OpenSSH
# for i in $(rpm -qa|grep openssh);do rpm -e $i --nodeps;done4.10 编译安装升级OpenSSH
4.10.1 下载OpenSSH
# wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz4.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 on4.10.5 重启sshd服务
# systemctl restart sshd4.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 restart4.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
👍 点赞,你的认可是我创作的动力!
⭐️ 收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!
今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
网络安全学习资源分享:
给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
网络安全学习路线&学习资源
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。**读者福利 |**【CSDN大礼包】最新网络安全/网安技术资料包~282G!无偿分享!!!**(安全链接,放心点击)**!
网络安全的知识多而杂,怎么科学合理安排?
下面给大家总结了一套适用于网安零基础的学习路线,应届生和转行人员都适用,学完保底6k!就算你底子差,如果能趁着网安良好的发展势头不断学习,日后跳槽大厂、拿到百万年薪也不是不可能!
初级网工
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)
2、渗透测试基础(一周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等
3、操作系统基础(一周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)
4、计算机网络基础(一周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现
5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固
6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k
到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?
【“脚本小子”成长进阶资源领取】
7、脚本编程(初级/中级/高级)
在网络安全领域。是否具备编程能力是“脚本小子”和真正黑客的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力.
零基础入门,建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习; 搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP, IDE强烈推荐Sublime; ·Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,不要看完; ·用Python编写漏洞的exp,然后写一个简单的网络爬虫; ·PHP基本语法学习并书写一个简单的博客系统; 熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选); ·了解Bootstrap的布局或者CSS。
8、超级网工
这部分内容对零基础的同学来说还比较遥远,就不展开细说了,贴一个大概的路线。感兴趣的童鞋可以研究一下,不懂得地方可以【点这里】加我耗油,跟我学习交流一下。
网络安全工程师企业级学习路线
如图片过大被平台压缩导致看不清的话,可以【点这里】加我耗油发给你,大家也可以一起学习交流一下。
一些我自己买的、其他平台白嫖不到的视频教程:
需要的话可以扫描下方卡片加我耗油发给你(都是无偿分享的),大家也可以一起学习交流一下。
网络安全学习路线&学习资源![]()
结语
网络安全产业就像一个江湖,各色人等聚集。相对于欧美国家基础扎实(懂加密、会防护、能挖洞、擅工程)的众多名门正派,我国的人才更多的属于旁门左道(很多白帽子可能会不服气),因此在未来的人才培养和建设上,需要调整结构,鼓励更多的人去做“正向”的、结合“业务”与“数据”、“自动化”的“体系、建设”,才能解人才之渴,真正的为社会全面互联网化提供安全保障。
特别声明:
此教程为纯技术分享!本书的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本书的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失!!!
