linux 隐藏ssh版本信息,如何隐藏SSH的版本

如何隐藏SSH的版本

本文以在 Ubuntu 18.04 上为例,演示如何隐藏 OpenSSH 的版本信息。

Step 1: 查看 OpenSSH 的版本信息

# whereis sshd

sshd: /usr/sbin/sshd /usr/share/man/man8/sshd.8.gz

# /usr/sbin/sshd -v

unknown option -- v

OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7 Dec 2017

usage: sshd [-46DdeiqTt] [-C connection_spec] [-c host_cert_file]

[-E log_file] [-f config_file] [-g login_grace_time]

[-h host_key_file] [-o option] [-p port] [-u len]

使用 nmap 进行外部扫描。

# nmap -p 22 -sV -v -n 192.168.2.167

Starting Nmap 7.91 ( https://nmap.org ) at 2021-02-08 19:14 CST

NSE: Loaded 45 scripts for scanning.

Initiating Ping Scan at 19:14

...

PORT STATE SERVICE VERSION

22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)

Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

可以看到版本为:OpenSSH 7.6p1

Step 2: 替换版本信息

记住,一定要先备份,以免操作失误,尤其是在远程操作的时候。

# cp /usr/sbin/sshd sshd.bak # 【注】备份

# cp /usr/sbin/sshd /usr/sbin/sshd.bak

# ls /usr/sbin/sshd*

/usr/sbin/sshd /usr/sbin/sshd.bak

# strings /usr/sbin/sshd | grep OpenSSH_7.6

OpenSSH_7.6p1 Ubuntu-4ubuntu0.3 == Nmap 探测展示的结果是这一行

OpenSSH_7.6p1

OpenSSH_7.6

替换 OpenSSH 的版本,使用 sed 命令,语法如下

sed 's/原字符串/替换字符串/'

# sed -i 's/OpenSSH_7.6/OpenSSH_x.x/g' /usr/sbin/sshd

# /usr/sbin/sshd -v

unknown option -- v

OpenSSH_x.xp1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7 Dec 2017

usage: sshd [-46DdeiqTt] [-C connection_spec] [-c host_cert_file]

[-E log_file] [-f config_file] [-g login_grace_time]

[-h host_key_file] [-o option] [-p port] [-u len]

可以看到,本地提示的版本信息已经变了。

【注】在替换版本的时候,如果替换为任意字符,可能会导致 core dump, 具体原因不明,可以参考上面的做法,隐藏具体版本信息即可。

Step 3: 验证

# nmap -p 22 -sV -v -n 192.168.2.167

查看 /usr/sbin/sshd 文件内容,发现已经更改。

以上!

如何隐藏SSH的版本 相关文章

从Spring框架看设计模式如何灵活使用

Singleton 单例模式 单例模式是确保每个应用程序只存在一个实例的机制。默认情况下,Spring将所有bean创建为单例。 你用@Autowired获取的bean,全局唯一。 @RestControllerpublic class LibraryController { @Autowired private BookRepository repository;

Oracle 如何实现自增id

创建一个序列 创建一个触发器 绑定触发器 -- sql 语句create table employee(id int,DeptNo number,EmpNo number,Ename varchar(16),Job varchar(32),Sal float,HireDate date,constraint pk_employee primary key(EmpNo));-- 2. 创建序列create sequence em

DNS 是什么如何运作的

前言 我们在上一篇说到,IP 地址的发明把我们纷乱复杂的网络设备整齐划一地统一在了 同一个网络 中。 但是类似于 192.168.1.0 这样的地址并不便于人类记忆,于是发明了 域名(Domain Name) 来帮助解决这样的问题。 对应的,我们也需要一个系统来帮助"翻译":

如何极速极速搭建个人博客Copy攻城狮用的这一招很优秀!

摘要: 在中国功夫中,“天下武功,无坚不摧,唯快不破”,在编程的世界里,如何快速搭建一个属于自己的博客呢那么 Pagic + Vercel 应该是个不错的选择!接下来,由Copy攻城狮和您一起搭建博客! 预览地址:https://pagic.vercel.app/ 本文分享自华为云社区

Linux - 如何查看Linux的CPU个数、核数(包括物理CPU和逻辑CPU)

1 - 计算公式 总核数 = 物理CPU个数 x 每颗物理CPU的核数 逻辑CPU个数 = 物理CPU个数 x 每颗物理CPU的核数 x 超线程数 2 - 具体命令 Linux 系统的 CPU 型号,类型和大小等信息,都保存在 /proc/cpuinfo 文件中,可以通过下面的命令来查看相关信息: # 查看物

Python进阶丨如何创建你的第一个Python元类

摘要: 通过本文,将深入讨论Python元类,其属性,如何以及何时在Python中使用元类。 Python元类设置类的行为和规则。元类有助于修改类的实例,并且相当复杂,是Python编程的高级功能之一。通过本文,将深入讨论Python元类,其属性,如何以及何时在Python中

多中心容灾实践:如何实现真正的异地多活

简介: 在异地多活的实现上,数据能够在三个及以上中心间进行双向同步,才是解决真正异地多活的核心技术所在。本文基于三中心且跨海外的场景,分享一种多中心容灾架构及实现方式,介绍几种分布式ID生成算法,以及在数据同步上最终一致性的实现过程。 一 背景

Git 在团队中的最佳实践--如何正确使用Git Flow【转】

转自:https://www.cnblogs.com/wish123/p/9785101.html 我们已经从SVN 切换到Git很多年了,现在几乎所有的项目都在使用Github管理, 本篇文章讲一下为什么使用Git, 以及如何在团队中正确使用。 Git的优点 Git的优点很多,但是这里只列出我认为非常突出的几点

Qt 如何设置textedit控件按下enter就把消息发出去

如图效果: 上面是一个textBrowser控件,用来显示我发的东西 下面是一个textedit控件,用来发东西 所以,这里实现的是在textedit里面输入文字,按下enter之后,文字到上面去了,当然也可以单击“发送” ui界面如图: 代码如下 widget.h中 1 #ifndef WIDGET_H

HTML、CSS和JS如何变成页面的

我们经常写 HTML 、 CSS 和 JavaScript ,写好这些之后,我们就会在浏览器中看到页面,那浏览器究竟在这背后做了一些什么事情呢本篇文章将揭晓答案! 了解浏览器的渲染原理是我们在通往更深层次的前端开发中不可缺少的,它可以让我们从更深层次、角度去考虑

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值