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

#渗透测试#漏洞挖掘#红蓝攻防#漏洞挖掘#未授权漏洞-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”则代表有未授权漏洞。
    • 如果有登录点,则不存在未授权漏洞。

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.mrgr.cn/news/81694.html

相关文章:

  • App Factory:简化和加速私人应用开发
  • 第10章 初等数论
  • 【论文阅读】AllMatch: Exploiting All Unlabeled Data for Semi-Supervised Learning
  • CFA知识点梳理系列:CFA Level II, Reading 7 Economics of Regulation
  • 【10】Selenium+Python UI自动化测试 邮件发送测试报告(某积载系统实例-04)
  • PDF书籍《手写调用链监控APM系统-Java版》第10章 插件与链路的结合:SpringBoot环境插件获取应用名
  • leetcode 27. 移除元素
  • 【和春笋一起学C++】文本输入与读取
  • C# 修改项目类型 应用程序程序改类库
  • 【CSS in Depth 2 精译_094】16.2:CSS 变换在动效中的应用(下)——导航菜单的文本标签“飞入”特效与交错渲染效果的实现
  • CMake技术细节:解决未定义,提供参数
  • 走进人工智能体
  • 【Go】context标准库
  • SpringMVC学习(二)——RESTful API、拦截器、异常处理、数据类型转换
  • esp32学习:用虫洞ESP32S3-EYE开发板快速实现USB摄像头(UVC免驱)
  • 【HENU】河南大学计院2024 计算机网络 期末复习知识点
  • 中关村科金智能客服机器人如何解决客户个性化需求与标准化服务之间的矛盾?
  • Windows 11 中利用 WSL - Linux 虚拟环境部署 ChatTTS-Enhanced 项目教程
  • 动态规划<四> 回文串问题(含对应LeetcodeOJ题)
  • 动态规划<五> 子数组问题(含对应LeetcodeOJ题)
  • PaddleOCR训练自己的私有数据集(包括标注、制作数据集、训练及应用)
  • 学习笔记(C#基础书籍)-- C#高级应用
  • WEB UI 创建视图
  • 存储过程实现多个分类不同计算规则得到对应的分类、月份和款号
  • 任务8 数据库服务配置与管理
  • C#学习1:初接触,C#的一些基础,和相关报错