Elasticsearch未受權訪問漏洞

   Elasticsearch服務廣泛存在一個未受權訪問的問題,攻擊者一般能夠請求一個開放9200或9300的服務器進行惡意攻擊。node

0x00 Elasticsearch 安裝python

前提,保證安裝了JDK 1.7+mysql

下載地址:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.0.zip (用迅雷打開下載,速度極慢)web

一、解壓elasticsearch安裝包sql

二、進入bin 目錄,雙擊執行 elasticsearch.batmongodb

 

三、訪問http://localhost:9200/,出現如下頁面,說明安裝成功。數據庫

0x01 漏洞測試服務器

安裝了river以後能夠同步多種數據庫數據(包括關係型的mysql、mongodb等)。
http://localhost:9200/_cat/indices裏面的indices包含了_river通常就是安裝了river了。微信

http://localhost:9200/_cat/indices
http://localhost:9200/_river/_search 查看數據庫敏感信息
http://localhost:9200/_nodes 查看節點數據
若有安裝head插件:
http://localhost:9200/_plugin/head/ web管理界面

0x02 Python未受權訪問腳本elasticsearch

#! /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 加固方案

一、限制IP訪問,綁定固定IP
二、在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--,每週原創一篇技術乾貨。

相關文章
相關標籤/搜索