手上有服务器的同学们,赶紧去修 Bash 的漏洞吧

2014-09-25 13:01:33 +08:00
 easychen

如何检测使用的Bash有漏洞

在bash下运行代码:

env x='() { :;}; echo vulnerable' bash -c 'echo hello'

如果输出是:

vulnerable
hello

那么赶紧修复吧。

Ubuntu如何升级

很简单,直接运行下边apt-get命令即可:

sudo apt-get update && sudo apt-get install bash

运行以后再运行上边的代码会提示:

bash: warning: x: ignoring function definition attempt
bash: error importing function definition for x'
hello

这个时候漏洞就修复好啦。

CenterOS

yum update -y bash

11413 次点击
所在节点    DevOps
57 条回复
ptyfork
2014-09-25 14:14:52 +08:00
你们装完homebrew的bash顺便把系统自带的bash删了? 否则update有啥用?
shuangchun
2014-09-25 14:21:16 +08:00
centeros是什么。
chunchu
2014-09-25 14:30:17 +08:00
感谢,已更新,虽然没有什么重要的服务跑在上面
demo
2014-09-25 14:32:57 +08:00
纯windows打酱油来了
knightlhs
2014-09-25 14:46:27 +08:00
centos 修复完成 非常感谢 虽然只是跑了pptp 跟 blog
Lycnir
2014-09-25 14:55:45 +08:00
@Livid 请问大大用的是啥配置管理工具?
Tink
2014-09-25 15:00:10 +08:00
我擦,BuyVM的Ubuntu居然update之后bash没有新版。。。
jqw1992
2014-09-25 15:01:39 +08:00
谢谢,已经更新上了
Tink
2014-09-25 15:02:10 +08:00
换了个源好了。。
Livid
2014-09-25 15:04:20 +08:00
@Lycnir 这个就是 Puppet 的语法。
ygf0934
2014-09-25 15:44:51 +08:00
已修复,感谢
mornlight
2014-09-25 16:15:12 +08:00
panlilu
2014-09-25 16:56:12 +08:00
X='() { (a)=>\' sh -c "echo date"; cat echo

新的漏洞利用测试代码,输出了日期的话。。
kqz901002
2014-09-25 17:00:48 +08:00
@robertlyc 自带旧版的还是有漏洞的...
regmach
2014-09-25 17:12:58 +08:00
谢谢
galaxy
2014-09-25 17:20:28 +08:00
话说,用OpenSSH测试,发现没有提权,就是说不考虑CGI的话,Linux其实是安全的?
withrock
2014-09-25 17:33:50 +08:00
Bash安全缺陷验证及修复方法
----UCloud云计算团队
一、漏洞概述

   在GNU bash环境变量中定义一个函数之后,如果后续还有其它字符串,bash在解析这些字符串的时候存在一个缺陷,允许远程攻击者执行任意的命令,只要攻击者 构建一个特殊的环境变量即可。攻击者可以利用此缺陷重写或绕过环境变量的限制执行shell命令,从而导致信息泄漏、未授权的恶意修改、服务中断。

下面是验证过程:

[root@10-4-2-230 test]# ls
[root@10-4-2-230 test]# env -i  X='() { (a)=>\' bash -c 'echo touch google'
bash: X: line 1: syntax error near unexpected token `='
bash: X: line 1: `'
bash: error importing function definition for `X'
[root@10-4-2-230 test]# ls
echo  google


二、受影响版本

  目前GNU bash4.3及以下版本存在此问题。
三、利用场景

如下业务场景中都会受此缺陷影响:
   1、OpenSSH sshd使用了ForceCommand特性
   
   ForceCommand特性用来给远程用户提供受限的命令执行能力,因此使用了此特性的如git、subversion等都会受影响。
   
   2、Apache HTTP Server使用了modcgi和mod_cgid模块;
            
   在Apache Server启用了modcgi和mod_cgid模块时,只要CGI脚本是由bash编写,或者使用了派生的subshell都会受影响。能够产生这样的subshell的包括:
   C语言的system/popen,Python的os.system/os.popen,PHP的system/exec,Perl的open/system。
 
四、修复方法

yum clean all
yum --enablerepo=updates install bash

五、验证方法

验证是否存在次漏洞的方法:
      
[root@10-4-2-230 test]# env x='() { :;}; echo vulnerable' bash -c "echo this is a test”
vulnerable
this is a test

漏洞修复之后,再执行该命令:
[root@10-4-2-230 test]# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
     bash: warning: x: ignoring function definition attempt
     bash: error importing function definition for `x'
     this is a test

六、参考链接

https://www.invisiblethreat.ca/2014/09/cve-2014-6271/
cj1324
2014-09-25 17:37:35 +08:00
继续等下一波升级包。。
9hills
2014-09-25 17:55:45 +08:00
这个漏洞对大部分人没影响。。。
sobigfish
2014-09-25 18:07:12 +08:00
@9hills (openwrt?)路由器的话会怎么样

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/135607

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX