mengzhuo

Bash 新漏洞:用户可以执行 root 权限

  •  
  •   mengzhuo · Sep 25, 2014 · 10320 views
    This topic created in 4286 days ago, the information mentioned may be changed or developed.
    Github上通知的
    http://seclists.org/oss-sec/2014/q3/649

    共享VPS的可得小心了……
    Supplement 1  ·  Sep 25, 2014
    请参考 http://seclists.org/oss-sec/2014/q3/650

    主要是bash对环境变量的解读有问题

    导致所有CGI接口的程序都是潜在的受害者
    Supplement 2  ·  Sep 25, 2014
    三个维度的攻击,CGI,OpenSSH,和牵扯着环境变量的程序,感觉不比心血差

    So far, HTTP requests to CGI scripts have been identified as the major
    attack vector.
    ....
    The other vector is OpenSSH, either through AcceptEnv variables, TERM
    or SSH_ORIGINAL_COMMAND.
    Other vectors involving different environment variable set by
    additional programs are expected.
    Supplement 3  ·  Sep 25, 2014
    红帽的文章:
    如何构建攻击
    https://securityblog.redhat.com/2014/09/24/bash-specially-crafted-environment-variables-code-injection-attack/

    爆漏洞的邮件组里大家已经开始指责作者在embargo内向外透露了这个漏洞的详细信息……江湖味太浓了
    34 replies    2014-09-25 22:11:09 +08:00
    jasontse
        1
    jasontse  
       Sep 25, 2014 via Android
    webshell 也要注意被提权
    semicircle21
        2
    semicircle21  
       Sep 25, 2014
    常年 root 敢死队用户表示这都不是事儿~
    chinni
        3
    chinni  
       Sep 25, 2014
    Cent 好像已经修复了?
    lyragosa
        4
    lyragosa  
       Sep 25, 2014
    zsh用户表示应该无影响?
    steptodream
        5
    steptodream  
       Sep 25, 2014
    @lyragosa 除非你系统没装bash
    66beta
        7
    66beta  
       Sep 25, 2014
    俺的DO上只有测试站点,不怕不怕
    顶多被copy走价值2万多的知识产权
    LazyZhu
        8
    LazyZhu  
       Sep 25, 2014   ❤️ 1
    业务使用的 Debian 其实只要加一个安全补丁源,每天更新下就可以了。
    https://www.debian.org/security/
    coolicer
        9
    coolicer  
       Sep 25, 2014
    @LazyZhu Ubuntu可以用吗?
    LazyZhu
        10
    LazyZhu  
       Sep 25, 2014
    @coolicer
    https://help.ubuntu.com/14.04/serverguide/configuration.html
    Ubuntu也有相应的关键安全补丁源的
    glasslion
        11
    glasslion  
       Sep 25, 2014
    @lyragosa csh, tcsh, ksh, sh, and zsh 无一幸免
    dndx
        12
    dndx  
       Sep 25, 2014
    root 权限有点夸张了吧,bash 又不是 setuid 的程序。
    Tink
        13
    Tink  
    PRO
       Sep 25, 2014 via iPhone
    我去,那zsh呢
    heiher
        14
    heiher  
       Sep 25, 2014
    哪里有说和 root 权限有关了?
    cxl008
        15
    cxl008  
       Sep 25, 2014
    求方法
    lsylsy2
        16
    lsylsy2  
       Sep 25, 2014
    @LazyZhu 有办法在命令里只更新来自这个源的内容么?
    万一用cron更新的时候把别的什么软件版本更新了出问题就囧了……
    LazyZhu
        17
    LazyZhu  
       Sep 25, 2014
    @lsylsy2
    笨办法,多个sources.list切换

    /etc/apt/sources.list.security
    /etc/apt/sources.list.all
    fany
        18
    fany  
       Sep 25, 2014 via iPhone
    如果您使用的是CentOS、RedHat或Fedora,请在SSH下执行以下命令:
    yum clean all
    yum update bash
    如果您用的系统是Ubuntu或Debian,请在SSH下执行以下命令:
    apt-get update
    apt-get upgrade
    dorentus
        19
    dorentus  
       Sep 25, 2014
    没看到和 root 权限相关的说明。

    CGI 暂且不提(反正多年没用过 CGI 了),
    我的本地和远程机器的登录 shell 都是 fish shell,

    ---- 本地 ----

    1) env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
    显示果然有漏洞

    2) env x='() { :;}; echo vulnerable' fish -c "echo this is a test"
    没触发漏洞

    3) env x='() { :;}; echo vulnerable' zsh -c "echo this is a test"
    没触发漏洞

    4) set -x x '() { :;}; echo vulnerable' # 相当于 bash 的 export x=...
    bash -c "echo this is a test"
    触发漏洞

    ---- ssh ----
    5) set -x x '() { :;}; echo vulnerable'
    ssh 到远程机器之后执行:bash -c "echo this is a test"
    没见漏洞(这是自然的,因为远程机器 sshd 配置里面 AcceptEnv 只允许了 LANG LC_*)

    6) 那么试试 set -x LANG '() { :;}; echo vulnerable' # 这里`包括之后每次执行一条命令都会有警告 locale 不对
    再 ssh 到远程机器,看了下,LANG 没传递过去……
    那么执行:bash -c "echo this is a test"
    很自然地还是没见漏洞

    7) 再试 set -x TERM '() { :;}; echo vulnerable'
    ssh 到远程机器,远程 fish shell 提示:Could not set up terminal
    然后连接断开

    PS: 同第六步,设置 LANG 之后,ssh 到另一台登录 shell 为 bash 的机器上,LANG 依然是没传递过去
    同第七步,设置 TERM,然后 ssh 到另一台登录 shell 为 bash 的机器上,终于成功触发了漏洞
    mind3x
        20
    mind3x  
       Sep 25, 2014
    见风就是雨……谁说的有root?谁说的其他shell也中招?瞎JB扯...
    mornlight
        21
    mornlight  
       Sep 25, 2014
    @fany 没看到更新啊yum update bash后显示No Packages marked for Update
    heganj
        22
    heganj  
       Sep 25, 2014
    hjc4869
        24
    hjc4869  
       Sep 25, 2014
    apt-get purge bash;
    Busy
        25
    Busy  
       Sep 25, 2014
    os x 怎么说
    mengzhuo
        26
    mengzhuo  
    OP
       Sep 25, 2014
    @mind3x

    很多服务是用Root权限跑的,
    这些用root权限+和环境变量相关的结构就有可能制造攻击,DHCP、打印机、samba、Apache
    懂?
    mind3x
        27
    mind3x  
       Sep 25, 2014
    @mengzhuo 你用root来跑apache? 也是醉了。提权归提权,bash归bash,别混为一谈。
    nicai000
        28
    nicai000  
       Sep 25, 2014
    @mengzhuo 你才不懂吧, 这个漏洞就事论事, 和"用户可以执行root权限"区别很大, 不可一概而论.

    而且CGI现在几个人用? 另外你的DHCP, 打印机, samba都能接收命令挂钩BASH CGI? 别闹了好嘛?
    mengzhuo
        29
    mengzhuo  
    OP
       Sep 25, 2014
    @nicai000
    @mind3x

    不是我说的
    http://blog.erratasec.com/2014/09/bash-shellshock-bug-is-wormable.html#.VCOXsCtdWf8


    而且:
    随便一台Debian

    ps aux | grep root
    root 1259 0.0 0.0 10232 1000 ? S 9月15 0:01 /sbin/dhclient
    root 28592 0.0 0.1 279040 4784 ? S 9月16 0:01 smbd -F

    呵呵
    nicai000
        30
    nicai000  
       Sep 25, 2014
    @mengzhuo 他不懂你更不懂, 没问题啊. 而且他也没说把这个和简单提权混为一谈. 还是得说回来, dhcp和smb挂了bash cgi? 没有就没事儿啊, 呵呵.
    palxex
        31
    palxex  
       Sep 25, 2014
    homebrew通过bottle安装的注意:没用。请自行build-from-source!
    dorentus
        32
    dorentus  
       Sep 25, 2014
    @mengzhuo
    稍微正常一点的服务,即使用 root 的话也是做一些设置之后就 drop root 权限、切换到普通权限用户的。

    我的机器上,没有 dhclient 和 smbd。(再说 dhclient 又不会从网络获取什么环境变量,更不用说 shell 了)。

    ps aux | grep root 能看到的,可能会受影响的,也就是 nginx 而已。但是 nginx 也只是 master process 是用 root 跑的,它没有监听任何端口;监听端口、提供 HTTP service 的那些子进程,都是用 www-data 用户跑的。
    9hills
        33
    9hills  
       Sep 25, 2014
    lz不要耸人听闻,哪里root提权了
    iwinux
        34
    iwinux  
       Sep 25, 2014
    真是笑死
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2223 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 77ms · UTC 00:55 · PVG 08:55 · LAX 17:55 · JFK 20:55
    ♥ Do have faith in what you're doing.