ElasticSearch 未授权访问记录(端口:9200)
生活随笔
收集整理的這篇文章主要介紹了
ElasticSearch 未授权访问记录(端口:9200)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
基本語法參考
https://blog.51cto.com/feelmanc/1250430
?
漏洞描述
Elasticsearch是一款java編寫的企業級搜索服務。越來越多的公司使用ELK作為日志分析,啟動此服務默認會開放9200端口或者9300端口,可被非法操作數據
ES未授權訪問漏洞復現利用
http://localhost:9200/_cat/indices http://localhost:9200/_river/_search //查看數據庫敏感信息 http://localhost:9200/_nodes //查看節點數據 如有安裝head插件: http://localhost:9200/_plugin/head/ //web管理界面首先找有多少數據庫(其實是index,這里類比為數據庫)
http://xxxx:9200/_cat/indices?v然后找數據庫中有多少數據表(其實是type,類比為數據表) // 數據表中mapping下一級目錄,除了 __default__ 都是 type
http://xxxxxx:9200/_mapping?pretty=true查看具體數據
http://xxxx:9200/Index/Type/Id默認值返回10條數據,需要則修改 size // 未測試,因為數據,一般十條就夠干很多事情了 :)
$ curl 'localhost:9200/accounts/person/_search' -d ' {"query" : { "match" : { "desc" : "管理" }},"size": 1 }'除了查看數據資源,還存在低版本命令執行
修復方案
1、限制IP訪問、對網站數據造成影響
2、在config/elasticsearch.yml中為9200端口設置認證
安裝認證插件
cd /usr/share/elasticsearch/plugins/http-basic //es插件目錄下 wget https://github.com/Asquera/elasticsearch-http-basic/releases/download/v1.1.0/elasticsearch-http-basic-1.1.0.jar //下載es認證插件?
添加賬號密碼
http.basic.enabled: true http.basic.log: false http.basic.user: "loguser" http.basic.password: "logpwd" http.basic.ipwhitelist: ["172.16.18.171","172.16.18.114"] http.basic.xforward: "X-Forwarded-For" http.basic.trusted_proxy_chains: ["172.16.18.114"]| http.basic.enabled | true | 開關,開啟會接管全部HTTP連接 |
| http.basic.user | "loguser" | 賬號 |
| http.basic.password | "logpwd" | 密碼 |
| http.basic.ipwhitelist | ["172.16.18.171","172.16.18.114"] | 白名單內的ip訪問不需要通過賬號和密碼,支持ip和主機名,不支持ip區間或正則 |
| http.basic.trusted_proxy_chains | ["172.16.18.114"] | 信任代理列表 |
| http.basic.log | false | 把無授權的訪問事件添加到ES的日志 |
| http.basic.xforward | "X-Forwarded-For" | 記載代理路徑的header字段名 |
總結
以上是生活随笔為你收集整理的ElasticSearch 未授权访问记录(端口:9200)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sendmail启动报错
- 下一篇: 自定义控件 - 流式布局:TagFlow