漏洞編號
CVE-2016-10009
漏洞名稱
OpenSSH遠程代碼執行漏洞
漏洞描述
sshd服務可以利用轉發的agent-socket文件,欺騙本機的ssh-agent來加載一個惡意的PKCS#11模塊,從而可以遠程執行代碼。
官方評級
中危
漏洞危害
***利用漏洞實現遠程命令執行,嚴重情況下可能會導致數據泄露。
漏洞利用條件
可以實現遠程利用。
該漏洞利用依賴ssh-agent。該進程默認不啓動,只在多主機間免密碼登錄時纔會用到,漏洞利用條件也比較苛刻。
漏洞影響範圍
OpenSSH 7.3
OpenSSH 7.2p2
OpenSSH 7.2
OpenSSH 7.1p2
OpenSSH 7.1p1
OpenSSH 7.1
OpenSSH 7.0
OpenSSH 6.9p1
OpenSSH 6.9
OpenSSH 6.6
OpenSSH 6.5
OpenSSH 6.4
OpenSSH 6.3
OpenSSH 6.2
OpenSSH 6.1
OpenSSH 6.0
OpenSSH 5.8
OpenSSH 5.7
OpenSSH 5.6
OpenSSH 5.5
OpenSSH 5.4
OpenSSH 5.3
OpenSSH 5.2
OpenSSH 5.1
OpenSSH 5.0
漏洞檢測
使用以下命令查看當前版本。
ssh -V
使用安騎士檢查。
漏洞修復建議(或緩解措施)
阿里雲提供的ECS操作系統中默認的OpenSSH,不受該漏洞影響。如果您變更過OpenSSH版本,並確認當前OpenSSH版本在受影響範圍內,阿里雲建議您將SSH服務端升級到OpenSSH version 7.4及以上。升級方法見下文。
同時,建議您不要直接將SSH服務等高風險端口服務直接開放到互聯網。推薦您使用***和堡壘機等更安全的方式進行遠程運維,防止發生暴力破解和漏洞利用***事件。
升級OpenSSH
推薦您使用yum update升級,如果更新源無最新安裝包,您可以按照以下升級方法升級。下文以CentOS 6.8 64bit爲例進行說明。
注意:
在升級前,強烈建議您做好快照和文件備份,防止出現升級失敗無法遠程管理等意外事件。
在執行以下安裝操作時,請務必再開一個SSH窗口連接所需要升級的服務器,避免SSH升級失敗後,無法連接服務器。或者,在升級前最好安裝Telnet服務作爲備用方案,直到升級成功後再停止Telnet。
執行以下代碼升級zlib。
wget wget http://zlib.net/zlib-1.2.11.tar.gz tar zxvf zlib-1.2.11.tar.gz cd zlib-1.2.11 ./configure make make install
使用以下命令查看升級後的libz版本。
ll /usr/local/lib
結果如下所示。
zlib
升級openssl-flips。在安裝前查看是否爲最新版本。如果是,請直接到第4步;如果不是,執行以下代碼下載最新版本並升級。
wget https://www.openssl.org/source/openssl-fips-2.0.14.tar.gz tar zxvf openssl-fips-2.0.14.tar.gz cd openssl-fips-2.0.14 ./config make make install
執行以下代碼升級openssl。
wget https://www.openssl.org/source/openssl-1.1.0e.tar.gz tar zxvf openssl-1.1.0e.tar.gz cd openssl-1.1.0e ./config make make install ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1 ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1 ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
查看升級後的OpenSSL版本,結果如下:
openssl
執行以下代碼安裝PAM。
yum install pam* -y
升級安裝OpenSSH。
wget https://mirrors.evowise.com/pub/OpenBSD/OpenSSH/portable/openssh-7.4p1.tar.gz tar zxvf openssh-7.4p1.tar.gz cd openssh-7.4p1 ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-privsep-path=/var/lib/sshd --with-ssl-dir=/usr/local/lib64 --without-hardening make make install
# 備份sshd文件,重命名爲sshd_20170209_old
mv /etc/init.d/sshd /etc/init.d/sshd_20170209_old
# 複製配置文件、賦權、添加到開機啓動項
cd /root/openssh-7.4p1/contrib/redhat cp sshd.init /etc/init.d/sshd cp ssh_config /etc/ssh/ssh_config
# 根據提示,輸入y進行覆蓋(若對原文件重命名,則無需覆蓋)
cp -p sshd_config /etc/ssh/sshd_config
# 根據提示,輸入y進行覆蓋(若對原文件重命名,則無需覆蓋)
chmod u+x /etc/init.d/sshd chkconfig --add sshd chkconfig sshd on
# 重啓sshd服務
service sshd restart
查看升級版本,顯示爲最新版本。
ssh -V OpenSSH_7.4p1, OpenSSL 1.0.2i 22 Sep 2016
OpenSSH_7.4p1升級源碼包: http://down.51cto.com/data/2447161