漏洞描述
Elasticsearch是一款java编写的企业级搜索服务。越来越多的公司使用ELK作为日志分析,启动此服务默认会开放9200端口或者9300端口,可被非法操作数据
环境搭建
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
声明
严禁读者利用以上介绍知识点对网站进行非法操作 , 本文仅用于技术交流和学习 , 如果您利用文章中介绍的知识对他人造成损失 , 后果由您自行承担 , 如果您不能同意该约定 , 请您务必不要阅读该文章 , 感谢您的配合!