本文介绍了ElasticSearch由于默认开放9200端口可能带来的高危安全风险,如直接通过ip:9200/_cat访问。为解决此问题,建议关闭9200对外服务,或者在安全组中限制仅允许特定IP访问,并提供了iptables的配置示例来阻止非授权访问。此外,还提到了增强安全性的方法,如添加登录验证和使用Nginx反向代理进行认证。
摘要由CSDN通过智能技术生成
ElasticSearch 是一款Java编写的企业级搜索服务,启动此服务默认会开放HTTP-9200端口,可被非法操作数据。
例如 ip:9200/_cat可以直接访问等。。
9200端口不对外开放,如需开放,需在安全组限制只允许指定IP才能访问9200端口
// accept
## iptables -A INPUT -p tcp -s 127.0.0.1 --dport 9200 -j ACCEPT
## iptables -A INPUT -p udp -s 127.0.0.1 --dport 9200 -j ACCEPT
// drop
## iptables -I INPUT -p tcp --dport 9200 -j DROP
## iptables -I INPUT -p udp --dport 9200 -j DROP
// 保存规则 重启iptables
## service iptables save
## service iptables restart
这就成功了,亲测有效非常简单!
当然还有别的方法解决,如为es增加登录验证(可参考)、 使用nginx搭建反向代理,通过配置nginx实现对es的认证等
前提,保证安装了JDK 1.7+
下载地址:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.0.zip
进入bin 目录,双击执行 elasticsearch.bat
访问http://localhost:9200/后即可看到页面
nmap扫描
Elasticsearch是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。
当ElasticSearch的节点启动后,它会利用多播(multicast)(或者单播,如果用户更改了配置)寻找集群中的其它节点,并与之建立连接。这个过程
Elasticsearch服务普遍存在一个未授权访问的问题,攻击者通常可以请求一个开放9200或9300的服务器进行恶意攻击。
0x00 Elasticsearch 安装
前提,保证安装了JDK 1.7+
下载地址:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.0.zip (用迅雷打开下载,...
Elasticsearch未授权访问漏洞是指攻击者可以通过访问Elasticsearch的默认端口(9200)获取敏感信息,甚至可以对数据进行修改和删除。下面是一个简单的复现过程:
1. 下载安装Elasticsearch
首先需要下载并安装Elasticsearch,可以从官网 https://www.elastic.co/downloads/elasticsearch 下载适合自己操作系统的版本。安装完成后启动Elasticsearch。
2. 测试未授权访问
使用curl命令访问Elasticsearch的默认端口,可以看到返回的json格式数据,其中包含了Elasticsearch的版本信息、集群名称等。
curl http://localhost:9200/
如果返回的结果中包含了类似以下内容,说明Elasticsearch存在未授权访问漏洞。
"name" : "node-1",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "zZl94mWlQq6RQlN4WmAz5w",
"version" : {
"number" : "7.9.3",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "c4138e51121ef06a6404866cddc601906fe5c868",
"build_date" : "2020-10-16T10:36:16.141335Z",
"build_snapshot" : false,
"lucene_version" : "8.6.2",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
"tagline" : "You Know, for Search"
3. 利用未授权访问漏洞
利用未授权访问漏洞可以进行一些危害性较大的操作,比如删除数据、创建索引等。这里我们只演示一下获取敏感信息的操作。
使用curl命令访问Elasticsearch中的某个索引,可以看到其中包含了一些敏感信息,比如用户名、密码等。
curl http://localhost:9200/_cat/indices
如果返回的结果中包含了类似以下内容,说明存在敏感信息泄露。
yellow open .kibana_task_manager_1 6rJQh5E8R0yUH9WdPQzLrw 1 1 3 0 35.4kb 35.4kb
yellow open .kibana_1 5QZvZnS-QOyvZBTl2t6bKg 1 1 2 0 13.4kb 13.4kb
4. 解决方法
为避免Elasticsearch的未授权访问漏洞,可以进行以下操作:
- 修改配置文件中的network.host配置,限制Elasticsearch只能在特定的IP地址或网段上运行。
- 启用Elasticsearch的安全特性,比如启用访问控制、数据加密等。
以上是Elasticsearch未授权访问漏洞的简单复现过程,希望对您有帮助。
CSDN-Ada助手:
拿到.pfx证书后如何调用https接口
语冰峡虫:
json_contains的使用,MySQL存储json格式的对象数组,根据对象中的某个属性查询数据
bug妹子•Jbb:
@NotBlank @NotNull @NotEmpty用法
CSDN-Ada助手:
@NotBlank @NotNull @NotEmpty用法
CSDN-Ada助手: