“破壳”(Shellshock)漏洞修复

背景:

距离“破壳”(Shellshock)漏洞漏洞爆发一句过去两周有余了(2014年9月24日公布)。相信很多人都已经听说过了这个危害等级为十的漏洞,编号为CVE-2014-6271,该漏洞将导致远程攻击者在受影响的系统上执行任意代码;相比之下,与上一个著名的漏洞“心脏出血”只有五,不过奇怪的是,“破壳”漏洞目前的反响并不高。“破壳”漏洞实际上早在1989年实际上就已经存在了,修复也是极为麻烦的。且目前为止也没有哪个bash补丁能够保证100%修复,强烈建议及时更新最新的bash相关系统补丁,以做到系统的尽可能安全。

漏洞影响范围:

安天CERT目前已经验证在Redhat、CentOS、Ubuntu、Fedor、Amazon Linux、MacOS 10.10均拥有存在CVE-2014-6271漏洞的Bash版本,同时由于Bash在各主流操作系统的广泛应用,此漏洞的影响范围包括但不限于大多数应用Bash的Unix、Linux、MacOS;而针对这些操作系统管理下的数据均存在高危威胁。漏洞的利用方式会通过与Bash交互的多种应用展开,包括HTTP、DNS、OpenSSH、DHCP等。

漏洞原理:

目前的Bash使用的环境变量是通过函数名称来调用的,导致漏洞出问题的是以”(){”开头定义的环境变量在命令ENV中解析成函数后,Bash执行未退出,而是继续解析并执行shell命令,而其核心的原因在于在输入的过滤中没有严格限制边界,也没有做出合法化的参数判断。

在补丁中主要进行了参数的合法性过滤,补丁程序在/bulitins/evalstring.c的parse_and_execute函数中进行了输入的command进行了合法性的边界检测,将代码注入的可能性排除。在排除中主要用到了flags的两次判断和command的一次类型匹配,为了能够flags判断准确,在补丁中预先定义了SEVAL_FUNCDEF、SEVAL_ONECMD两个标识作为判断依据。此漏洞的进行补丁更新有三处,主要进行输入的command进行过滤作用。

从阐述的漏洞原理可知,漏洞的根本原因存在于Bash的ENV命令实现上,因此漏洞本身是不能够直接导致远程代码执行的。如果达到远程代码执行的目的,必须要借助第三方服务程序作为媒介才能够实现,第三方服务程序也必须满足众多条件才可以充当此媒介的角色。漏洞名称Shellshock代码为CVE-2014-6271的漏洞原理图见如下:

漏洞验证方法:

目前的Bash脚本是以通过导出环境变量的方式支持自定义函数,也可将自定义的Bash函数传递给子相关进程。一般函数体内的代码不会被执行,但此漏洞会错误的将“{}”花括号外的命令进行执行。

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

###如上执行结果表明是存在Shellshock漏洞的。

修复案例:
         在这里将演示离线环境修复Redhat EnterPrise 5的Shellshock漏洞,详细步骤见如下:

<span style="font-family:Georgia, Bitstream Charter, serif;">1、查看操作系统和bash版本:
[root@db01 ~]# lsb_release -d
Description: Red Hat Enterprise Linux Server release 5.8 (Tikanga)[root@db01 ~]# bash -version
GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.2、打开官网进入CVE-2014-6271漏洞数据库页面,找到对应版本的补丁下载
https://access.redhat.com/security/cve/CVE-2014-62713、漏洞补丁下载下来之后是如下两个文件
[root@db01 ~]# ll bash-*
-rw-r--r-- 1 root root 1901644 Oct 10 18:10 bash-3.2-33.el5_10.4.x86_64.rpm
-rw-r--r-- 1 root root 1380099 Oct 10 18:10 bash-debuginfo-3.2-33.el5_11.4.x86_64.rpm4、安装补丁
[root@db01 ~]# rpm -ivh bash-debuginfo-3.2-33.el5_11.4.x86_64.rpm
warning: bash-debuginfo-3.2-33.el5_11.4.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]1:bash-debuginfo ########################################### [100%]
[root@db01 ~]# rpm -ivh bash-3.2-33.el5_10.4.x86_64.rpm --force
warning: bash-3.2-33.el5_10.4.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID e8562897
Preparing... ########################################### [100%]1:bash ########################################### [100%] </span>
[root@db01 ~]#

至此该漏洞已经修复完成。

漏洞修复验证:

修复完成之后执行如下命令验证,其结果说明漏洞已经修复:

[root@db01 ~]# env x=\'() { :;}; echo vulnerable\' bash -c \"echo this is a test\"
this is a test
[root@db01 ~]#
[root@db01 ~]# env -i X=\'() { (a)=>\\\' bash -c \'echo date\'; cat echo
date
Fri Oct 10 18:28:34 CST 2014
[root@db01 ~]#

补丁附件:

bash-3.2-33.el5_10.4.x86_64  -

“破壳”(Shellshock)漏洞修复相关推荐

  1. 详解ShellShock 漏洞复现原理,内附ShellShock的修复方法

    本篇文章适合初学ShellShock漏洞阅读,如果您已经学习过ShellShock漏洞,可以直接略过.本篇是我们悬镜安全实验室成员之一Kr0iNg's 在学习ShellShock时分享的一点心得,仅供 ...

  2. Shellshock漏洞回顾与分析测试

    Debug_Orz · 2014/10/21 14:14 0x00 漏洞概述 很多人或许对2014上半年发生的安全问题"心脏流血"(Heartbleed Bug)事件记忆颇深,20 ...

  3. Shellshock漏洞回顾与分析测试 http://drops.wooyun.org/papers/3268

    Shellshock漏洞回顾与分析测试 Debug_Orz · 2014/10/21 14:14 ·来自乌云知识库 0x00 漏洞概述 很多人或许对2014上半年发生的安全问题"心脏流血&q ...

  4. 【安全】Shellshock漏洞

    Shellshock是之前网络安全学习中,一直遗漏掉的一个安全漏洞.今天来补充学习一下. Shellshock利用了linux环境变量解析问题,进而可以进行针对正常应用启动shell时进行劫持.通过该 ...

  5. LINUX漏洞复现篇之ShellShock漏洞

    简介 ShellShock漏洞, 中文称为"破壳漏洞", 是Unix Shell中的安全漏洞 在一些网络服务器的部署中, 使用bash来处理某些请求, 允许攻击者通过低版本的bas ...

  6. Shellshock漏洞那些事:网络安全噩梦的开始

    鉴于Linux/UNIX系统近日再次曝出危险等级超"心脏出血"的Bash漏洞--"Shellshock",<连线>杂志周一特别刊文,介绍了该漏洞的过 ...

  7. java中xxe漏洞修复方法

    java中禁止外部实体引用的设置方法不止一种,这样就导致有些开发者修复的时候采用的错误的方法 之所以写这篇文章是有原因的!最早是有朋友在群里发了如下一个pdf, 而当时已经是2019年1月末了,应该不 ...

  8. PrestaShop 网站漏洞修复如何修复

    2019独角兽企业重金招聘Python工程师标准>>> PrestaShop网站的漏洞越来越多,该网站系统是很多外贸网站在使用的一个开源系统,从之前的1.0初始版本到现在的1.7版本 ...

  9. PrestaShop 网站漏洞修复办法

    PrestaShop网站的漏洞越来越多,该网站系统是很多外贸网站在使用的一个开源系统,从之前的1.0初始版本到现在的1.7版本,经历了多次的升级,系统使用的人也越来越多,国内使用该系统的外贸公司也很多 ...

最新文章

  1. 数字图像处理经典论文汇总
  2. 孩子数学成绩不好怎么办_孩子数学成绩不好怎么办
  3. 最幸福的码农在用什么编程语言?
  4. Linux进制查看工具:od、hexdump、xxd
  5. Ubuntu/Centos 等linux终端忽略大小写提示
  6. 用python把excel中的数据变成字典(复制代码即可用)
  7. [HNOI2008]越狱
  8. mysql格式化11位时间戳_格式化MYSQL时间戳函数FROM_UNIXTIME
  9. Ubuntu 16.04之标题栏实时显示上下行网速、CPU及内存使用率
  10. vue获取当前选中行的数据_Vue编程的团队代码规范
  11. php 遍历文件夹下的所有文件名以及文件大小
  12. 树莓派控制台达伺服控制器
  13. VB6写的书籍下载软件 --老牛下书,还不错
  14. 2021教资高中信息技术笔记知识点48页pdf
  15. python编程星期几_python如何获取星期几
  16. shell 小米system锁adb_忘记锁屏密码不用怕?支招小米手机解锁四种简单常用的方法...
  17. jmeter获取上一个接口的返回值作为下一个接口的传入参数
  18. js将图片/文件等资源保存(下载)到本地
  19. 计算机网络的基本知识和技术
  20. 常用的六大类型测试工具

热门文章

  1. SpringBoot系列:Spring Boot定时任务Spring Schedule,springboot视频教程迅雷
  2. 微信域名防封解决方案
  3. 坚果投影仪显示服务器异常,坚果投影仪风扇故障的原因是什么?如何解决风扇故障问题...
  4. python移动化测试开发面试
  5. 收藏!!「自然语言处理(NLP)」全球学术界知名学者教授信息大盘点(全)!
  6. 95后自述,00后都这么卷了吗?
  7. 计算机操作系统u盘的安装方法,acer电脑U盘重装操作系统的方法
  8. 测试管理工具——禅道
  9. kindle 电子书去除DRM
  10. 常用快捷键及在IDEL中的应用