ElasticSearch未授权访问漏洞复现

Posted 水中煮鱼冒气

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ElasticSearch未授权访问漏洞复现相关的知识,希望对你有一定的参考价值。

漏洞介绍

  • Elasticsearch是一个基于Lucene的搜索服务器。
  • 它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。
  • Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,
  • 是一种流行的企业级搜索引擎。
  • Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便

漏洞原理

  • Elasticsearch会默认会在9200端口对外开放,用于提供远程管理数据的功能。
  • 任何连接到服务器端口上的人,都可以调用相关API对服务器上的数据进行任意的增删改查。

影响版本

  • fofa搜索开放了9200端口的IP
    在这里插入图片描述

环境搭建

第一步 下载文件,保证环境中有jdk1.7+

https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.0.zip

在这里插入图片描述

第二步 解压elasticsearch安装包

在这里插入图片描述

第三步 更改内存大小,否则无法启动

-Xms256m
-Xmx256m

在这里插入图片描述

第四步 进入bin 目录,双击执行 elasticsearch.bat

在这里插入图片描述

第五步 访问http://localhost:9200/,出现以下页面,说明安装成功。

在这里插入图片描述

漏洞复现

第一步 查看安装river

http://localhost:9200/_cat/indices里面的indices包含了_river一般就是安装了river

第二步 查看数据库敏感信息

http://localhost:9200/_river/_search 查看数据库敏感信息

在这里插入图片描述

第三步 查看节点数据

http://localhost:9200/_nodes 查看节点数据

在这里插入图片描述

第四步 查看安装head插件

http://localhost:9200/_plugin/head/   web管理界面

在这里插入图片描述

python未授权访问脚本

#! /usr/bin/env python
# _*_  coding:utf-8 _*_
 
import requests
def Elasticsearch_check(ip, port=9200, timeout=5):
    try:
      url = "http://"+ip+":"+str(port)+"/_cat"
      response = requests.get(url) 
    except:
      pass
    if "/_cat/master" in response.content:
      print '[+] Elasticsearch Unauthorized: ' +ip+':'+str(port)
 
if __name__ == '__main__':
    Elasticsearch_check("127.0.0.1")

修复建议

  • 9200端口不要对外开放,如需开放,建议在安全组限制只允许指定IP才能访问9200端口;

  • 限制IP访问,绑定固定IP

  • 在config/elasticsearch.yml中为9200端口设置认证,相关配置参数可参考:

http.basic.enabled true #启动认证,开启会接管全部HTTP连接
http.basic.user "admin" #配置认证账号
http.basic.password "admin_pw" #配置认证密码
http.basic.ipwhitelist ["localhost", "127.0.0.1"]
  • 使用nginx搭建反向代理,通过配置Nginx实现对Elasticsearch的认证;

在这里插入图片描述

  • linux下修复建议,参考

  • https://www.yuque.com/youfyu/mgusem/htuom3

    学习笔记下载

    在这里插入图片描述

点击 下载–>

下载

以上是关于ElasticSearch未授权访问漏洞复现的主要内容,如果未能解决你的问题,请参考以下文章

rsync未授权访问漏洞复现

Redis未授权访问漏洞复现

JBoss未授权访问漏洞Getshell过程复现

目标Zookeeper未授权访问(漏洞复现)

目标Zookeeper未授权访问(漏洞复现)

复现CVE-2014-085(Apache ZooKeeper 未授权访问漏洞)