漏洞编号安全
CVE-2016-10009bash
漏洞名称服务器
OpenSSH远程代码执行漏洞运维
漏洞描述ssh
sshd服务能够利用转发的agent-socket文件,欺骗本机的ssh-agent来加载一个恶意的PKCS#11模块,从而能够远程执行代码。socket
官方评级ide
中危阿里云
漏洞危害spa
***利用漏洞实现远程命令执行,严重状况下可能会致使数据泄露。操作系统
漏洞利用条件
能够实现远程利用。
该漏洞利用依赖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