Elasticserch简介

Elasticsearch 是一个开源的分布式搜索和分析引擎,基于 Apache Lucene 构建。它提供了一个分布式、多租户能力的全文搜索引擎,具有 HTTP Web 接口和无模式 JSON 文档。

应用场景

  1. 全文搜索:网站搜索、企业搜索等
  2. 日志和数据分析:ELK Stack (Elasticsearch, Logstash, Kibana)
  3. 应用性能监控
  4. 地理空间数据分析
  5. 安全分析

Elasticsearch未授权访问

漏洞原理

Elasticsearch服务在默认配置下没有启用身份验证机制,导致攻击者可以直接访问Elasticsearch的RESTful API接口,从而对数据进行非法操作。

漏洞危害

  1. 数据泄露:读取索引中的所有敏感数据
  2. 数据篡改:添加、修改或删除索引和文档
  3. 执行恶意脚本:通过Groovy脚本等执行系统命令
  4. 节点控制:操作集群设置,甚至关闭集群
  5. 植入勒索软件:删除或加密数据索要赎金

漏洞特征

  • 默认端口 在 9200 运行
  • 返回包内容中包含”You Know, for Search”

FOFA指纹

1
port="9200"||body="You Know, for Search"

漏洞利用

访问9200端口如果能看到如下配置信息就说明存在未授权漏洞

image-20250501102820322

如果漏洞存在可以访问一些敏感路由

1
2
3
4
5
6
7
http://127.0.0.1:9200/_plugin/head/ 检查是否安装了Head插件(Elasticsearch的Web管理界面)
http://127.0.0.1:9200/_nodes 获取集群节点信息
http://127.0.0.1:9200/_cat/indices/ 列出所有索引(类似数据库列表)
http://127.0.0.1:9200/_status 获取索引状态信息较,旧版本API,新版本使用/_stats)
http://127.0.0.1:9200/_search?pretty 查询所有索引的文档
http://10.203.9.131:9200/zjftu/ 查询名为"zjftu"的索引信息
http://10.203.9.131:9200/zjftu/_search?prett 专门查询"zjftu"索引中的所有文档

也可以直接使用谷歌浏览器插件es-client进行图形化操作

点击管理,新增,一条es未授权节点

image-20250501103934445

image-20250501105124045

添加成功,接下来查看数据

image-20250501105058693

左上角先选择链接节点,进入第二个左侧边栏,再来到右上角选择要查询的索引

image-20250501104136383

就能很方便地查看es里面的数据了

案例复现

首先端口扫描到存在es未授权访问漏洞

image-20250501110241895

连上es客户端,翻找每个索引下的数据,找到大量身份证+姓名等等个人信息

image-20250501110416732

以及一个账号密码,但是登录不上这个给出来的系统,于是便拿这个密码去他的80端口,尝试密码复用

image-20250501111346441

狗运,成功登录80端口的后台管理系统

image-20250501111455375

工具

  • es-client

https://chromewebstore.google.com/detail/es-client/pkhmgepniefdigphghbolofjgbnhnhfd?utm_source=ext_app_menu