[ 安全运维 ] OpenSSH版本内网脚本升级

0x00.前言:

  最近做漏扫时,扫描出Linux系统的一些漏洞问题,其中有一个漏洞是关于OpenSSH低版本出现的一些漏洞,需要对这些使用低版本OpenSSH的服务器进行软件升级,由于这些存在问题的Linux机器无法连接外网,需要在内网升级,并且需要操作的服务器数量多,最为关键的是客户需要一个超级简单的升级方案(拿网上的教程发过去就得挨P)。为了方便,我就找到最新版本OpenSSH 8.0p1安装包,自己写了个升级脚本,大大的简化了客户升级的难度。

 

0x01.检查版本信息

使用命令: ssh -V
这里需要升级的版本为低于OpenSSH 8.0p1,可以看到这里的版本已经很老了,在网上可以查找到此OpenSSH版本的相关漏洞。

0x02.准备升级包

最新版本OpenSSH 8.0p1下载地址:

https://www.openssh.com/openbsd.html

脚本内容:(这里使用的是红帽下的命令,同样适用于Cent OS,其他linux版本自行更改相关命令)

#!/bin/sh
oldversion=`ssh -V 2>&1`
echo "开始执行 OpenSSH 版本升级脚本"
echo -e "当前OpenSSH版本为: \033[31m $oldversion \033[0m"
echo "正在解压安装OpenSSH 8.0p1源代码......"
{
  tar -zxf openssh-8.0p1.tar.gz
} &>> install.log
echo "备份原版OpenSSH......"
{
	mv /etc/ssh/ ./ssh.bak
} &>> install.log
echo "安装编译所需依赖,耗时较长,请耐心等待......"
{
	yum -y install gcc zlib-devel openssl-devel
} &>> install.log
echo "配置并编译OpenSSH......"
{
	cd openssh-8.0p1/
	./configure --prefix=/usr --sysconfdir=/etc/ssh
	make
} &>> install.log
echo "卸载旧版OpenSSH......"
{
	rpm -e --nodeps `rpm -qa | grep openssh`
} &>> install.log
echo "开始安装......"
{
  make install
  chmod 0600 /etc/ssh/ssh_host_rsa_key   chmod 0600 /etc/ssh/ssh_host_ecdsa_key
  chmod 0600 /etc/ssh/ssh_host_ed25519_key   make install } &>> install.log newversion=`ssh -V 2>&1` echo "开始执行 OpenSSH 版本升级脚本" echo -e "安装完成,当前SSH版本为: \033[32m $newversion \033[0m" echo "配置权限及启动项......" { cp contrib/redhat/sshd.init /etc/init.d/sshd chkconfig --add sshd

脚本保存为sshfix.sh

然后将脚本和升级包放在同一文件夹下,压缩后发送给客户。

0x03.安装使用步骤

注意因升级需要先卸载SSH,建议此操作在telnet或直接在服务器上操作。

解压并执行脚本

tar xvf OpenSSH_update.tar

进入升级包解压后目录下,对需要运行的脚本附加执行权限,并执行脚本。
使用的命令:

cd OpenSSH_update
Chmod +x sshfix.sh
./sshfix.sh

0x04.安装升级成功

脚本会提示当前SSH版本为OpenSSH 8.0p1

  

posted @ 2019-06-18 16:00  QtIsec  阅读(1023)  评论(1编辑  收藏  举报