修改OpenSSH服务版本号

news2024/9/23 11:20:11

前言

这几年信息安全要求很高,奈何口号响亮掩盖不了我们技术基础依然很低的事实,加上风口烧钱和政绩工程等因素,于是就诞生了一些乱象,其中一个就是安全扫描胡乱标记,这里面的典型就是OpenSSH的漏洞扫描报告。

比如,OpenSSH社区说我们最近修复了某个漏洞,发布补丁到新版本OpenSSH 9.7。然后像红帽,SUSE,欧拉,Ubuntu这些大公司或者Debian,ARCH等社区的发行版会第一时间把相关补丁打入自己的升级包,但是按照发行规则,命名就跟随大版本,如RHEL7/CentOS7新的升级包可能是openssh-server-7.4p1-23.el7_9.x86_64,也就是说版本继续在7.4后面增加小版本号。

这时候某些漏洞扫描工具就闪亮登场了,它们无力去验证对端的ssh服务到底有没有这个漏洞,但是sshd的版本号是谁都可以看到的啊,你是7.4,低于9.7,那你这个OpenSSH就是有漏洞。

这种扫描版本号来判断是否存在漏洞的方式并非不可行,只要去该Linux发行版的官网,查询下修补漏洞记录就可以知道某个版本号是否修复了某个漏洞,可是直到现在,这么一个简单的事情却没见到有人做。可能对安全扫描来说,能多找出一些漏洞更重要吧,哪怕这些漏洞根本不存在。

于是系统管理员花时间去修补不存在或者不必处理的漏洞,有时候,为了修补一个不存在的漏洞,还要升级OpenSSL,导致更多系统和应用的故障。

操作

下面的操作很危险,可能导致ssh远程链接失败,所以不要贸然在生产系统尝试。任何情况下操作请确保有另一个登陆系统的办法,比如云平台的novnc/vnc等等。

下面以Debian 11为例,其OpenSSH的版本是8.4p1-5+deb11u3


$ dpkg -l openssh-server
期望状态=未知(u)/安装(i)/删除(r)/清除(p)/保持(h)
| 状态=未安装(n)/已安装(i)/仅存配置(c)/仅解压缩(U)/配置失败(F)/不完全安装(H)/触发器等待(W)/触发器未决(T)
|/ 错误?=(无)/须重装(R) (状态,错误:大写=故障)
||/ 名称           版本              体系结构     描述
+++-==============-=================-============-=================================================================
ii  openssh-server 1:8.4p1-5+deb11u3 amd64        secure shell (SSH) server, for secure access from remote machines

$ strings /usr/sbin/sshd | grep OpenSSH
OpenSSH_8.4p1 Debian-5+deb11u3
OpenSSH_8.4
OpenSSH_2.*,OpenSSH_3.0*,OpenSSH_3.1*
OpenSSH_2*,OpenSSH_3*,OpenSSH_4*
OpenSSH_7.0*,OpenSSH_7.1*,OpenSSH_7.2*,OpenSSH_7.3*,OpenSSH_7.4*,OpenSSH_7.5*,OpenSSH_7.6*,OpenSSH_7.7*
OpenSSH_3.*
OpenSSH_5*
OpenSSH_6.6.1*
OpenSSH_6.5*,OpenSSH_6.6*
OpenSSH*
OpenSSH_8.4p1

我们把这个8.4改成9.5

在本服务器上安装hexedit,这是一个十六进制编辑器。

创建副本并修改

备份和复制sshd的执行文件,通常是/usr/sbin/sshd

cp /usr/sbin/sshd /usr/sbin/sshd.$(date +%Y%m%d-%H%M)cp /usr/sbin/sshd /tmp/sshd

下面用hexedit修改/tmp/sshd的版本号,命令中的--color不是必须的

hexedit --color /tmp/sshd

下图两个区域,区域1是十六进制显示,2是文本显示,可以使用tab键在两个区域之间切换,我们切换到文本区域

按键Ctrl+s,查找OpenSSH_8

使用方向键,移动光标到OpenSSH_8.4p1的数字8上面

直接输入数字9,同样把小数点后面的4改为5

继续搜索OpenSSH_8和修改,每次修改都要保存

一共有三处,全部修改完成后按键Ctrl+x退出

替换

用这个修改过的/tmp/sshd替换/usr/sbin/sshd

mv /usr/sbin/sshd /usr/sbin/sshd.$(date +%Y%m%d-%H%M) && cp /tmp/sshd /usr/sbin/sshd

再用openssh客户端测试下,参数-v查看详情,客户端还是8.4p1,但是服务器已经是9.5p1了。

后记

无论如何,关注并安装发行版的最新openssh,这是大厂的实力和信誉。

用白名单限制访问IP地址和账户。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2038776.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

人工智能小车——智能车臂控制平台

随着机器人技术的不断发展 ,各行业对机器人应用人才的需求也随之增加,培养符合行业发展需求的机器人技术专业人才成为了高校的重要任务。 基本介绍 智能车臂控制平台(ZI-AutoRB)是一套用以机器人控制技术学习和研究的软硬件系统。…

米联客-FPGA程序设计Verilog语法入门篇连载-10 Verilog语法_一般设计规范

软件版本:无 操作系统:WIN10 64bit 硬件平台:适用所有系列FPGA 板卡获取平台:https://milianke.tmall.com/ 登录“米联客”FPGA社区 http://www.uisrc.com 视频课程、答疑解惑! 1概述 本小节讲解Verilog语法的一般…

照片回收利器:最新数据恢复软件推荐

照片回收利器:最新数据恢复软件推荐 在今天的数字化时代,我们将大量珍贵的照片和个人数据存储在电脑、手机和其他设备中。然而,由于各种原因,这些数据可能会意外删除或丢失,这对我们来说是一个巨大的损失。因此&#…

【Redis】List类型

目录 List列表 命令 LPUSH LPUSHX RPUSH RPUSHX LRANGE LPOP RPOP LINDEX LINSERT LLEN lrem ltrim lset 阻塞版本命令 BLPOP BRPOP 内部编码 使用场景 消息队列 分频道的消息队列 作为栈或者队列 List列表 列表类型是⽤来存储多个有序的字符串&…

5 大场景上手通义灵码企业知识库 RAG

大家好,我是通义灵码,你的智能编程助手!最近我又升级啦,智能问答功能全面升级至 Qwen2,新版本在各个方面的性能和准确性都得到了显著提升。此外,行间代码补全效果也全面优化,多种编程语言生成性…

python-小理和他的猫(赛氪OJ)

[题目描述] 今天小理又要为他的猫小咪准备好吃的猫粮了,你愿意帮助一下他们么? 小理现在拥有的金钱数为 N ,有 M 种小咪喜欢的猫粮从左到右排列,已知每种猫粮的价格 ai​ ,他的购买规则如下: 1.必须按照从左…

数据结构与算法--图的存储与遍历

文章目录 回顾提要图的定义和表示图的表示完全图和子图顶点的度路径与回路连通图 邻接矩阵权和网 邻接表示例 深度优先遍历 (DFS)广度优先遍历 (BFS)广度优先遍历过程总结邻接矩阵存储结构邻接表存储结构 回顾 线索化二叉树:在某种次序遍历过程中创建线索&#xff…

简单数学运算(c语言)

1.描述 //牛牛最近学会了一些简单的数学运算,例如 //∑i1 ∑i 1 //请你帮他模拟一下这个运算。 (即 1 2 3.... n - 1 n) //输入描述: //输入仅一个正整数 n //输出描述: //请你计算 //∑i1n 2.就是递归函数 方法一&#xf…

40.【C语言】指针(重难点)(E)

目录 13.指针的使用和传址调用 14.数组名的理解 *数组名就是数组首元素的地址 *两个例外 *使用指针访问数组 *一维数组的传参本质 往期推荐 承接上篇39.【C语言】指针(重难点)(D) 13. 指针的使用和传址调用 见29.【C语言】函数系…

Linux系统编程(9)

一、wait函数 1.wait函数 #include <sys/wait.h> pid_t wait(int *status);wait函数有两个作用&#xff1a; 1.获取子进程 的退出状态 当父进程要获取子进程的退出状态时&#xff0c;子进程里需要使用exit函数&#xff08;exit&#xff08;退出状态值&#xff09;退出…

10:【stm32】USART与串口通信一:USART(上)

USART&#xff08;上&#xff09; 1、串口通信1.1、简介1.2、数据帧1.2.1、简介1.2.2、校验规则1.2.3、停止位的长度 1.3、异步通信的波特率1.3.1、同步通信1.3.2、异步通信1.3.3、硬件流控 2、USART2.1、简介2.2、工作的原理2.3、相关寄存器 3、标准库编程3.1、编程接口USART_…

day16-测试自动化之selenium的PO模式

一、PO模式介绍 PO&#xff08;Page Object&#xff09;模式是一种在自动化测试中常用的设计模式&#xff0c;将页面的每个元素封装成一个对象&#xff0c;通过操作对象来进行页面的交互。 一般分为六个版本&#xff0c;现在大部分企业都用的V4版本&#xff0c;三层结构…

redis面试(十六)公平锁释放和排队加锁

锁释放 RedissonFairLock.unlockInnerAsync()方法 这和加锁的逻辑没有太大区别 也就是说在客户端A他释放锁的时候&#xff0c;也会走while true的脚本逻辑&#xff0c;看一下有序集合中的元素的timeout时间如果小于了当前时间&#xff0c;就认为他的那个排队就过期了&#xf…

Spring自动注册-<bean>标签和属性解析

xml文件中最常见也最核心的就是<bean>,<Import>,<beans>,<alias>标签,关于它们的解析主要是BeanDefinitionParserDelegate类中.<bean>标签的解析最为复杂和重要. <bean>标签 processBeanDefinition(ele, delegate)方法中,主要是是对…

数据库管理-Redis

数据库管理-Redis 一、关系型数据库和非关系型数据库1、关系型数据库&#xff08;Relational Database Management System, RDBMS&#xff09;&#xff1a;2、非关系型数据库&#xff08;NoSQL Database Management System&#xff09;&#xff1a; 二、redis简述 redis是把数据…

苦WPS云盘已久矣

主要因为软件更新后&#xff0c;设置位置都会跑到其他地方 打开wps客户端后&#xff0c;点击电脑底部任务栏的云朵图标。 2. 找到存储位置后&#xff0c;点击“更换位置”。 来自https://www.wps.cn/mlearning/question/detail/id/333165.html

Java | Leetcode Java题解之第328题奇偶链表

题目&#xff1a; 题解&#xff1a; class Solution {public ListNode oddEvenList(ListNode head) {if (head null) {return head;}ListNode evenHead head.next;ListNode odd head, even evenHead;while (even ! null && even.next ! null) {odd.next even.nex…

编程学习笔记秘籍:开启高效学习之旅

引言&#xff1a; “计算机科学教育不能使人成为程序员&#xff0c;就像学画笔和颜料不能使人成为画家一样。”——埃里克雷蒙德。在当今数字化的时代&#xff0c;编程如同一把神奇的钥匙&#xff0c;能够打开无数机遇的大门。然而&#xff0c;编程知识的海洋广阔无垠&#xff…

正也科技:医药营销管理数字化建设的重要性及其迭代方向

第三届MAH合作与创新大会暨浙江省医药产业博览会于上周在杭州圆满结束。会议汇集了众多医药领域的专家、行业领袖和企业家&#xff0c;共同探讨医药行业的转型之路与实战经验。在中国医药新趋势分论坛&#xff0c;与会人员重点讨论了当前中国医药产业在新环境下所面临的挑战、变…

文心快码 Baidu Comate 前端工程师观点分享:行业现状(二)

本系列视频来自百度工程效能部的前端研发经理杨经纬&#xff0c;她在由开源中国主办的“AI编程革新研发效能”OSC源创会杭州站105期线下沙龙活动上&#xff0c;从一款文心快码&#xff08;Baidu Comate&#xff09;前端工程师的角度&#xff0c;分享了关于智能研发工具本身的研…