最简单修复致命 bash 漏洞(shellshock)的方法 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
interdev
V2EX    Linux

最简单修复致命 bash 漏洞(shellshock)的方法

  interdev 2014-09-27 13:45:42 +08:00 5880 次点击
这是一个创建于 4036 天前的主题,其中的信息可能已经有所发展或是发生改变。
因为只影响bash,不影响dash,tsh,csh,ksh

所以需要临时紧急修复,用以下两行命令即可,在Ubuntu下实测有效,

mv /bin/bash /bin/bash.stop
ln -s /bin/dash /bin/bash

等正式稳定的补丁出来后,Ubuntu再用以下命令还原bash

apt-get update
apt-get install --only-upgrade bash
16 条回复    2014-09-29 14:01:55 +08:00
Tink
    1
Tink  
PRO
   2014-09-27 14:09:33 +08:00 via iPhone
这方法治标不治本
msg7086
    2
msg7086  
   2014-09-27 14:13:29 +08:00
dash没法运行需要bash的程序。我之前试过ln -sf dash bash,结果连apt都挂了。

老老实实 chmod o-x bash 更方便。


@Tink 有时候是没办法,比如这次,补丁迟迟不出,而且就算stable出了,等unstable版跟进还要时间,这时候直接禁用bash才是治本的方法。倒不如说现在的半吊子补丁才是治标不治本。
SoloCompany
    3
SoloCompany  
   2014-09-27 14:41:09 +08:00
@msg7086 新的补丁昨天就出来了吧,是你自己没留意吧
ctexlive
    4
ctexlive  
   2014-09-27 15:51:36 +08:00
补丁迟迟没出吗? debian等都出了
canky
    5
canky  
   2014-09-27 17:01:36 +08:00 via Android
debian怎么修啊?我是小白来的
uuair
    6
uuair  
   2014-09-27 17:23:54 +08:00
升级bash就可以了吧?我在centos跟mac上,升级了bash,然后那个测试代码就失效了。
ivenvd
    7
ivenvd  
   2014-09-27 17:43:51 +08:00
这个,典型的误人子弟啊。照着这么操作,大部分服务器都会瘫痪掉吧……
msg7086
    8
msg7086  
   2014-09-27 18:19:11 +08:00
@SoloCompany testing分支上的最新版测了

env -i X='() { (a)=>\' bash -c 'echo curl -Is google.com'; head echo

照样会执行。
msg7086
    9
msg7086  
   2014-09-27 18:21:27 +08:00
@ivenvd 是的。
至少应该:
1. 把主shell换成zsh,用sed替换掉/etc/passwd里所有的bash
2. 把sh链接到dash
3. 到这步了才能禁用bash

而且为了apt脚本能跑,bash还是要留着的,折衷的办法就是chmod o-x,至少root还能用。
librehat
    10
librehat  
   2014-09-27 19:30:11 +08:00 via Android
Fedora已经推送更新了。

楼主这个办法太。。。。什么都做不了
interdev
    11
interdev  
OP
   2014-09-27 21:19:33 +08:00
@ivenvd Ubuntu 下无影响,重启之后服务器正常,其他系统未测试。

dash 可以代替bash大多数功能,临时用用是可以的。
ivenvd
    12
ivenvd  
   2014-09-29 01:59:36 +08:00
@interdev 脚本语法是不兼容的。Bash 不是简单作为交互式 Shell 存在的,大量脚本使用了 #!/bin/bash,你用 dash 去运行不天下大乱才怪。
huangzxx
    13
huangzxx  
   2014-09-29 09:29:16 +08:00
这个帖子也太。。。。。误导了吧
interdev
    14
interdev  
OP
   2014-09-29 11:41:27 +08:00
@ivenvd Ubuntu缺省的/bin/sh就是dash ,其他系统我没有测试,说了只是正式完整补丁没出来时临时用用,补丁稳定了还是要回到bash的,目前我自己好几台ubuntu vps都是这样设防的。

dash 能兼容 bash 大多数脚本。
kaneg
    15
kaneg  
   2014-09-29 13:53:19 +08:00
看到这个漏洞好几天了,但有个问题一直不明白:
尽管这个漏洞很严重,但如果别人不知道我的ssh账号,apache也没有启用过CGI(ubuntu默认是不启用的吧),那有被攻击的可能吗?
interdev
    16
interdev  
OP
   2014-09-29 14:01:55 +08:00
@kaneg 一般无影响,但bash做为linux root用户缺省shell,会有很多暂时未发现或未公开的利用方式,最好还是升到最新补丁较好。



分析:
======
GNU Bash 4.3及之前版本在处理某些构造的环境变量时存在安全漏洞,向环境变量值内的函数定义后添加多余的字符串会触发此漏洞,攻击者可利用此漏洞改变或绕过环境限制,以执行shell命令。某些服务和应用允许未经身份验证的远程攻击者提供环境变量以利用此漏洞。此漏洞源于在调用bash shell之前可以用构造的值创建环境变量。这些变量可以包含代码,在shell被调用后会被立即执行。

此漏洞可能会影响到使用ForceCommand功能的OpenSSH sshd、使用mod_cgi或mod_cgid的Apache服务器、DHCP客户端、其他使用bash作为解释器的应用等。

目前认为使用mod_php/mod_python/mod_perl的Apache httpd不受此问题影响。

http://www.nsfocus.net/index.php?act=alert&do=view&aid=150
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5836 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 27ms UTC 02:36 PVG 10:36 LAX 19:36 JFK 22:36
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86