漏洞分析---Bash安全漏洞(CVE-2014-6271)技术简析
来源:互联网 发布:vmware 8 mac 破解版 编辑:程序博客网 时间:2024/05/20 17:07
Bash安全漏洞(CVE-2014-6271)技术简析
转自爱毒霸社区,原文链接:http://bbs.duba.net/thread-23211524-1-1.html
一、漏洞起源
漏洞信息最早来源于国外知名漏洞网站exploit-db下的第34765篇漏洞报告,其中出现了一条验证命令:$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"如果在一个含有版本号小于bash 4.3的linux或者unix系统上执行以上命令,可能会得到以下输出:
vulnerablethis is a test其中如果出现第一行vulnerable则说明该系统存在一个由bash程序缺陷导致的任意命令执行漏洞。
二、漏洞原理及分析
该脚本的出现引起了金山安全中心的技术人员的关注,其中env为一个系统命令,该命令让系统创建一个环境变量并且带着这个环境变量的值执行bash-c “echo this is a test”。第一行输出的”vulnerable”暴露了漏洞的存在,因为函数定义’() { :;};’之后的’echo vulnerable’指令本不该被执行却被执行。对bash详细分析后得知bash在处理含有函数定义诸如”() { :;};”的环境变量赋值的代码上存在设计缺陷,错误地将函数定义后面的字符串作为命令执行。
所以真正的利用与env命令无关,只要设法让系统接受一个含有”[函数定义]+[任意命令]”的环境变量赋值则可触发”[任意命令]”部分所表示的代码执行。
三、漏洞存在条件
任何已知程序,只要满足以下两个条件就可以被用来通过bash漏洞导致任意命令执行:- 程序在某一时刻使用bash作为脚本解释器处理环境变量赋值;
- 环境变量赋值字符串的提交取决于用户输入。
四、漏洞利用演示
以下给出一个可能出现的应用案例,该案例通过进攻一个基于bash的cgi应用页面获取目标计算机的远程shell。首先有一个基于bash的cgi网页应用存在于Apache服务器的cgi-bin目录下,cgi脚本内容为:
使用正常浏览器访问结果为一个普通页面:
但是我们可以通过curl等模拟http请求的工具构造一个不同寻常的http请求,命令如下:
执行上面的curl命令后发生了以下几件事情:
- 远程主机使用bash解释器创建一个名为”A_Custom_Header”的环境变量并赋值为”() { :;};/bin/bash......0>&1”;
- 由于存在漏洞,bash“顺便”将’/bin/bash......0>&1’作为命令执行;
- 用户提交的恶意命令创建一个/bin/bash进程并创建socket将bash的IO链接至黑客机器10.20.230.63:8080(该测试案例中黑客机器和服务器为同一台机器,当然可以不同);
- 黑客主机的netcat收到来自被攻击服务器的socket链接,并获取远程shell的IO如下图:
黑客获得了一个daemon用户的远程shell,可以使用该用户身份执行其它命令,实现了远程攻击。
五、相关文章
- FreeBuff:《破壳漏洞(CVE-2014-6271)综合分析:“破壳”漏洞系列分析之一》
- 酷壳:《bash代码注入的安全漏洞》
- CSDN:《新手理解的bash环境变量解析漏洞 》
0 0
- 漏洞分析---Bash安全漏洞(CVE-2014-6271)技术简析
- CVE-2014-6271: BASH 漏洞记录
- Linux操作系统被曝出存在严重安全漏洞(以下称为破壳漏洞,漏洞初始CVE编号为CVE-2014-6271,目前已更新为CVE-2014-7169)
- 2016新年Bash的CVE-2014-6271漏洞修复经历
- CVE-2014-6271 Bash 安全漏洞 MAC OS X 10.9 修复过程
- CVE-2014-0195漏洞分析
- 破壳漏洞(CVE-2014-6271)综合分析:“破壳”漏洞系列分析之二
- 破壳漏洞(shellshock)分析CVE-2014-6271
- ADB backupAgent 提权漏洞分析 (CVE-2014-7953)
- WordPress漏洞分析(CVE-2015-5714 & CVE-2015-5715)
- Adobe Flash Player CVE-2012-0779漏洞技术分析
- cve漏洞分析:cve-2010-0805(附带测试代码) cve-2010-0853
- 网络工具wget被发现存在安全漏洞(CVE-2014-4877)
- 破壳漏洞(CVE-2014-6271)综合分析
- CVE-2014-6271“破壳”漏洞利用过程
- cve-2012-0158漏洞分析
- cve-2012-1876漏洞分析
- CVE-2010-3333漏洞分析
- 两栈共享自我练习
- 2014.10.21 休息之后更感疲倦
- HDU 3072 Intelligence System(强连通+最小树形图)
- MFC对话框程序 屏蔽ESC和ENTER键关闭对话框的方法
- python 和mysql的简单操作
- 漏洞分析---Bash安全漏洞(CVE-2014-6271)技术简析
- c++析构函数和动态内存
- 支付宝SDK对接资料
- 缓冲运动-1-多个div运动【解决].html
- 函数可重入性及编写规范
- sqlserver定位消耗资源比较高的sql
- 关于栈和堆的定量分析(★firecat推荐★)
- Intent.Action
- 给div加滚动条