sshd代码修改banner
sshd服务连接之后会收到字符串:
SSH-2.0-OpenSSH_9.5
容易被hacker识别此服务为sshd服务。
是否可以通过修改此banner达到让人无法识别此服务的目的呢?
不能。因为这是写的SSH的协议中的。 也就是协议规定了banner必须这么写。
SSH- 开头, 接版本号,再接具体的软件版本号。
改成HTTP- 这样子是不行的。
在进行连接时,会报错,见下图。
用windows 的cmd连接 sshd服务,报错。
修改和编译的过程
./configure \--prefix=/usr/local/openssh \--sysconfdir=/etc/ssh \--with-pam \--without-debug \CFLAGS="-O2 -g0"
//version.h
#define SSH_VERSION "OpenSSH_9.5"// kex.cif ((r = sshbuf_putf(our_version, "SSH-%d.%d-%.100s%s%s\r\n",PROTOCOL_MAJOR_2, PROTOCOL_MINOR_2, SSH_VERSION,version_addendum == NULL ? "" : " ",version_addendum == NULL ? "" : version_addendum)) != 0) {oerrno = errno;error_fr(r, "sshbuf_putf");goto out;}
直接以全路径运行当前目录下的sshd程序,需要建立一个空目录。
mkdir /var/empty