安全社区

黑盾云安全社区,与你一起分享安全领域的知识与智慧

Bash漏洞检测,海峡信息帮你防“破壳”

安全研究2014-10-11 15:51:51 3747次围观

继OpenSSL”心脏出血”漏洞,业内再爆出Bash“破壳”漏洞,该漏洞因其更加容易实现的自动化,被高度关注着。

        Bash漏洞的严重性被定义为 10 级(最高),而今年 4 月爆发的 OpenSSL”心脏出血”漏洞才 5 级!它与“心脏出血”漏洞的不同在于:“心脏出血”只能借助窃取用户电脑信息,而Bash 漏洞允许黑客远程控制电脑,拿到系统最高权限!

        那么,到底Bash漏洞是何方妖孽?

        Bash是Linux用户广泛使用的一款用于控制命令提示符工具,它能运行于大多数Unix风格的操作系统之上,甚至被移植到了Microsoft Windows上的Cygwin系统中,以实现windows的POSIX虚拟接口。这个最新被披露的Bash漏洞被称为Bash bug或Shellshock(网译:破壳漏洞)。该漏洞源于调用的Bash shell之前创建的特殊的环境变量,这些变量可以包含代码,并且会被Bash执行,换句话说,当用户正常访问时,只要shell是唤醒状态,这个漏洞就允许攻击者执行任意代码命令,简直就是为各种各样的黑客攻击敞开了大门!

        Bash其广泛的使用将意味着全球至少150万的主机受到影响,此外 Linux/Unix 世界内的安卓和苹果都难以幸免。更糟的是,这个漏洞已存在有20年!!(我们不经又想起“心脏出血”,何尝不是存在已久?!简直是厂商噩梦)

        但是,莫慌!!

        从9月24日漏洞爆发起,海峡信息的安全研究员们已经开始行动了!!经过对漏洞利用原理的分析与模拟测试,下列是我司发现已确认受影响的软件及系统:

【已确认受影响的软件及系统】

1、所有安装GNU Bash 版本小于或者等于4.3的Linux操作系统都可能受影响。

2、在SSHD配置中使用了ForceCommand用以限制远程用户执行命令,这个漏洞可以绕过限制去执行任何命令。一些Git和Subversion部署环境的限制Shell也会出现类似情况,OpenSSH通常用法没有问题。

3、Apache服务器使用mod_cgi或者mod_cgid,如果CGI脚本在Bash或者运行在子Shell里都会受影响。子Shell中使用C的system/popen,Python中使用os.system/os.popen,PHP中使用system/exec(CGI模式)和Perl中使用open/system的情况都会受此漏洞影响。

4、PHP脚本执行在mod_php模式不会受影响。

5、DHCP客户端调用Shell脚本接收远程恶意服务器的环境变量参数值的情况会被此漏洞利用。

6、守护进程和SUID程序在环境变量设置的环境下执行Shell脚本也可能受到影响。

7、任何其他程序执行Shell脚本时用Bash作为解释器都可能受影响。Shell脚本不导出的情况下不会受影响。
 
        同时,经过我司安全研究员们废寝忘食的研究,已开发一款自动化检测小工具,如果公网上有服务器(redhat、CentOS、ubuntu)地址或者域名需要测试的,通过我司发布的“Bash漏洞测试工具”,就可以及时发现、验证、处置修复啦。下面我们就给大家介绍一下。
 
【测试工具】 Bash漏洞测试工具。

【工具提供者】海峡信息技术有限公司(Wusc)
 
【测试原理】

通过HTTP头信息向目标服务器提交wget命令,让它抓取我们的“反弹网页”,然后查询该页面的访问记录,从而判断是否有漏洞。
 
【方法步骤】

1 公网服务器测试

        打开软件填写要测试的网址URL,提交即可,让我们来看看
 
2本地登录测试

        内网Linux主机和其它非web服务器类型的主机,请在本地登录到ssh,执行如下测试命令:

          env x='(){ :;};echo vulnerable' bash -c "echo test"
          env X="() { :;}; echo vulnerable" /bin/sh -c "echo test"

        以上命令执行后输出内容只有“test”则是没有漏洞,如果有输出“vulnerable”则有漏洞。
 
3 绕过测试

        如果你是一个小心谨慎的人,对于打过补丁的系统,还可以执行以下命令尝试绕过测试:

         env -i X='(){(a)=>\'bash -c 'echo date';cat echo

        该命令执行后输出内容如果有当前日期,则是有漏洞。
 
        我们提醒,如果检测中发现存在漏洞,请尽快修复并对服务器及整个网络做一次深入全面的检查,以确保漏洞未被利用。你要知道,利用Bash漏洞的方法极其简单——只需要剪切和粘贴一行代码即可,一旦被利用,蠕虫、病毒、木马将接踵而至。。。。举个例子,每小时有将近20万的系统会受到因Bash漏洞而产生的僵尸网络的攻击,并且这一数字还在持续快速的增长。
 
【漏洞修复方案】

        防御Bash注入的方法,首先需要更新Bash,yum update下就OK了,更新到Bash-4.1.2-15。为了防止意外情况发生,建议您执行命令前先对Linux服务器系统盘打个快照,如果万一出现升级影响您服务器使用情况,可以通过回滚系统盘快照解决。  
 
        你可以根据linux版本选择需要修复的命令
centos:(最终解决方案) 
yum clean all 
yum makecache 
yum -y update bash
 
ubuntu:(最终解决方案) 
apt-get update 
apt-get -y install --only-upgrade bash
 
debian:(最终解决方案) 
7.5  64bit && 32bit  
apt-get update 
apt-get -y install --only-upgrade bash
6.0.x 64bit  
wget http://mirrors.aliyun.com/debian/pool/main/b/bash/bash_4.1-3+deb6u2_amd64.deb &&  dpkg -i bash_4.1-3+deb6u2_amd64.deb
6.0.x 32bit  
wget http://mirrors.aliyun.com/debian/pool/main/b/bash/bash_4.1-3+deb6u2_i386.deb &&  dpkg -i bash_4.1-3+deb6u2_i386.deb
 
aliyun linux:(最终解决方案) 
5.x 64bit  
wget http://mirrors.aliyun.com/centos/5/updates/x86_64/RPMS/bash-3.2-33.el5_10.4.x86_64.rpm && rpm -Uvh bash-3.2-33.el5_10.4.x86_64.rpm
5.x 32bit  
wget http://mirrors.aliyun.com/centos/5/updates/i386/RPMS/bash-3.2-33.el5_10.4.i386.rpm  && rpm -Uvh bash-3.2-33.el5_10.4.i386.rpm
 
opensuse:(最终解决方案) 
zypper clean 
zypper refresh 
zypper update -y bash
 
【Bash漏洞检查工具下载地址】
http://www.fjssc.cn/html/support/download/2014/1011/145.html
 
【延伸阅读】

http://www.fjssc.cn/html/news/2014/0928/142.html
http://www.fjssc.cn/html/news/2006/0101/143.html

上一篇: Google发布SSLv3漏洞简要分析报告

下一篇: 中国教授在BlackHat现场演示破解SIM卡AES-128加密