当前位置: 首页 > article >正文

#渗透测试#漏洞挖掘#红蓝攻防#漏洞挖掘#未授权漏洞-Es未授权漏洞

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章读。

目录

 一、Elasticsearch

二、ES的主要作用

三、什么是es未授权?

1.“es未授权”的含义

2.判断是否存在“es未授权”漏洞

3.“es未授权”漏洞产生的原因

4.防范“es未授权”漏洞的措施

四、es如何查看node节点

1. 使用 _cat/nodes API

2. 使用 _nodes API

3. 使用 Kibana Dev Tools

4. 使用 Elasticsearch Head 插件

5. 查看主节点

五、ES未授权访问的案例

六、ES未授权访问的检测方法


 一、Elasticsearch

Elasticsearch(简称ES)是一种分布式搜索引擎,它能够提供实时的全文搜索和分析功能。Elasticsearch是基于Apache Lucene构建的,但相比Lucene,它提供了更高级的功能和更友好的用户接口。Elasticsearch不仅可以用于日志数据的快速检索和分析,还可以用于电商、在线媒体等平台的推荐系统,社交媒体分析,以及各种需要全文搜索的应用场景。

Elasticsearch的特点包括:

  • 分布式:Elasticsearch是一个分布式搜索引擎,可以水平扩展以处理大量的数据和并发请求。
  • 实时性:Elasticsearch能够实时地索引和查询数据,这对于需要实时响应的应用场景非常重要。
  • 全文搜索:Elasticsearch提供了强大的全文搜索功能,支持多字段匹配、高亮显示等特性。
  • 易用性:Elasticsearch提供了RESTful API,使得开发者可以很方便地与之交互。
  • 可扩展性:Elasticsearch可以通过插件机制扩展其功能,例如支持地理空间查询、机器学习等。

二、ES的主要作用

包括以下几个方面:

  1. 全文搜索:Elasticsearch 提供强大的全文搜索功能,允许用户在大规模文本数据集中快速执行全文搜索操作。这使得它非常适合用于实现网站的站内搜索、文档管理系统中的搜索功能等。

  2. 实时数据分析:Elasticsearch 支持实时数据分析,用户可以实时地插入、更新和查询数据。这使得 Elasticsearch 在需要快速响应和实时数据分析的应用场景中非常有用,如监控系统、日志分析等。

  3. 日志和事件数据存储:Elasticsearch 被广泛用于存储和分析大量的日志和事件数据。通过与 Logstash 配合使用,可以方便地将各种数据源的日志数据导入 Elasticsearch 中,然后使用 Kibana 进行可视化和分析。

  4. 业务智能和分析:Elasticsearch 可以用于构建业务智能和分析应用程序,帮助用户理解他们的数据并从中提取有价值的信息。通过复杂的查询和聚合功能,用户可以对数据进行深入分析。

  5. 数据存储和分析:Elasticsearch 可以为所有类型的数据提供实时的搜索和分析,包括结构化文本、非结构化文本、数字数据或地理空间数据。Elasticsearch 能够以快速搜索的方式有效地对其进行存储和建立索引。

  6. 自动化业务工作流程:使用 Elasticsearch 作为存储引擎可以自动化业务工作流程,提高效率。

  7. 地理信息系统 (GIS):使用 Elasticsearch 可以作为地理信息系统管理,集成和分析空间信息。

  8. 生物信息学研究:Elasticsearch 可以作为生物信息学研究工具来存储和处理遗传数据。

三、什么是es未授权?

1.“es未授权”的含义

“es未授权”指的是ElasticSearch在默认配置下可能存在未授权访问风险,即允许非法查询和操作数据,攻击者可以在没有经过任何身份验证的情况下访问ElasticSearch服务中的数据,并且能够进行各种操作,如查询、修改甚至删除数据等操作,这会导致业务系统面临敏感数据泄露、数据丢失、数据遭到破坏甚至遭到攻击者的勒索等严重后果。ElasticSearch是一款Java编写的企业级搜索服务,它基于RESTful web接口,其增删改查操作全部由http接口完成,启动此服务默认开放HTTP - 9200端口,可被非法操作数据。

2.判断是否存在“es未授权”漏洞

  1. 通过访问特定URL查看返回字段
    • 如果访问http://ip/9200,返回字段中有“you know,for search”则代表有未授权漏洞5。
    • 如果有登录点,则不存在未授权漏洞。

3.“es未授权”漏洞产生的原因

  • 授权模块需付费:由于Elasticsearch授权模块需要付费,所以免费开源的Elasticsearch可能存在未授权访问漏洞。

4.防范“es未授权”漏洞的措施

  1. 限制HTTP端口访问
    • 限制http端口的IP访问,不对公网开放,只对内网开放。例如修改主目录下config/elasticsearch.yml 配置文件,将network.host 配置为内网地址或者127.0.0.1 1。
  2. 启用访问验证
    • 通过安装并配置x - pack插件启用访问验证,在主目录(如/usr/share/elasticsearch)下运行bin/elasticsearch - plugin install x - pack安装x - pack插件,在config/elasticsearch.yml 配置文件增加xpack.security.enabled:True 的配置,然后运行命令bin/x - pack/setup - passwords interactive为ES服务设置密码,最后重启ES服务。
  3. 其他措施
    • 整改建议还包括设置nginx反向代理、升级到安全版本以及使用Elasticsearch漏洞监测工具来检查索引安全性、SSL/TLS加密等方面是否存在问题等。这些工具可以检测Elasticsearch的索引是否设置有适当的访问控制,防止未授权的数据读取或写入,还会检查Elasticsearch实例是否使用SSL/TLS进行加密通信以保护数据在传输过程中的安全等。

四、es如何查看node节点

在Elasticsearch中,查看节点(node)的信息可以通过多种方式实现。以下是几种常见的方法:

1. 使用 _cat/nodes API

_cat/nodes API 可以用来查看集群中所有节点的基本信息。你可以通过以下命令来获取这些信息:

curl -X GET "localhost:9200/_cat/nodes?v"

这个命令会返回一个表格,其中包含了每个节点的 IP 地址、堆内存使用情况、CPU 负载、节点角色等信息。v 参数表示以更易读的格式返回结果。

2. 使用 _nodes API

_nodes API 提供了更详细的节点信息,包括节点的配置、运行状态等。你可以通过以下命令来获取这些信息:

curl -X GET "localhost:9200/_nodes?pretty"

这个命令会返回一个 JSON 对象,其中包含了每个节点的详细信息。pretty 参数表示以更易读的格式返回结果。

3. 使用 Kibana Dev Tools

如果你安装了 Kibana,你也可以使用 Dev Tools 来查看节点信息。在 Dev Tools 控制台中输入以下命令:

GET _nodes 

这将返回与上述 curl 命令相同的结果。

4. 使用 Elasticsearch Head 插件

Elasticsearch Head 是一个基于 Web 的轻量级工具,可以用来查看集群信息、索引、文档等。你可以通过以下步骤来使用它:

  1. 安装 Elasticsearch Head 插件。
  2. 打开浏览器,访问 http://localhost:9100/
  3. 在界面中选择“Cluster”选项卡,可以看到集群中所有节点的信息。

5. 查看主节点

如果你想查看当前集群中哪个节点是主节点(master),可以使用以下命令:

curl -X GET "localhost:9200/_cat/master?v"

这个命令会返回主节点的名称和其他相关信息。

五、ES未授权访问的案例

  • Elasticsearch未授权访问利用:在一个案例中,攻击者发现了一个未授权访问的Elasticsearch实例,并尝试利用这一漏洞。攻击者首先查找有多少数据库(实际上是index),然后查找数据库中有多少数据表(实际上是type)。攻击者可以查看具体数据,默认值返回10条数据,如果需要可以修改size。此外,攻击者还可能利用低版本的Elasticsearch进行命令执行。

  • 黑产团伙利用ES未授权访问漏洞实施勒索:在一个真实案例中,黑产团伙利用Elasticsearch未授权访问漏洞,删除了所有索引,并留下勒索信息,要求受害者支付0.021比特币以恢复数据。这种勒索方式对企业的损失是不可估量的。该团伙通过网络空间搜索引擎,搜索端口9200开放的目标,批量检测并添加勒索信息。建议各家企业自查自家使用的Elasticsearch是否存在公网可以访问并且存在未授权访问问题的系统。

六、ES未授权访问的检测方法

asticsearch(简称ES)未授权访问的检测方法主要包括以下几个步骤:

  1. 端口扫描:使用端口扫描工具(如Nmap)扫描目标主机的9200端口,这是Elasticsearch默认的HTTP端口。如果该端口开放,说明可能存在未授权访问的风险。

  2. 尝试访问:在浏览器中输入目标主机的IP地址和9200端口,例如http://<目标IP>:9200。如果能够访问且没有弹出登录界面,说明Elasticsearch可能存在未授权访问的问题。

  3. 查看配置文件:如果能够访问目标主机的文件系统,可以查看Elasticsearch的配置文件(通常是elasticsearch.yml )。检查network.host 配置项是否设置为0.0.0.0127.0.0.1以外的值。如果是,说明Elasticsearch可能对外网开放。

  4. 使用安全工具:可以使用一些安全工具(如Burp Suite、Fiddler等)来模拟攻击者的行为,尝试访问Elasticsearch的API接口。如果能够成功访问并获取数据,说明存在未授权访问的风险。

  5. 检查访问日志:查看Elasticsearch的访问日志,检查是否有异常的访问记录。如果有来自未知IP地址的频繁访问,可能是有人在尝试未授权访问。

  6. 使用网络空间搜索引擎:可以使用网络空间搜索引擎(如Shodan、ZoomEye等)搜索开放9200端口的主机。这些工具可以帮助快速定位可能存在未授权访问风险的Elasticsearch实例。


http://www.kler.cn/a/450366.html

相关文章:

  • JavaScript中的Set、Map、WeakSet和WeakMap
  • 玩转OCR | 探索腾讯云智能结构化识别新境界
  • leetcode 2295.替换数组中的元素
  • 大数据操作实验一
  • C++ 面向对象编程:+号运算符重载,左移运算符重载
  • Cline 3.0发布:从AI编程助手到通用智能体平台的进化
  • 如何保障多个Facebook账号稳定运行:一账号一稳定IP?
  • Mac Android studio 升级LadyBug 版本,所产生的bug
  • 八股(One Day one)
  • 关于electron项目运行时,只编译渲染进程,不编译主进程问题
  • 前后端学习中本周遇到的内容
  • OpenHarmony怎么修改DPI密度值?RK3566鸿蒙开发板演示
  • 各种网站(学习资源及其他)
  • golang LeetCode 热题 100(动态规划)-更新中
  • Redis大Key问题全解析
  • 鸿蒙项目云捐助第二十讲云捐助项目物联网IOT的使用
  • python11-函数
  • NS3学习——tcpVegas算法代码详解(1)
  • 基底展开(Expansion in a Basis):概念、推导与应用 (中英双语)
  • Java 并发流程工具的实战探索
  • 帧缓存的分配
  • shardingsphere分库分表项目实践3-分库分表算法原理
  • 并发编程(19)——引用计数型无锁栈
  • 【UI自动化】从WebDriver看Selenium与Appium的底层关联
  • 【python 逆向分析某有道翻译】分析有道翻译公开的密文内容,webpack类型,全程扣代码,最后实现接口调用翻译,仅供学习参考
  • SQL面试题——奖金瓜分问题