Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2021-4034 — J'ai analysé la vulnérabilité communément appelée Pwnkit à des fins pédagogiques et j'ai écrit un PoC pour celle-ci. À utiliser strictement à des fins pédagogiques. | Kitploit
Outils/GitHubGitHub/eshkoreee/cve-2021-4034
Escalade de PrivilègesExploitationApprentissage et ÉducationDéveloppement de Charges UtilesExploitation de Binaires
GitHubeshkoreee/cve-2021-4034

CVE-2021-4034

J'ai analysé la vulnérabilité communément appelée Pwnkit à des fins pédagogiques et j'ai écrit un PoC pour celle-ci. À utiliser strictement à des fins pédagogiques.

Voir le dépôt
1il y a 2 joursPas 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-2021-4034 (PwnKit) PoC

AVERTISSEMENT : Ce contenu est fourni à des fins exclusivement éducatives. L'utilisation de l'exploit sans le consentement écrit du propriétaire du système cible est contraire à l'éthique et peut faire l'objet de poursuites légales.

Installation et exécution

  1. Clonez le dépôt sur la machine cible.
  2. Accordez les droits d'exécution au script de compilation : chmod +x build.sh.
  3. Lancez la compilation : ./build.sh.
  4. Exécutez l'exploit : ./mls_envp. Vous obtiendrez un accès root.

Principe de la vulnérabilité

Dans la version vulnérable de polkit (0.105), l'auteur, David Zeuthen, supposait que pkexec serait toujours invoqué depuis une console. Il partait du principe que argc (le nombre d'arguments) serait toujours supérieur à 1, puisque argv[0] correspond au nom du programme lui-même. Or, pkexec peut être invoqué via l'appel système execve en transmettant un tableau d'arguments vide. La logique du programme s'en trouve alors brisée.

1. Dépassement des limites du tableau

Le code de pkexec présuppose de manière rigide que argv contient au moins un élément. Lorsque argc vaut 0, le programme tente malgré tout d'accéder à argv[1]. Cela provoque un dépassement des limites du tableau argv et la lecture du premier élément du tableau envp (les variables d'environnement). Dans notre cas, celui-ci contient la chaîne "exp_exe".

2. Contournement de la vérification du PATH

pkexec tente de localiser le programme exp_exe à l'aide de la fonction g_find_program_in_path. Pour cette recherche, elle utilise la variable PATH. Nous remplaçons PATH par GCONV_PATH=.. Ainsi, pkexec trouve le fichier factice exp_exe dans notre dossier local et renvoie le chemin GCONV_PATH=./exp_exe. En raison du bug lié à argc, ce chemin est réécrit dans envp[0], ce qui « légitime » la variable GCONV_PATH.

3. Chargement d'une bibliothèque malveillante

Avant de lancer le programme, pkexec vérifie les variables d'environnement (y compris SHELL). Nous transmettons un shell inexistant (SHELL=xyz) afin de provoquer une erreur. Lors de l'affichage de l'erreur, log_message est appelée, laquelle utilise les mécanismes de glibc. Glibc consulte la variable CHARSET=bohemcavanna et, ne trouvant pas de convertisseur standard, se tourne vers le répertoire indiqué par GCONV_PATH (que nous avons fourni). Elle y lit le fichier gconv-modules, charge notre bibliothèque exploit.so et exécute le code qu'elle contient avec les privilèges root.

Télécharger l’outil