学海无涯
go,go,go

SSH版本信息隐藏

1.Q:漏洞名称:SSH版本信息可被获取
描述:SSH服务允许远程攻击者获得ssh的具体信息,如版本号等等。这可能为攻击者发动 进一步攻击提供帮助。"
运维建议解决方案:“NSFOCUS建议您采取以下措施以降低威胁:* 修改源代码或者配置文件改变SSH服务的缺省banner。”
端口号:22
2.A:解决途径:
(1)在 /etc/下创建一个文件 ssh_banner_change,在文件中输入内容,如:welcome!
(2)修改/etc/ssh/sshd_config 文件,找到#Banner none在其下面添加以下内容:Banner /etc/ssh_banner_change
      #no default banner path
      #Banner none
      Banner /etc/ssh_banner_change

(3)重启sshd服务
systemctl restart sshd
(4)验证是否成功
telnet localhost 22
运行该命令,若是提示~bash: telnet: command not found,则安装telnet
yum list telnet*              列出telnet相关的安装包
yum install telnet-server          安装telnet服务
yum install telnet.*           安装telnet客户端
再次运行telnet localhost 22
发现仍然打印出类似SSH-2.0.0-OpenSSH_8.3的版本信息,说明失败,若是成功打印出类似welcome的信息则成功,无需进行以下步骤
(5)上述(4)失败的话,那就需要重新编译安装,下载安装包
wget http://www.zlib.net/zlib-1.2.11.tar.gz
wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
wget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.6p1.tar.gz
注意:
别卸载原版本的ssh,就算下载新版本后也别卸载;按资料说是:如果是远程连接升级,不能卸载旧版本,否则连接会断开。安装新版本后也不能卸载老版本,否则要到服务器直连重新安装。(未验证) 在修复前多开几个连接窗口,防止操作过程产生的影响导致再也连接不上。这样就只能去服务器直连,无法远程连接。(经后续验证后,确实会出现重新打开连接时连接不上的问题,所以务必提前多开几个连接窗口)

(6)安装 zlib-1.2.11.tar.gz
#解压
tar -xvf zlib-1.2.11.tar.gz
#进入解压后的目录
cd zlib-1.2.11
#编译,该目录自己选择
./configure --prefix=/usr/local/zlib 
make && make install
注意:
若是有失败,则是gcc未安装,安装gcc后重复上述步骤(下面其他解压安装时同理,若失败了,也考虑gcc的问题):
yum -y install gcc automake autoconf libtool make

(7)安装 openssl-1.1.1g.tar.gz
#解压
tar -xvf openssl-1.1.1g.tar.gz
#进入解压后的目录
cd openssl-1.1.1g
#编译,该目录自己选择
./config --prefix=/usr/local/ssl -d shared 
make && make install
#安装后查看信息是否成功
ldconfig -v
(8)安装 openssh-8.6p1.tar.gz
#解压
tar -xvf openssh-8.6p1.tar.gz

#进入解压后的目录
cd openssh-8.6p1

#修改 version.h 文件内容
找到类似  #define SSH_VERSION “OpenSSH_8.6(视你下载的版本而定)”  ,将版本信息改为(如:welcome),即改为 #define SSH_VERSION “China_wbiao”

#编译,该prefix目录自己选择,后面的ssl目录、zlib目录都要与前面解压时对应上
./configure --prefix=/usr/local/openssh --with-ssl-dir=/usr/local/ --with-zlib=/usr/local/zlib 

若是有报错,如:
configure: error: *** working libcrypto not found, check config.log ***
或者
configure: error: *** OpenSSL headers missing - please install first or check config.log ***
则将ssl目录改为其上级目录再重新尝试,如--with-ssl-dir=/usr/local/ssl改为--with-ssl-dir=/usr/local
若是还不行,则在上面改动的基础上,yum安装openssl-devel包再重新尝试,命令:
yum install -y openssl-devel
(报错参考链接:https://www.cnblogs.com/wholj/p/10944407.html)
实验时在改动基础上安装openssl-devel包后成功

make && make install

#修改 /usr/local/openssh/etc/sshd_config 文件:
①找到 #PermitRootLogin prohibit-password 在下一行添加 PermitRootLogin yes,启用允许root 远程登录;
②找到 #PubkeyAuthentication yes 在下一行添加 PubkeyAuthentication yes,启用公钥身份验证;
③找到 #PasswordAuthentication yes 在下一行添加 PasswordAuthentication yes,启用隧道明文密码

#备份 /etc/ssh 原有文件(原来没有的文件,mv 命令提示 :No such file or directory,则跳#过 mv 备份),并将新的配置复制到指定目录:
mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
cp -f /usr/local/openssh/etc/sshd_config /etc/ssh/sshd_config
mv /usr/sbin/sshd /usr/sbin/sshd.bak
cp -f /usr/local/openssh/sbin/sshd /usr/sbin/sshd
mv /usr/bin/ssh /usr/bin/ssh.bak
cp -f /usr/local/openssh/bin/ssh /usr/bin/ssh 
mv /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak
cp -f /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen
mv /etc/ssh/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub.bak
cp -f /usr/local/openssh/etc/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub

#重启,查看版本
systemctl restart sshd
sshd -v

#启动服务后,配置开机启动(需要开机自启)
systemctl enable sshd.service

#验证是否成功
telnet localhost 22
若是提示:SSH-2.0.0-China_welcome(你自己配置的),则说明成功
(9)xshell新开窗口连接不上
setsebool -P authlogin_shadow on
该命令具体意思还得调查,-p是永久修改的意思
运行该命令后,再次连接发现成功

(10)Xshell 连接虚拟机出现 “The remote SSH server rejected X11 forwarding request”
#修改ssh配置
vi /etc/ssh/sshd_config
以及vi /usr/local/openssh/etc/sshd_config (openssh-8.3p1.tar.gz的安装目录中)
或者
单纯修改vi /usr/local/openssh/etc/sshd_config,
然后cp -f /usr/local/openssh/etc/sshd_config /etc/ssh/sshd_config

修改内容:
将文件中的 X11Forwarding 参数改为 yes;

保存退出后即可成功,当然最好重启systemctl restart sshd
再次连接发现无此提示
但此种解决还有问题,OpenSSH Server未启动,有待解决
赞(0) 打赏
未经允许不得转载:YYQ运维技术博客_运维的工作学习之路 » SSH版本信息隐藏
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

运维devops

联系我们关于本博客

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏