Elasticsearch未授权访问漏洞
Elasticsearch服务普遍存在一个未授权访问的问题,攻击者通常可以请求一个开放9200或9300的服务器进行恶意攻击。
0x00 Elasticsearch 安装
前提,保证安装了JDK 1.7+
下载地址:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.0.zip (用迅雷打开下载,速度极慢)
1、解压elasticsearch安装包
2、进入bin 目录,双击执行 elasticsearch.bat
3、访问http://localhost:9200/,出现以下页面,说明安装成功。
0x01 漏洞测试
安装了river之后可以同步多种数据库数据(包括关系型的mysql、mongodb等)。
http://localhost:9200/_cat/indices里面的indices包含了_river一般就是安装了river了。
1 2 3 4 | http: //localhost:9200/_cat/indices http: //localhost:9200/_river/_search 查看数据库敏感信息 http: //localhost:9200/_nodes 查看节点数据如有安装head插件: http: //localhost:9200/_plugin/head/ web管理界面 |
0x02 Python未授权访问脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #! /usr/bin/env python # _*_ coding:utf-8 _*_ import requests def Elasticsearch_check(ip, port=9200, timeout=5): try : url = "http://" +ip+ ":" +str(port)+ "/_cat" response = requests. get (url) except: pass if "/_cat/master" in response.content: print '[+] Elasticsearch Unauthorized: ' +ip+ ':' +str(port) if __name__ == '__main__' : Elasticsearch_check( "127.0.0.1" ) |
0X03 加固方案
1、限制IP访问,绑定固定IP
2、在config/elasticsearch.yml中为9200端口设置认证:
http.basic.enabled true #开关,开启会接管全部HTTP连接
http.basic.user "admin" #账号
http.basic.password "admin_pw" #密码
http.basic.ipwhitelist ["localhost", "127.0.0.1"]
最后
欢迎关注个人微信公众号:Bypass--,每周原创一篇技术干货。
本文由Bypass整理发布,转载请保留出处。
欢迎关注我的个人微信公众号:Bypass--,浏览更多精彩文章。
分类:
01-渗透测试
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫