寻找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子进程)

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?哈哈

留言评论(旧系统):

电小弟 @ 2014-09-29 06:26:21

核攻击兄弟,这个好牛

本站回复:

-_-|||

xer @ 2014-10-02 21:54:56

其实我只是想看一下是不是真的能获得真实ip

本站回复:

-_-|||