linux bash 漏洞修复方法
1.yum-yupdatebash
执行此命令用以更新bash
注意:若系统为CentOS6及以上,则可通过手动或在线下载rpm包进行升级
wgethttp://mirror.centos.org/centos/6/updates/x86_64/Packages/bash-4.1.2-15.el6_5.1.x86_64.rpm
rpm-Uvhbash-4.1.2-15.el6_5.1.x86_64.rpm
之后就不用再执行上述update命令了
1.1若执行过程中出现类似以下错误:
[root@localhost~]#yum-yupdatebash
Loadedplugins:rhnplugin,security
ThissystemisnotregisteredwithRHN.
RHNsupportwillbedisabled.
SettingupUpdateProcess
NoPackagesmarkedforUpdate
说明yum源不对,需要更换成centos的yum源(此方法适用于redhat5以上版本的服务器)
更换yum源为centos方法:
(1)cd/etc/yum.repos.d/进到该目录下,将文件rhel-debuginfo.repo备份
(2)在该目录下执行命令wgethttp://docs.linuxtone.org/soft/lemp/CentOS-Base.repo下载centos的yum源
(3)然后将下载下来的文件重命名为rhel-debuginfo.repo
1.2若更换过yum源后仍然不能执行update命令,并提示:
正在解析主机docs.linuxtone.org...失败:域名解析暂时失败。
说明没有联网,建议手动下载rpm包安装:
http://mirrors.aliyun.com/centos/5/updates/x86_64/RPMS/
下载文件
http://mirrors.aliyun.com/centos/5/updates/x86_64/RPMS/bash-3.2-33.el5.1.x86_64.rpm
然后执行命令:
rpm-Uvhbash-3.2-33.el5.1.x86_64.rpm#[升级一个rpm]
注意:rpm-Uvh中的U要大写
若操作系统为RedHatEnterpriseLinuxServerrelease5.6,则需要下载
bash-3.2-33.el5_11.4.x86_64.rpm包
1.3若update命令执行时出现Anotherappiscurrentlyholdingtheyumlock提示,
则通过执行rm-rf/var/run/yum.pid来强行解除锁定
1.4若update命令执行时出现类似于http://mirrors.163.com/centos/5.5/addons/x86_64/repodata/repomd.xml:[Errno14]HTTPError404:NotFound
Tryingothermirror.
http://ftp.stu.edu.tw/Linux/CentOS/5.5/addons/x86_64/repodata/repomd.xml:[Errno14]HTTPError404:NotFound
Tryingothermirror.错误时,说明源找不到,需要更改update的地址
(1)cd/etc/yum.repos.d/
(2)viCentOS-Base.repo
(3)将其中update的BaseUrl换成有效的链接:
如:
[updates]
name=CentOS-$releasever-Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
中
baseurl值变为:
http://mirror.centos.org/centos/6/updates/$basearch/
保存退出,再执行update命令,即可成功。
1.5若执行update操作出现
-bash:yum:commandnotfound
2.升级过bash后,进行验证,具体验证方法如下:
2.1CVE-2014-6217漏洞验证
执行命令:envx='(){:;};echovulnerable'bash-c"echothisisatest"
如果终端中没有输出“vulnerable”则证明该漏洞修复成功
2.2CVE-2014-7169漏洞验证
执行命令:envX='(){(shellshocker.net)=>\'bash-c"echoid";catecho;rm-fecho
如果终端中没有输出用户信息则证明该漏洞修复成功,如果返回用户信息则证明漏洞没有修复成功
2.3CVE-2014-6277漏洞验证
执行命令:env-iX='(){};echoid'bash-c'date'
如果终端中没有输出用户信息则证明该漏洞修复成功
2.4CVE-2014-7186漏洞验证
执行命令:bash-c'true<<EOF<<EOF<<EOF<<EOF<<EOF<<EOF<<EOF<<EOF<<EOF<<EOF<<EOF<<EOF<<EOF<<EOF'||echo"CVE-2014-7186vulnerable,redir_stack"
如果终端中没有输出“CVE-2014-7186vulnerable”则证明该漏洞修复成功
2.5CVE-2014-7187漏洞验证
执行命令:(forxin{1..200};doecho"forx$xin;do:";done;forxin{1..200};doechodone;done)|bash||echo"CVE-2014-7187vulnerable,word_lineno"
如果终端中没有输出“CVE-2014-7187vulnerable”则证明该漏洞修复成功