溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何進(jìn)行Elasticsearch核心插件Kibana本地文件包含漏洞的分析

發(fā)布時(shí)間:2021-12-16 18:03:06 來(lái)源:億速云 閱讀:1842 作者:柒染 欄目:安全技術(shù)

如何進(jìn)行Elasticsearch核心插件Kibana本地文件包含漏洞的分析,針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡(jiǎn)單易行的方法。

不久前Elasticsearch發(fā)布了最新安全公告, Elasticsearch Kibana6.4.3之前版本和5.6.13之前版本中的Console插件存在嚴(yán)重的本地文件包含漏洞可導(dǎo)致拒絕服務(wù)攻擊、任意文件讀取攻擊、配合第三方應(yīng)用反彈SHELL攻擊,下文筆者對(duì)其漏洞背景、攻擊原理和行為進(jìn)行分析和復(fù)現(xiàn)。    

一、影響范圍

Elasticsearch Kibana是荷蘭Elasticsearch公司的一套開源的、基于瀏覽器的分析和搜索Elasticsearch儀表板工具,作為Elasticsearch的核心組件,Kibana可作為產(chǎn)品或服務(wù)提供,并與各種系統(tǒng),產(chǎn)品,網(wǎng)站和企業(yè)中的其他Elastic Stack產(chǎn)品配合使用。 由于Kibana在大數(shù)據(jù)領(lǐng)域用途較為廣泛,此次漏洞影響范圍較大,Shodan搜索結(jié)果如圖

如何進(jìn)行Elasticsearch核心插件Kibana本地文件包含漏洞的分析

二、 漏洞場(chǎng)景

筆者選擇Kibana-6.1.1-linux-x86_64.tar.gz版本,搭建過程不表,網(wǎng)上很多參考資料

2.1、拒絕服務(wù)

拒絕服務(wù)筆者選擇/cli_plugin/index.js演示,攻擊向量如下

如何進(jìn)行Elasticsearch核心插件Kibana本地文件包含漏洞的分析GET請(qǐng)求發(fā)出去后客戶端打不開應(yīng)用頁(yè)面,在服務(wù)端Kibana進(jìn)程退出,應(yīng)用服務(wù)掛掉具體看下圖    

如何進(jìn)行Elasticsearch核心插件Kibana本地文件包含漏洞的分析如何進(jìn)行Elasticsearch核心插件Kibana本地文件包含漏洞的分析

2.2、任意文件讀取

文件讀取筆者選擇/etc/passwd演示,攻擊向量如下

如何進(jìn)行Elasticsearch核心插件Kibana本地文件包含漏洞的分析GET請(qǐng)求發(fā)出去后客戶端頁(yè)面會(huì)拋出500錯(cuò)誤,在服務(wù)端會(huì)將讀取到的passwd內(nèi)容拋出來(lái),具體看下圖    

如何進(jìn)行Elasticsearch核心插件Kibana本地文件包含漏洞的分析如何進(jìn)行Elasticsearch核心插件Kibana本地文件包含漏洞的分析

2.3、配合第三方應(yīng)用

通常情況下Kibana與其他的應(yīng)用程序一起部署,如果應(yīng)用程序可以上傳或者寫入Javascript文件的話,攻擊者可以通過Nodejs創(chuàng)建一個(gè)Reverse Shell,內(nèi)容如下

如何進(jìn)行Elasticsearch核心插件Kibana本地文件包含漏洞的分析路徑遍歷允許攻擊者訪問Kibana服務(wù)器任何文件的位置,如下    

如何進(jìn)行Elasticsearch核心插件Kibana本地文件包含漏洞的分析Nc反彈監(jiān)聽得到交互會(huì)話

如何進(jìn)行Elasticsearch核心插件Kibana本地文件包含漏洞的分析

三、漏洞分析

漏洞污染點(diǎn)位于\src\core_plugins\console\api_server\server.js

如何進(jìn)行Elasticsearch核心插件Kibana本地文件包含漏洞的分析Apis得到的值傳遞給賦值參數(shù)name,從圖上也能看到name變量的內(nèi)容沒有進(jìn)行任何過濾被引入到require,而require模塊在Nodejs里表示加載模塊的方式,可以加載核心模塊,例如內(nèi)置的“http”,也可以是包含名為“index.js”這樣的文件或目錄如果參數(shù)以“/”、“./”、”../”開頭則函數(shù)知道該模塊是文件或者文件夾,繼續(xù)跟進(jìn)到函數(shù)asJson所在的api.js文件中 。

如何進(jìn)行Elasticsearch核心插件Kibana本地文件包含漏洞的分析在同級(jí)目錄下ES_5_0.js 中有一個(gè)這個(gè)類的導(dǎo)出實(shí)例

如何進(jìn)行Elasticsearch核心插件Kibana本地文件包含漏洞的分析總結(jié)一下此函數(shù)的正常流程是獲取導(dǎo)出API類實(shí)例并調(diào)用函數(shù)asJson的JavaScript文件的名稱,但是忽略了過濾驗(yàn)證因此我們可以指定任意文件,配合目錄跳轉(zhuǎn)遍歷就可以實(shí)現(xiàn)Kibana服務(wù)器上任意文件讀取的操作。基于上述的分析很明顯Nodejs應(yīng)用程序需要大量的文件,如果這些文件里包含了process.exit指令,那么就可能關(guān)閉Kibana進(jìn)程并導(dǎo)致拒絕服務(wù)攻擊,通過搜索找到了三個(gè)可能的攻擊向量

如何進(jìn)行Elasticsearch核心插件Kibana本地文件包含漏洞的分析

LFI通常出現(xiàn)在PHP應(yīng)用中,通樣是require這次應(yīng)用在Nodejs程序中,相信未來(lái)還會(huì)有更多的Nodejs程序存在這種問題,原因是本地包含漏洞出現(xiàn)了很多年,但依舊有很多軟件開發(fā)人員和架構(gòu)師沒有考慮到這點(diǎn),這篇文章很好的說明了Kibana中存在的一個(gè)關(guān)鍵LFI漏洞,使得攻擊者能夠在服務(wù)器上運(yùn)行本地代碼,可造成直接的危害就是拒絕服務(wù)攻擊,若在生產(chǎn)環(huán)境下業(yè)務(wù)實(shí)在傷不起,需要引起對(duì)Nodejs LFI的重視。

關(guān)于如何進(jìn)行Elasticsearch核心插件Kibana本地文件包含漏洞的分析問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI