加载中…
个人资料
追求绿茵
追求绿茵
  • 博客等级:
  • 博客积分:0
  • 博客访问:63,802
  • 关注人气:24
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

CVE-2014-6271 bash远程命令执行漏洞分析

(2014-09-30 18:31:03)
标签:

cve-2014-6271bash远

分类: 黑客
 

CVE-2014-6271 bash远程命令执行漏洞分析

其实,我写这文章也算是纯粹凑热闹,大神莫笑!

  

一、漏洞介绍:

 这个要从2014年9月24日说,这一天也Bash 惊爆严重安全漏洞(其实,我在逛外国网站时,就在24号看到这个啦),并编号为CVE-2014-6271,该漏洞将导致远程攻击者在受影响的系统上执行任意代码。

       而我们说一下GNU Bash是什么吧?

    GNU Bash(Bourne again shell)是一个为GNU计划编写的Unix shell,广泛使用在Linux系统内,最初的功能仅是一个简单的基于终端的命令解释器(简单的说,太深也不在这里)。

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

     漏洞影响:GNU Bash <= 4.3,此漏洞可能会影响到使用ForceCommand功能的OpenSSH sshd、使用mod_cgi或mod_cgid的Apache服务器、DHCP客户端、其他使用Bash作为解释器的应用等。GNU Bash(Bourne again shell)是一个为GNU计划编写的Unix shell,广泛使用在Linux系统内,最初的功能仅是一个简单的基于终端的命令解释器。

二、验证方法

  (1)、本地验证:

   网上很多都有说过本地验证,的确,我也测试也一下,


poc: 

env x='() { :;}; echo vulnerable' bash -c "echo this is a test" 

有漏洞的效果图如下:

CVE-2014-6271 <wbr>bash远程命令执行漏洞分析 

可惜的是,补丁更新后,被绕过的如下:CVE-2014-6271 <wbr>bash远程命令执行漏洞分析









CVE-2014-6271 <wbr>bash远程命令执行漏洞分析
(2)Web层次


           1、 webserver常常将Referer、UserAgent、header等参数作为环境变量的设置源
           2、服务器提供了CGI脚本,当 CGI script被webserver执行的时候,CGI Script会去调用Bash黑客可以通过开启了CGI的httpd服务器进行远程代码执行 
          3、Secure Shell (SSH)对于git、rsync这类远程shell来说,常常会对用户可以执行的指令进行严格限制,但是这个BASH解析漏洞提供了一个bypass的向量 
          4、dhclient动态主机配置协议客户端(dhclient的)被用来通过DHCP自动获取网络配置信息。该客户端使用不同的环境变量和运行bash来配置网络接口。连接到一个恶意的DHCP服务器可能允许攻击者在客户机上运行任意代码。
黑客通过在域中的DHCP服务器中对DHCP的回送包进行特定的修改,可以达到污染dhcpclient的环境变量参数的目的,从而进行远程

效果图如下:

方法一:
CVE-2014-6271 <wbr>bash远程命令执行漏洞分析

方法二:

CVE-2014-6271 <wbr>bash远程命令执行漏洞分析

CVE-2014-6271 <wbr>bash远程命令执行漏洞分析

三、修复方法:

  我这里建议是两步:

  (1)、升级最新版本

   (2)、WAF上做防御

(1)修复方法可以参考如下:

1.   Red Hat Enterprise Linux/OpenSUSE

    1)将已进行漏洞修复的bash安装包上传到服务器;

    2)切换到安装包所在目录,执行以下命令进行更新安装:

       rpm -Uvh bash-*.rpm (此包随安全公告一并发送,升级时请注意操作系统CPU版本是32位还是64位,升级时请使用最新软件包)

    3)安装完成后,再次运行上述漏洞描述中的检查命令,若输出如下内容,则表示漏洞已成功修复;

       this is a test

 2.   Debian/Ubuntu

    1)将已进行漏洞修复的bash安装包上传到服务器;

    2)切换到安装包所在目录,执行以下命令进行更新安装:

       apt-get upgrade bash

      或 dpkg -i bash-*.deb (此包随安全公吿一并发送)

    3)安装完成后,再次运行上述“漏洞描述”中的检查命令,若输出如下内容,则表示漏洞已成功修复;

       this is a test

说明: 若检查结果如下,出现警告内容,仍表示漏洞修复成功,警告可通过更高版本的安装包修复。

bash: warning: x: ignoring function definition attempt

bash: error importing function definition for `x'

this is a test

Ø  若更新出现问题,可通过以下命令安装原来版本的bash包进行回退。如服务器为虚拟机,且在更新前有做快照,则进行快照还原即可。

1)将对应系统版本的镜像挂载到系统中;

2)切换到镜像中安装包所在目录,运行以下命令查找到原版本的bash安装包名称:

ls |grep bash*

3)通过以下命令强制安装原版bash:

①RHEL/OpenSUSE:rpm -ivh bash-xxx --force       

②Debian/Ubuntu: apt-get -i bash-xxx --force

 

3.  基于RHEL6操作系统的Bash漏洞修复步骤:

[root@pumpkin~]# rpm -qa |grep bash

bash-4.1.2-15.el6_4.x86_64

[root@pumpkin ~]# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

vulnerable

this is a test

[root@pumpkin ~]# ls bash*

bash-4.1.2-15.el6_5.1.x86_64.rpm  bash-4.1.2-15.el6_5.2.x86_64.rpm 

[root@pumpkin ~]# rpm -Uvh bash-4.1.2-15.el6_5.1.x86_64.rpm --force

warning: bash-4.1.2-15.el6_5.1.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY

Preparing...         ########################################### [100%]

   1:bash          ########################################### [100%]

[root@pumpkin ~]# 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

[root@spumpkin ~]# rpm -Uvh bash-4.1.2-15.el6_5.2.x86_64.rpm

warning: bash-4.1.2-15.el6_5.2.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY

Preparing...          ########################################### [100%]

   1:bash            ########################################### [100%]

[root@server1 ~]# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

this is a test

[root@pumpkin ~]# 到了这里,你以为好了啊,其实,过一段时间,等官网有更新的补丁,你还要再升级一下,因为,你升级完后,嘻嘻,又被绕过啦CVE-2014-6271 <wbr>bash远程命令执行漏洞分析CVE-2014-6271 <wbr>bash远程命令执行漏洞分析CVE-2014-6271 <wbr>bash远程命令执行漏洞分析CVE-2014-6271 <wbr>bash远程命令执行漏洞分析CVE-2014-6271 <wbr>bash远程命令执行漏洞分析CVE-2014-6271 <wbr>bash远程命令执行漏洞分析CVE-2014-6271 <wbr>bash远程命令执行漏洞分析

 

 
 

0

阅读 收藏 喜欢 打印举报/Report
前一篇:hydra在线破解
后一篇:mysql提权方法
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有