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