Elasticsearch未授权访问漏洞

漏洞描述

Elasticsearch是一款java编写的企业级搜索服务。越来越多的公司使用ELK作为日志分析,启动此服务默认会开放9200端口或者9300端口,可被非法操作数据

环境搭建

官网下载
es安装

ES未授权访问漏洞复现

http://localhost:9200/_cat/indices
http://localhost:9200/_river/_search //查看数据库敏感信息
http://localhost:9200/_nodes         //查看节点数据
如有安装head插件:
http://localhost:9200/_plugin/head/  //web管理界面

ES未授权访问漏洞修复

修复措施

1、限制IP访问、对网站数据造成影响
2、在config/elasticsearch.yml中为9200端口设置认证:

认证插件安装

cd /usr/share/elasticsearch/plugins/http-basic  //es插件目录下
wget  https://github.com/Asquera/elasticsearch-http-basic/releases/download/v1.1.0/elasticsearch-http-basic-1.1.0.jar  //下载es认证插件

插件安装成功

添加账号密码

http.basic.enabled: true
http.basic.log: false                  
http.basic.user: "loguser"          
http.basic.password: "logpwd"  
http.basic.ipwhitelist: ["172.16.18.171","172.16.18.114"]   
http.basic.xforward: "X-Forwarded-For"
http.basic.trusted_proxy_chains: ["172.16.18.114"]
配置名默认值说明
http.basic.enabled true 开关,开启会接管全部HTTP连接
http.basic.user "loguser" 账号
http.basic.password "logpwd" 密码
http.basic.ipwhitelist ["172.16.18.171","172.16.18.114"] 白名单内的ip访问不需要通过账号和密码,支持ip和主机名,不支持ip区间或正则
http.basic.trusted_proxy_chains ["172.16.18.114"] 信任代理列表
http.basic.log false 把无授权的访问事件添加到ES的日志
http.basic.xforward "X-Forwarded-For" 记载代理路径的header字段名

wireshark流量分析

未授权访问流量分析

添加认证插件流量分析

添加认证有Authorization认证字段

参考链接

认证插件下载
csdn-ElasticSearch的插件(Plugins)介绍
CentOS下RPM安装ElasticSearch

声明

严禁读者利用以上介绍知识点对网站进行非法操作 , 本文仅用于技术交流和学习 , 如果您利用文章中介绍的知识对他人造成损失 , 后果由您自行承担 , 如果您不能同意该约定 , 请您务必不要阅读该文章 , 感谢您的配合!

原文地址:https://www.cnblogs.com/renhaoblog/p/13594452.html