Elasticsearch 核心插件Kibana 本地文件包含漏洞分析(CVE-2018-17246)

来源:https://www.cnblogs.com/Ivan1ee/archive/2019/01/02/10210637.html
-Advertisement-
Play Games

不久前Elasticsearch發佈了最新安全公告, Elasticsearch Kibana 6.4.3之前版本和5.6.13之前版本中的Console插件存在嚴重的本地文件包含漏洞可導致拒絕服務攻擊、任意文件讀取攻擊、配合第三方應用反彈SHELL攻擊,下文筆者對其漏洞背景、攻擊原理和行為進行分析 ...


不久前Elasticsearch發佈了最新安全公告, Elasticsearch Kibana 6.4.3之前版本和5.6.13之前版本中的Console插件存在嚴重的本地文件包含漏洞可導致拒絕服務攻擊、任意文件讀取攻擊、配合第三方應用反彈SHELL攻擊,下文筆者對其漏洞背景、攻擊原理和行為進行分析和復現。

0X01 影響範圍

Elasticsearch Kibana是荷蘭Elasticsearch公司的一套開源的、基於瀏覽器的分析和搜索Elasticsearch儀錶板工具,作為Elasticsearch的核心組件,Kibana可作為產品或服務提供,並與各種系統,產品,網站和企業中的其他Elastic Stack產品配合使用。 由於Kibana在大數據領域用途較為廣泛,此次漏洞影響範圍較大, Shodan搜索結果如圖

 

0x02 漏洞場景

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

2.1、拒絕服務

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

GET請求發出去後客戶端打不開應用頁面,在服務端Kibana進程退出,應用服務掛掉具體看下圖

 

 

2.2、任意文件讀取

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

2.3、配合第三方應用

通常情況下Kibana與其他的應用程式一起部署,如果應用程式可以上傳或者寫入Javascript文件的話,攻擊者可以通過Nodejs創建一個Reverse Shell,內容如下

路徑遍歷允許攻擊者訪問Kibana伺服器任何文件的位置,如下

Nc反彈監聽得到交互會話

 

0X03 漏洞分析

漏洞污染點位於 \src\core_plugins\console\api_server\server.js

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

在同級目錄下ES_5_0.js 中有一個這個類的導出實例

總結一下此函數的正常流程是獲取導出API類實例並調用函數asJson的JavaScript文件的名稱,但是忽略了過濾驗證因此我們可以指定任意文件,配合目錄跳轉遍歷就可以實現Kibana伺服器上任意文件讀取的操作。基於上述的分析很明顯Nodejs應用程式需要大量的文件,如果這些文件里包含了process.exit指令,那麼就可能關閉Kibana進程並導致拒絕服務攻擊,通過搜索找到了三個可能的攻擊向量

0x04 一點總結

LFI通常出現在PHP應用中,通樣是require這次應用在Nodejs程式中,相信未來還會有更多的Nodejs程式存在這種問題,原因是本地包含漏洞出現了很多年,但依舊有很多軟體開發人員和架構師沒有考慮到這點,這篇文章很好的說明瞭Kibana中存在的一個關鍵LFI漏洞,使得攻擊者能夠在伺服器上運行本地代碼,可造成直接的危害就是拒絕服務攻擊,若在生產環境下業務實在傷不起,需要引起對Nodejs LFI的重視。

 

0x05 參考鏈接

https://github.com/appsecco/vulnerable-apps/tree/master/node-reverse-shell

https://www.elastic.co/downloads/kibana

http://www.cnvd.org.cn/flaw/show/CNVD-2018-23907

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-17246


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 介紹 Chart.js 這套 open source 的免費「圖表」繪製函式庫,及其與 ASP.NET MVC 的整合應用。 ...
  • 本文以 ASP.NET Web API 為後臺框架,利用 EF6 連接 postgreSQL 資料庫,使用 swagger 來生成 REST APIs文檔。文章分二個部分,第一部分主要講如何用 EF6 連接 postgreSQL,第二部分是介紹如何集成 swagger,如何屏蔽 swagger 預設 ...
  • 希望現在學習Orleans不會晚,畢竟Server Fabric都開源了。本篇博客從Sample的HelloWorld示常式序來解讀Orleans的Grains。 Server配置參考 : https://dotnet.github.io/orleans/Documentation/clusters ...
  • public static void EncryptWithPassword(string unEncryptedWordPath, string password) { Word.Application wordApp = null; Word.Document document = null; ... ...
  • surging 是一個分散式微服務引擎,提供高性能RPC遠程服務調用,服務引擎支持http、TCP、WS、Mqtt協議,採用Zookeeper、Consul作為surging服務的註冊中心,集成了哈希一致性,隨機,輪詢、壓力最小優先作為負載均衡的演算法,底層協議集成採用的組件是dotnetty、web ...
  • 配置nfs NFS服務的主要配置文件為/etc/exports。/etc/exports文件內容格式: <輸出目錄> 客戶端(選項:訪問許可權,用戶映射,其他) 1、輸出目錄 輸出目錄是指NFS系統中所定義的共用給客戶端使用的文件系統 2、客戶端 客戶端是定義網路中可以訪問這個NFS共用目錄的IP地址 ...
  • 啟動 rewrite mod:sudo a2enmod rewrite;重啟Apache2:sudo /etc/init.d/apache2 restart。 ...
  • 1、下載maven http://maven.apache.org/download.cgi 2、解壓maven tar -zxvf apache-maven-3.6.0 3、配置maven環境變數 vi /etc/profile 添加環境變數 export MAVEN_HOME=/usr/loca ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...