寻找cve-2014-6271的实例的一点思路
白非白 (这是什么(t_t))(谢感边右) | 2014-09-25 15:57
漏洞细节以及基本poc @mramydnei 已经在http://zone.wooyun.org/content/15392给出了。
开个贴讨论一下如何寻找该cve的靶机。
先说利用条件:
1.env可控可写
2.派生bash子进程
下图可以很好的说明为什么条件二是必须的。(python的os.system会派生bash子进程)
所以不要再问,为什么你poc代码打到一个开了cgi模式的php主机上,却没有执行了,因为你访问的那个文件压根就没满足条件二。
哪些地方可能会满足条件一:
1.svn,git
2.apache的mod_cgi,mod_cgid(ua等内容可以控制env)
哪些东西满足条件二:
python的os.system,os.popen;c的system,popen;php的system,exec;perl的open,system等脚本语言中可以产生subshell的函数。
寻找实例思路:
1.针对web的
1)首先在各种脚本语言写成的开源cms或者开源mvc框架寻找使用了上述函数的文件
。假设在phpcms中有一个文件/module/a.php中使用了system函数,那么记录这个文件。
然后在各种搜索引擎查找/module/a.php且配置了cgi模式的目标,可以用zoomeye或者撒旦。
2)一些潜在的可能使用了这些特征函数的地方:
某些网站提供超级ping,dnswalk,在线端口扫描等可能会使用上述的函数调用本地脚本。
2.针对svn,git(poc自寻)
到乌云搜索svn关键字,即可获得一些ip。
本文只是抛砖引玉,有更好的思路欢迎跟帖。
全网段ip扫描必定没什么收获。除非你在扫ip的过程中顺便将所有文件spider才可能找到目标,不过那好像是百度或者zoomeye干的事情。
各种吐槽:
1#
0x_Jin (世上人多心不齐) | 2014-09-25 16:02
前排占楼~~~~~~~
2#
open (心佛即佛,心魔即魔.) | 2014-09-25 16:02
这个不错,顶楼主。
3#
梧桐雨 (ofni.uygnotuw) | 2014-09-25 16:02
思路挺赞的:)
4#
疯子 (世人笑我太疯癫,我笑世人看不穿。) | 2014-09-25 16:02
前排,鸡肋的漏洞,然后让大神们YY个超级漏洞!
5#
qingxp9 | 2014-09-25 16:03
有好心人给个实例练下手感
6#
紫衣大侠 (勿在浮沙筑高台) | 2014-09-25 16:03
不错啊。有了很好的思路~~
7#
白非白 (这是什么(t_t))(谢感边右) | 2014-09-25 16:11
@qingxp9 extmail的去试一下?
8#
小威 (http://www.foxck.com) | 2014-09-25 16:12
看起来好叼的样子~
9#
蒙塔基的钢弹 (放下面子,求真学习,拾起斗志,用心渗透!) | 2014-09-25 16:22
@白非白 似乎mail系统成功率很高
10#
qingxp9 | 2014-09-25 16:28
@白非白 好的,我去找找
11#
白非白 (这是什么(t_t))(谢感边右) | 2014-09-25 16:32
@蒙塔基的钢弹 mail大多采用cgi模式。
12#
scanf (www.scanfsec.com) | 2014-09-25 17:09
还没有明白这个洞
13#
fox | 2014-09-25 17:11
我觉得本文可以加精
14#
白非白 (这是什么(t_t))(谢感边右) | 2014-09-25 17:25
@scanf 哪里没明白,我可以再解释一下。
15#
海豚1号 (oxoxooxx) | 2014-09-25 17:36
@白非白 像这种为什么不能利用 http://mail.cranewh.com/extmail/cgi/index.cgi 是不是没有派生bash子进程 。这样说来cgi程序又没有派生bash子进程只能靠试了。
16#
孤月寒城 (握了棵草) | 2014-09-25 17:47
不错。看看
17#
白非白 (这是什么(t_t))(谢感边右) | 2014-09-25 18:13
@海豚1号 非要试某个站,可以把useragent设置好,然后用蜘蛛去爬文件,效率肯定比较低。推荐在开源系统中进行代码搜索。比如在cgi邮件源码检索到某文件存在这个问题,基本就能利用了
18#
白非白 (这是什么(t_t))(谢感边右) | 2014-09-25 18:18
@qingxp9 extmail是perl写的,有几处调用了system,不过是几个pm文件,不能直接访问,没用过perl,不知道哪个cgi文件会调用这几个pm文件。如果你懂的话可以去看看。
19#
疯狗 (你在乌云这么叼,你家人知道么?) | 2014-09-25 18:28
@海豚1号 这个cgi是bash解析的么?
20#
hkAssassin | 2014-09-25 18:29
谁能给一个实战案例啊……找了这么就没一个成功过啊……
21#
海豚1号 (oxoxooxx) | 2014-09-25 18:33
@疯狗 不是的
22#
海豚1号 (oxoxooxx) | 2014-09-25 18:35
@疯狗 也许是perl 或者别的脚本写的。关键是估计没有派生bash子进程所以无法利用!
23#
疯狗 (你在乌云这么叼,你家人知道么?) | 2014-09-25 18:39
@海豚1号 perl或者其他比如C啥的不受这个漏洞影响吧?
24#
白非白 (这是什么(t_t))(谢感边右) | 2014-09-25 18:40
@疯狗 perl的。
25#
loopx9 | 2014-09-25 19:00
@白非白 只要派生bash子进程,cgi类执行的都应该存在漏洞吧?
26#
白非白 (这是什么(t_t))(谢感边右) | 2014-09-25 20:04
@loopx9 @疯狗 cgi类的产生subshell应该都可以被远程利用。https://securityblog.redhat.com/2014/09/24/bash-specially-crafted-environment-variables-code-injection-attack/
27#
寂寞的瘦子 (抽象代数在haskell上的工程应用,赞叹数学!) | 2014-09-25 20:20
补充下Scala也是可以derving bash subprocess。喵了个咪。
28#
phith0n (我也不会难过 你不要小看我) | 2014-09-25 23:20
mark 一下,这才是我要的分析贴。。。!
29#
terrying | 2014-09-26 00:14
mark
30#
白非白 (这是什么(t_t))(谢感边右) | 2014-09-26 08:25
@寂寞的瘦子 大牛你好。。
31#
zzR (你说我不能笑- -!) | 2014-09-26 08:34
专业选手nb
32#
浮萍 | 2014-09-26 08:39
大牛你好
33#
海豚1号 (oxoxooxx) | 2014-09-26 09:54
http://bbs.aliyun.com/read/176987.html 这篇阿里大牛说的ssh 得到bash的交互接口啥意思,总不会ssh上去,然后执行命令吧,本地提权?求大牛解释!
34#
寂寞的瘦子 (抽象代数在haskell上的工程应用,赞叹数学!) | 2014-09-26 09:56
@寂寞的瘦子 啊。。你是主角呀。我是学挖掘机的。
35#
寂寞的瘦子 (抽象代数在haskell上的工程应用,赞叹数学!) | 2014-09-26 11:23
@白非白 醉了。。。我尽然@了自己。。
36#
白非白 (这是什么(t_t))(谢感边右) | 2014-09-26 11:38
@寂寞的瘦子 昨晚喝了多少G的ddos?哈哈
留言评论(旧系统):