V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
easychen
V2EX  ›  DevOps

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

  •  5
     
  •   easychen · 2014-09-25 13:01:33 +08:00 · 11055 次点击
    这是一个创建于 3472 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如何检测使用的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

    57 条回复    2014-09-30 08:58:45 +08:00
    hjc4869
        1
    hjc4869  
       2014-09-25 13:03:30 +08:00
    不是共享服务器的应该不需要太急吧
    lovedboy
        2
    lovedboy  
       2014-09-25 13:06:36 +08:00
    个人感觉影响有限。要靠cgi才能发挥作用,并且代码里面调用了shell.
    ptyfork
        3
    ptyfork  
       2014-09-25 13:09:28 +08:00
    我的macbook怎么办?
    easychen
        4
    easychen  
    OP
       2014-09-25 13:10:52 +08:00
    @lovedboy 可能被其他漏洞一起利用。修起来不麻烦的就修了吧。
    bullettrain1433
        5
    bullettrain1433  
       2014-09-25 13:13:59 +08:00
    vps已经修复
    ibigbug
        6
    ibigbug  
       2014-09-25 13:24:08 +08:00
    VPS 修复了
    OS X 怎么办?
    withrock
        7
    withrock  
       2014-09-25 13:26:25 +08:00
    这个漏洞怎么利用呢?有exploit例子么哦?
    Sokos
        8
    Sokos  
       2014-09-25 13:27:00 +08:00   ❤️ 1
    raincious
        9
    raincious  
       2014-09-25 13:27:27 +08:00   ❤️ 1
    有推说:

    @terrywang

    Bash 爆出严重的安全漏洞 CVE-2014-6271 影响非常大。更杯具的是目前的补丁还是不完全体,可以继续被利用,比如 env -i X='() { (a)=>\' bash -c 'echo curl -Is terry.im'; head echo 囧

    https://twitter.com/terrywang/status/514977519129223169
    easychen
        10
    easychen  
    OP
       2014-09-25 13:27:42 +08:00   ❤️ 1
    @ibigbug OSX我也不知道怎么办,如果不自己编译,大概得等brew放bash新版吧。
    woollq
        11
    woollq  
       2014-09-25 13:30:55 +08:00
    已修复 多谢!!!!
    Sokos
        12
    Sokos  
       2014-09-25 13:33:36 +08:00
    Livid
        13
    Livid  
    MOD
       2014-09-25 13:34:19 +08:00
    package { 'bash':
    ensure => latest
    }
    reusFork
        14
    reusFork  
       2014-09-25 13:34:46 +08:00
    没装apache不用cgi,不会有影响的。debian系的默认shell还是dash。
    路由的web界面倒是可能用cgi,不过一般不用bash
    lyragosa
        15
    lyragosa  
       2014-09-25 13:37:53 +08:00
    mac怎么办!!!
    robertlyc
        16
    robertlyc  
       2014-09-25 13:45:11 +08:00
    @lyragosa brew update && brew install bash
    towser
        17
    towser  
       2014-09-25 13:48:14 +08:00
    陈理捷老师?已fo。
    robertlyc
        18
    robertlyc  
       2014-09-25 13:48:52 +08:00
    @easychen homebrew已fix了
    MaiCong
        19
    MaiCong  
       2014-09-25 13:52:54 +08:00
    感谢 已更新
    fypyyzr
        20
    fypyyzr  
       2014-09-25 13:57:46 +08:00
    @ibigbug 泥吼啊
    ptyfork
        21
    ptyfork  
       2014-09-25 14:14:52 +08:00
    你们装完homebrew的bash顺便把系统自带的bash删了? 否则update有啥用?
    shuangchun
        22
    shuangchun  
       2014-09-25 14:21:16 +08:00
    centeros是什么。
    chunchu
        23
    chunchu  
       2014-09-25 14:30:17 +08:00
    感谢,已更新,虽然没有什么重要的服务跑在上面
    demo
        24
    demo  
       2014-09-25 14:32:57 +08:00
    纯windows打酱油来了
    knightlhs
        25
    knightlhs  
       2014-09-25 14:46:27 +08:00
    centos 修复完成 非常感谢 虽然只是跑了pptp 跟 blog
    Lycnir
        26
    Lycnir  
       2014-09-25 14:55:45 +08:00
    @Livid 请问大大用的是啥配置管理工具?
    Tink
        27
    Tink  
       2014-09-25 15:00:10 +08:00
    我擦,BuyVM的Ubuntu居然update之后bash没有新版。。。
    jqw1992
        28
    jqw1992  
       2014-09-25 15:01:39 +08:00
    谢谢,已经更新上了
    Tink
        29
    Tink  
       2014-09-25 15:02:10 +08:00
    换了个源好了。。
    Livid
        30
    Livid  
    MOD
       2014-09-25 15:04:20 +08:00 via iPhone
    @Lycnir 这个就是 Puppet 的语法。
    ygf0934
        31
    ygf0934  
       2014-09-25 15:44:51 +08:00
    已修复,感谢
    mornlight
        32
    mornlight  
       2014-09-25 16:15:12 +08:00
    panlilu
        33
    panlilu  
       2014-09-25 16:56:12 +08:00
    X='() { (a)=>\' sh -c "echo date"; cat echo

    新的漏洞利用测试代码,输出了日期的话。。
    kqz901002
        34
    kqz901002  
       2014-09-25 17:00:48 +08:00   ❤️ 1
    @robertlyc 自带旧版的还是有漏洞的...
    regmach
        35
    regmach  
       2014-09-25 17:12:58 +08:00
    谢谢
    galaxy
        36
    galaxy  
       2014-09-25 17:20:28 +08:00
    话说,用OpenSSH测试,发现没有提权,就是说不考虑CGI的话,Linux其实是安全的?
    withrock
        37
    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
        38
    cj1324  
       2014-09-25 17:37:35 +08:00
    继续等下一波升级包。。
    9hills
        39
    9hills  
       2014-09-25 17:55:45 +08:00
    这个漏洞对大部分人没影响。。。
    sobigfish
        40
    sobigfish  
       2014-09-25 18:07:12 +08:00
    @9hills (openwrt?)路由器的话会怎么样
    geew
        41
    geew  
       2014-09-25 18:44:04 +08:00
    服务器没有cgi脚本的话应该也没有影响吧
    jiang42
        42
    jiang42  
       2014-09-25 19:08:23 +08:00
    目测freeBSD已经完全修复,有木有最新的测试代码?
    cj1324
        43
    cj1324  
       2014-09-25 19:17:13 +08:00 via Android
    @jiang42 嘿嘿freebsd 默认不带BASH ,官网首页也没见相关安全公告。。
    jiang42
        44
    jiang42  
       2014-09-25 19:26:10 +08:00
    @cj1324 我自己装了个 bash,下午升级了下,已经通过各种版本的测试代码了。。
    woodstonel
        45
    woodstonel  
       2014-09-25 19:43:07 +08:00
    Bash程序爆出严重漏洞CVE-2014-6271(https://access.redhat.com/security/cve/CVE-2014-6271)。该漏洞被定级为高危,很容易被恶意攻击者利用,侵入您的云主机。为了保障您的云主机的安全,建议对您的的云主机进行如下的漏洞验证和修复操作:
    1. 漏洞验证

    在命令行键入如下命令:

    env x="() { :;}; echo vulnerable" bash -c "echo this is a test"
    如果输出为:

    vulnerable
    this is a test
    则证明您的云主机存在此漏洞。

    如果输出类似如下:

    bash: warning: x: ignoring function definition attempt
    bash: error importing function definition for "x"
    this is a test
    则证明此漏洞已经修复。

    2. 修复漏洞

    如果您的系统为CentOS系统,请以root身份执行以下命令,以升级Bash为最新版:

    yum update bash -y
    如果您的系统为Ubuntu/Debian系统,请以root身份执行以下命令:

    apt-get update
    apt-get install bash -y
    更新后立即生效,不需要重启服务或云主机。

    我们会同步更新系统模板,预计今天以内更新完成,届时您新创建的云主机将不受此漏洞影响。如果有其他问题,请联系MOS QQ客服,或发邮件到[email protected]

    说明:Ubuntu 13.10已经于2014年7月17日停止更新,因此无法获得更新,建议你升级至14.04LTS。具体升级指导,请参见https://help.ubuntu.com/community/TrustyUpgrades#Ubuntu_Servers_.28Recommended.29 />
    参考链接:

    https://access.redhat.com/node/1200223

    http://www.cnbeta.com/articles/331569.htm

    -------------
    美团云团队
    qloog
        46
    qloog  
       2014-09-25 20:26:02 +08:00
    已修复~~~
    cj1324
        47
    cj1324  
       2014-09-25 21:03:51 +08:00
    @jiang42
    实践证明 FreeBSD 和大多数发行版本一样
    感谢 @panlilu 提供测试支持。

    大约在19个小时以前
    提交记录 http://svnweb.freebsd.org/ports/head/shells/bash/
    只修复了 CVE-2014-6271

    并没有修复 CVE-2014-7169

    官方完整修复前。推荐做法 用csh代替bash

    懒得截图了。直接贴片段
    ···
    └──>> bash --version
    GNU bash, version 4.3.25(0)-release (amd64-portbld-freebsd10.0)
    Copyright (C) 2013 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

    This is free software; you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.

    └──>> env -i X='() { (a)=>\' sh -c "echo date"; cat echo
    date
    cat: echo: No such file or directory
    ···
    54c3
        48
    54c3  
       2014-09-25 21:33:50 +08:00
    gouera
        49
    gouera  
       2014-09-26 00:35:45 +08:00
    就是说我的是静态网站,就没事?
    mailunion
        50
    mailunion  
       2014-09-26 08:07:08 +08:00
    @Livid Mod
    magine
        51
    magine  
       2014-09-26 08:55:06 +08:00
    suse源还没修复,虽然不知道为什么,但是好像很糟糕的样子orz
    bjzhush
        52
    bjzhush  
       2014-09-26 09:04:40 +08:00
    Done,thx
    Vonex
        53
    Vonex  
       2014-09-26 09:17:59 +08:00
    升级最新补丁后,执行如下命令:
    env X='() { (a)=>\' bash -c "echo echo vuln"; [[ "$(cat echo)" == "vuln" ]] && echo "still vulnerable"
    如果输出如下则仍然受影响
    still vulnerable
    wwek
        54
    wwek  
       2014-09-26 09:22:44 +08:00
    yum -y update bash;/sbin/ldconfig;rpm -qa -changelog bash | grep "2014"
    Draplater
        55
    Draplater  
       2014-09-26 10:48:14 +08:00 via Android
    @sobigfish openwrt的shell是busybox自带的,不受影响,可能是因为没有环境变量当函数的功能。
    petertao
        56
    petertao  
       2014-09-27 23:20:18 +08:00
    [root@MyAli ~]# yum update bash -y
    Loaded plugins: security
    Setting up Update Process
    Package(s) bash available, but not installed.
    No Packages marked for Update

    这种情况怎么回事呢?
    easychen
        57
    easychen  
    OP
       2014-09-30 08:58:45 +08:00
    mac 的bash fix出来了 http://support.apple.com/kb/DL1769
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3212 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 82ms · UTC 13:07 · PVG 21:07 · LAX 06:07 · JFK 09:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.