Elasticsearch安全漏洞检测与修复指南

备注:本文重在检测合修复,适合甲方人员查阅

漏洞简介

Elasticsearch使用JAVA语言开发并作为Apache许可条款下的开放源码发布,它是当前流行的企业级搜索引擎,其增删改查操作全部由HTTP接口完成,如果Elasticsearch服务直接披露在公网环境中且未对服务访问端口(默认;9200)进行认证配置(Elasticsearch授权模块需要付费,所以免费开源的Elasticsearch可能存在未授权访问漏洞),则攻击者可以拥有Elasticsearch的所有权限,之后对数据进行任意操作,业务系统将面临敏感数据泄露、数据丢失、数据遭到破坏甚至遭到攻击者的勒索。

漏洞成因

Elasticsearch未授权访问漏洞的成因主要有以下几个方面:

  • Elasticsearch服务披露在公网且允许远程访问
  • Elasticsearch服务端口(默认:9200)未设置认证

漏洞利用 

环境介绍
  • 目标靶机:Ubuntu
  • 目标地址:192.168.17.154
环境搭建

Step 1:JDK版本1.8+

图片[1]-Elasticsearch安全漏洞检测与修复指南-山海云端论坛

Step 2:创建一个elasticsearch用户,elasticsearch不能root执行

useradd al1ex
passwd al1ex
su al1ex
图片[2]-Elasticsearch安全漏洞检测与修复指南-山海云端论坛

Step  3:下载环境并进行安装

#下载安装包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.0-linux-x86_64.tar.gz

#解压安装包
tar -xzf elasticsearch-7.10.0-linux-x86_64.tar.gz
图片[3]-Elasticsearch安全漏洞检测与修复指南-山海云端论坛

Step 4:编辑elasticsearch-7.10.0/config/elasticsearch.yml,修改以下内容

a、编辑node.name 名称

图片[4]-Elasticsearch安全漏洞检测与修复指南-山海云端论坛

b、数据存储和日志存储路径放开注释

path.data: /home/r00t/elasticsearch-7.10.0/data
path.logs: /home/r00t/elasticsearch-7.10.0/logs
图片[5]-Elasticsearch安全漏洞检测与修复指南-山海云端论坛

c、设置IP限制、端口设置、跨越设置

network.host: 0.0.0.0
http.port: 9200
http.cors.enabled: true
http.cors.allow-origin: "*"
图片[6]-Elasticsearch安全漏洞检测与修复指南-山海云端论坛

d、设置启动服务器的标识符

cluster.initial_master_nodes: ["node-1"]
图片[7]-Elasticsearch安全漏洞检测与修复指南-山海云端论坛

Step  5、修改al1ex用户的可创建文件描述权限,使用命令”vim /etc/security/limits.conf”编辑文件,在最后面追加如下内容:

* hard nofile 65536
* soft nofile 65536
图片[8]-Elasticsearch安全漏洞检测与修复指南-山海云端论坛

Step 6:通过命令”vim /etc/sysctl.conf’修改用户可以拥有的VMA的数量,在最后面追加如下内容

#fs.protected_symlinks=0
vm.max_map_count=655360
图片[9]-Elasticsearch安全漏洞检测与修复指南-山海云端论坛

Step 7:设置文件权限

chown -R al1ex /home/r00t/elasticsearch-7.10.0/
图片[10]-Elasticsearch安全漏洞检测与修复指南-山海云端论坛

Step  9:使用al1ex用户启动服务并访问

./elasticsearch-7.10.0/bin/elasticsearch -d
图片[11]-Elasticsearch安全漏洞检测与修复指南-山海云端论坛
漏洞检测

检测方式1:浏览器访问

#基本检测
http://192.168.17.154:9200/
图片[12]-Elasticsearch安全漏洞检测与修复指南-山海云端论坛
#查看节点数据
http://192.168.17.154:9200/_nodes
图片[13]-Elasticsearch安全漏洞检测与修复指南-山海云端论坛

修复方法

编辑config/elasticsearch.yml文件,在其中为9200端口设置认证

#开启开关接管全部HTTP连接
http.basic.enabled: true
    
#设置账号密码
http.basic.user: "admin"
http.basic.password: "admin_pw"
    
#开启白名单
http.basic.ipwhitelist: ["localhost", "127.0.0.1"]
图片[14]-Elasticsearch安全漏洞检测与修复指南-山海云端论坛

之后再次访问可以看到无法访问:

图片[15]-Elasticsearch安全漏洞检测与修复指南-山海云端论坛

白名单地址可访问,但是笔者这里未安装plugin所以也会报错,有条件企业的可以试试安装plugin试试

图片[16]-Elasticsearch安全漏洞检测与修复指南-山海云端论坛
© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容