隐藏SSH服务程序版本号

〇、概述

使 ssh 客户端以及探测工具在与 ssh 服务器通信过程中通过登录认证之前无法获取到 sshd 程序的具体版本号,从而避免基于SSH版本号的漏洞探测。

在 openssh 最新源码的基础上修改,隐藏登录过程中服务端发送给客户端的程序版本信息,编译安装后测试效果。

在这里插入图片描述

一、修改源码

version.h

diff --git a/version.h b/version.h
index 81b7645a7..b92b28c6f 100644
--- a/version.h
+++ b/version.h
@@ -1,6 +1,7 @@
 /* $OpenBSD: version.h,v 1.102 2024/07/01 04:31:59 djm Exp $ */
 
 #define SSH_VERSION    "OpenSSH_9.8"
+#define SSH_VERSION_FAKE "OpenSSH_latest"

kex.c

diff --git a/kex.c b/kex.c
index 63aae5d71..b1e88e935 100644
--- a/kex.c
+++ b/kex.c
@@ -1253,7 +1253,7 @@ kex_exchange_identification(struct ssh *ssh, int timeout_ms,
        if (version_addendum != NULL && *version_addendum == '\0')
                version_addendum = NULL;
        if ((r = sshbuf_putf(our_version, "SSH-%d.%d-%s%s%s\r\n",
-           PROTOCOL_MAJOR_2, PROTOCOL_MINOR_2, SSH_VERSION,
+           PROTOCOL_MAJOR_2, PROTOCOL_MINOR_2, SSH_VERSION_FAKE,
            version_addendum == NULL ? "" : " ",
            version_addendum == NULL ? "" : version_addendum)) != 0) {
                oerrno = errno;

二、测试效果

使用 ssh 客户端:

ssh -v root@kylin.vm

在这里插入图片描述

使用 nc 命令:

nc -v kylin.vm 22

在这里插入图片描述

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值