Elasticsearch未授权访问
Elasticserch简介
Elasticsearch 是一个开源的分布式搜索和分析引擎,基于 Apache Lucene 构建。它提供了一个分布式、多租户能力的全文搜索引擎,具有 HTTP Web 接口和无模式 JSON 文档。
应用场景
- 全文搜索:网站搜索、企业搜索等
- 日志和数据分析:ELK Stack (Elasticsearch, Logstash, Kibana)
- 应用性能监控
- 地理空间数据分析
- 安全分析
Elasticsearch未授权访问
漏洞原理
Elasticsearch服务在默认配置下没有启用身份验证机制,导致攻击者可以直接访问Elasticsearch的RESTful API接口,从而对数据进行非法操作。
漏洞危害
- 数据泄露:读取索引中的所有敏感数据
- 数据篡改:添加、修改或删除索引和文档
- 执行恶意脚本:通过Groovy脚本等执行系统命令
- 节点控制:操作集群设置,甚至关闭集群
- 植入勒索软件:删除或加密数据索要赎金
漏洞特征
- 默认端口 在 9200 运行
- 返回包内容中包含”You Know, for Search”
FOFA指纹
1 | port="9200"||body="You Know, for Search" |
漏洞利用
访问9200端口如果能看到如下配置信息就说明存在未授权漏洞
如果漏洞存在可以访问一些敏感路由
1 | http://127.0.0.1:9200/_plugin/head/ 检查是否安装了Head插件(Elasticsearch的Web管理界面) |
也可以直接使用谷歌浏览器插件es-client进行图形化操作
点击管理,新增,一条es未授权节点
添加成功,接下来查看数据
左上角先选择链接节点,进入第二个左侧边栏,再来到右上角选择要查询的索引
就能很方便地查看es里面的数据了
案例复现
首先端口扫描到存在es未授权访问漏洞
连上es客户端,翻找每个索引下的数据,找到大量身份证+姓名等等个人信息
以及一个账号密码,但是登录不上这个给出来的系统,于是便拿这个密码去他的80端口,尝试密码复用
狗运,成功登录80端口的后台管理系统
工具
- es-client
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 X1ly?S!
评论