Elasticsearch 未授权访问漏洞

这篇具有很好参考价值的文章主要介绍了Elasticsearch 未授权访问漏洞。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Elasticsearch 未授权访问漏洞(Es未授权访问)

漏洞描述

ElasticSearch 是一款 Java 编写的企业级搜索服务,启动此服务默认开放 HTTP-9200 端口,可被非法操作数据。

复现

访问 IP:9200 显示 You konw,for Search 表示存在此漏洞
Elasticsearch 未授权访问漏洞
显示登录界面或访问不到的情况 证明不存在此漏洞
Elasticsearch 未授权访问漏洞文章来源地址https://www.toymoban.com/news/detail-506396.html

https://github.com/mobz/elasticsearch-head

查询所有 index, type:
localhost:9200/_search?pretty=true 
http://ip:9200/_cat/indices
一般泄漏的文件都会出现在这个页面里面,可访问进行信息搜集
查询某个 index 下所有 type:
localhost:9200/films/_search 
查询某个 index 下, 某个 type 下所有记录:
localhost:9200/films/md/_search?pretty=true 
带参数的查询  
localhost:9200/films/md/_search?q=tag:good 
{"took":7,"timed_out":false,"_shards":{"total":5,"successful":5,"failed":0},"hits":{"total":2,"max_score":1.0,"hits":[{"_index":"film","_type":"md","_id":"2","_score":1.0, "_source" : 
{ "name":"hei yi ren", "tag": "good"}},{"_index":"film","_type":"md","_id":"1","_score":0.30685282, "_source" : 
{ "name":"ma da jia si jia", "tag": "good"}}]}} 
JSON 参数的查询 
注意:query 和 term 关键字)
localhost:9200/film/_search -d '{"query" : { "term": { "tag":"bad"}}}' 

http://localhost:9200/_rvier/_search
查看敏感信息了
http://localhost:9200/_plugin/head/web
管理界面
http://localhost:9200/_cat/indices
http://localhost:9200/_river/_search
查看数据库敏感信息
http://localhost:9200/_nodes
查看节点数据

使用 ElasticHD 工具进行远程连接可视化数据进行信息搜集

修复

1.限制 IP 访问,禁止未授权 IP 访问 ElasticSearch 9200 端口
使用 iptables 等服务器内嵌防火墙对访问 IP 进行限制

2.通过 ES 插件增加访问验证,增加验证后切勿使用弱口令
①shield插件,收费,暂不考虑。
②针对1.7.0版本之前的ElasticSearch,可采用elasticsearch-http-basic插件。
下载地址:https://github.com/Asquera/elasticsearch-http-basic/releases
elasticsearch-http-basic,安装在 plugins 文件夹下,config/elasticsearch.yml 中统一配置:
http.basic.enabled true 
#开关,开启会接管全部HTTP连接
http.basic.user “admin” 
#账号
http.basic.password “admin_pw” 
#密码
http.basic.ipwhitelist [“localhost”, “127.0.0.1”] 
#白名单内的IP访问不需要通过账号和密码,支持IP和主机名,不支持IP区间或正则。
③针对 elasticsearch2.x 以后版本采用 search-guard 插件
https://docs.search-guard.com/6.x-25/search-guard-versions
安装插件执行命令
./bin/elasticsearch-plugin install -b file:///path/search-guard-6-6.2.3-23.0.zip

config/elasticsearch.yml 中统一配置,末尾追
searchguard.ssl.transport.pemcert_filepath: certificates/esnode.pem
searchguard.ssl.transport.pemkey_filepath: certificates/esnode-key.pem
searchguard.ssl.transport.pemtrustedcas_filepath: certificates/root-ca.pem
searchguard.ssl.transport.enforce_hostname_verification: false
searchguard.ssl.http.enabled: true
searchguard.ssl.http.pemcert_filepath: certificates/esnode.pem
searchguard.ssl.http.pemkey_filepath: certificates/esnode-key.pem
searchguard.ssl.http.pemtrustedcas_filepath: certificates/root-ca.pem
searchguard.allow_unsafe_democertificates: true
searchguard.allow_default_init_sgindex: true
searchguard.authcz.admin_dn:
  - CN=kirk,OU=client,O=client,L=test,C=de
searchguard.enable_snapshot_restore_privilege: true
searchguard.check_snapshot_restore_write_privileges: true
searchguard.restapi.roles_enabled: ["sg_all_access"] 

注:默认弱口令用户admin admin强烈建议修改默认密码
使用默认hash工具,生成hash串
elasticsearch-6.2.3\plugins\search-guard-6\tools
.\hash.bat -p newpwd
新密码生效
sgadmin.bat -cd ..\sgconfig -key ..\..\..\config\certificates\kirk-key.pem -cert ..\..\..\config\certificates\kirk.pem -cacert ..\..\..\config\certificates\root-ca.pem -nhnv -icl
使用 searchbox 获取 jestclient 的方式(basic的方式连接es)

    JestClientFactory factory= new JestClientFactory();
    factory.setHttpClientConfig(new HttpClientCofig.Builder("https://ip:9200").defaultCredentials(username,pwd).sslSockedFactory(getSslSockedFactory()));
    private static SSLConnectionSockedFactory getSslSockedFactory() throws Exception{
    SSLContextBuilder builder= SSLContexts.custom();
    builder.loadTrustMaterial(new Trustrategy(){
    @Override
    public boolean isTrusted(X509Certificate[] chain,String authType){
    return true;
    }
    });
    SSLContext sslcontext=builder.build();
    SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslcontext,new String[]{"TLSv1","TLSv1.1","TLSv1.2"},null,new HostnameVerifier(){
    @Override
    public boolean verify(String arg0,String arg1){
    return true;
    }
    });
    return sslsf ;
    }
nodejs 使用用户名密码 (basic-auth) 连接 es
架设 nginx 反向代理服务器,设置 http basic 认证来实现 elasticsearch 登录认证
使用域名 配置转发
upstream es.nginx.com{
         server 127.0.0.1:9901 weight=1 max_fails=2;
         server 127.0.0.1:9902 weight=1 max_fails=2;
         server 127.0.0.1:9903 weight=1 max_fails=2;
         server 127.0.0.1:9904 weight=1 max_fails=2;
         server 127.0.0.1:9905 weight=1 max_fails=2;
}
location ~* / {
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

		proxy_set_header Upgrade $http_upgrade;
		proxy_set_header Connection "upgrade";

		if ($host ~* es\.nginx\.com) {
			proxy_pass  http://es.nginx.com;
		}
}
配置账号密码访问模式
location ~* / {
		proxy_set_header Host $host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

		proxy_set_header Upgrade $http_upgrade;
		proxy_set_header Connection "upgrade";

		#配置帐号密码
		auth_basic "login";#提示信息
		auth_basic_user_file /usr/local/nginx/conf/vhosts/password/es; #密码文件(填写绝对路径)
		autoindex on;

		if ($host ~* es\.sojson\.com) {
			proxy_pass  http://es.nginx.com;
		}
}
配置密码帐号文件
auth_basic_user_file 选项用于匹配密码文件
将密码按照一定规定进行编写 按照 unsername:passwd 格式填写进入密码文件内
vi /usr/local/nginx/conf/vhosts/password/es
 
关闭外网访问
修改config/elasticsearch.yml 
#network.publish_host: 0.0.0.0
#networt.bind_host: 0.0.0.0
#network.host: 0.0.0.0
#只要配置这个即可
network.host: 127.0.0.1
#network.publish_host: 127.0.0.1
重启  Elasticsearch ,更保险,可再加上 iptables ,加上访问频率限制,防止暴力破解

到了这里,关于Elasticsearch 未授权访问漏洞的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ElasticSearch单机或集群未授权访问漏洞

    来做限制只允许ES集群和Server节点的IP来访问漏洞节点的9200端口,其他的全部拒绝。 漏洞现象:直接访问9200端口不需要密码验证 2.1 生成认证文件 必须要生成认证文件,且ES配置文件里要引用这些生成的认证文件,否则启动ES的时候,日志会报错:Caused by: javax.net.ssl.SSLHandsh

    2024年02月02日
    浏览(35)
  • elasticsearch未授权访问漏洞怎么在日常的测试中发现

    你好!在日常测试中容易遗漏的严重风险的漏洞,本文可以帮助安全测试工程师在日常测试中不遗漏这个严重风险的漏洞。 Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸

    2023年04月16日
    浏览(35)
  • Web漏洞-未授权访问漏洞

    未授权访问漏洞 漏洞介绍: 未授权访问漏洞就是在不需要请求授权的情况下对需要授权的功能进行访问执行,通常是由于认证页面存在缺陷,安全配置不当。 漏洞原理: 未授权访问是系统对用户的限制不全,或者无限制,可以让用户或者限制访问的用户,访问到内部的敏感

    2024年02月16日
    浏览(37)
  • springboot未授权漏洞(漏洞复现Springboot未授权访问及修复)

    Actuator 的核心是端点 Endpoint,它用来监视应用程序及交互,spring-boot-actuator 中已经内置了非常多的Endpoint(health、info、beans、metrics、httptrace、shutdown等等),同时也允许我们自己扩展自己的Endpoints。每个 Endpoint 都可以启用和禁用。要远程访问 Endpoint,还必须通过 JMX 或 HTTP 进

    2024年02月05日
    浏览(50)
  • 漏洞名称:RMI 未授权访问漏洞

    漏洞描述:RMI默认使用序列化来完成所有的交互,如果该端口暴露在公网上,且使用了Apache Commons Collections的漏洞版本,就可以在该服务器上执行相关命令。 漏洞危害:攻击者可在没有认证的情况下直接操作对应的 API 接口,可直接被非法增删改次数据。且因为攻击是在未认证下

    2024年02月06日
    浏览(38)
  • Nacos未授权访问漏洞

    Nacos 的官网地址为: https://nacos.io 它是阿里开源的 SpringCloud Alibaba 项目下的一项技术,可以实现服务注册中心、分布式配置中心。 一般来说,nacos被建议部署在内网中,如果在外网出现,会有很大的风险。 访问nacos页面,发现是登录页面,可以先尝试使用弱口令,nacos/nacos 尝

    2024年02月09日
    浏览(43)
  • Docker未授权访问漏洞

    通过浏览器进行访问,如果页面显示message ”page not found\\\" 代表存在漏洞,如果页面显示空白,可以通过info获取docker信息 获取image列表 通过docker client使用 -H 参数连接目标的docker,并使用ps-a命令查寻目标系统运行的所有容器 docker client连接目标,ps -a 查看哪些容器已经停止:

    2024年02月11日
    浏览(35)
  • redis 未授权访问漏洞

    目录 redis 未授权访问漏洞 漏洞描述 漏洞原因: 漏洞危害 漏洞复现: 漏洞复现 写webshell: 写计划任务:centos默认在/var/spool/cron 写ssh公钥实现ssh登录: 漏洞描述: 漏洞原因: 漏洞危害: 1、禁止外部访问redis服务端口 2、禁止使用root权限启动redis服务 3、配置安全组,限制可

    2024年02月13日
    浏览(38)
  • Zookeeper未授权访问漏洞

    Zookeeper支持某些特定的四字查询命令,可以未授权访问,从而泄露zookeeper服务的相关信息,这些信息可能作为进一步入侵其他系统和服务的跳板,利用这些信息实现权限提升并逐渐扩大攻击范围。 常见的四字命令有 envi、conf、cons、crst、dump、ruok、stat、srvr、mntr 1.禁止2181端口

    2024年02月20日
    浏览(38)
  • Redis未授权访问漏洞引出的漏洞利用方式

    redis未授权访问漏洞是一个由于redis服务版本较低其未设置登录密码导致的漏洞,攻击者可直接利用redis服务器的ip地址和端口完成redis服务器的远程登录,对目标服务器完成后续的控制和利用。 redis版本为 4.x/5.0.5 或以前的版本; redis绑定在0.0.0.0:6379,且没有进行添加防火墙规

    2024年02月14日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包