安全社区
黑盾云安全社区,与你一起分享安全领域的知识与智慧
黑盾云安全社区,与你一起分享安全领域的知识与智慧
安全研究2014-10-11 15:51:51 4611次围观
继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