Elasticsearch未授权访问漏洞
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。Elasticsearch的增删改查操作全部由http接口完成。由于Elasticsearch授权模块需要付费,所以免费开源的Elasticsearch可能存在未授权访问漏洞。该漏洞导致,攻击者可以拥有Elasticsearch的所有权限。可以对数据进行任意操作。业务系统将面临敏感数据泄露、数据丢失、数据遭到破坏甚至遭到攻击者的勒索。
--
漏洞信息
Elasticsearch服务普遍存在一个未授权访问的问题,攻击者通常可以请求一个开放9200或9300的服务器进行恶意攻击。
--
步骤一:使用以下Fofa语法进行Elasticsearch产品搜索..
"Elasticsearch" && port="9200"
步骤二:存在未授权访问则直接进入到信息页面...不需要输入用户密码登陆.
步骤三:可按照上面查看节点信息等.
--
漏洞修复
1.访问控制策略,限制IP访问,绑定固定IP
2.在 config/elasticsearch.yml 中为9200端口设置认证等
----------------------------------
Kibana未授权访问漏洞
Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看存放在Elasticsearch中的数据。Kibana与Elasticsearch的交互方式是以各种不同的图表、表格、地图等直观地展示数据,从而达到高级的数据分析与可视化的目的。
Elasticsearch、Logstash和Kibana这三个技术就是我们常说的ELK技术栈,可以说这三个技术的组合是大数据领域中一个很巧妙的设计。一种很典型的MVC思想,模型持久层,视图层和控制层。Logstash担任控制层的角色,负责搜集和过滤数据。Elasticsearch担任数据持久层的角色,负责储存数据。而我们这章的主题Kibana担任视图层角色,拥有各种维度的查询和分析并使用图形化的界面展示存放在Elasticsearch中的数据。
--
漏洞信息
Kibana如果允许外网访问且没有做安全登录认证,就会被外部任意访问,查看所有数据,造成数据泄露。在默认配置下,Kibana就可以访问Elasticsearch中的所有数据
--
漏洞复现
步骤一:使用以下Fofa语句搜索Kibana产品..并打开页面..
"kibana" && port='5601'
步骤二:直接访问Kibana的页面且无需账号密码可以登陆进入界面.
--
漏洞修复
1.升级Kibana到最新版本,升级地址如下Download Kibana Free | Get Started Now | ElasticDownload Kibana or the complete Elastic Stack (formerly ELK stack) for free and start visualizing, analyzing, and exploring your data with Elastic in minutes....https://www.elastic.co/cn/downloads/kibana
2.在kibana所在的服务器上安装nginx服务,利用nginx的转发指令实现,需要输入账号密码才可以访问页面
3.如果正常业务中 kibana 服务需要被其他服务器来访问,可以通过 iptables 策略,仅允许指定的 IP来访问服务。
---------------------------------------------
Docker Remote APl未授权访问漏洞
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的LINUX机器上,也可以实现虚拟化。
Docker swarm 是一个将docker集群变成单一虚拟的docker host工具,使用标准的Docker API,能够方便docker集群的管理和扩展,由docker官方提供
---
漏洞信息
Docker Remote API如配置不当可导致未授权访问,被攻击者恶意利用。攻击者无需认证即可访问到Docker数据,可能导致敏感信息泄露,黑客也可以删除 Docker上的数据,直接访问宿丰机上的敏感信息,或对敏感文件进行修改,最终完全控制服务器。
---
漏洞复现
步骤一:使用以下Fofa语句对Docker产品进行搜索.
port="2375"
步骤二:直接使用浏览器访问以下路径.
---
步骤三:使用-H参数连接目标主机的docker,使用ps命令查询目标系统运行的镜像
---
漏洞修复
1.端口访问控制
对2375端口做网络访问控制,如设置iptables策略仅允许指定的IP来访问Docker接口。
2.使用TLS认证修改docker swarm的认证方式,使用TLS认证:Overview Swarm with TLS 和 Configure DockerSwarm for TLS这两篇文档,说的是配置好TLS后,Docker CLl在发送命令到docker daemon之前,会首先发送它的证书,如果证书是由daemon信任的CA所签名的,才可以继续执行。