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-2021-4034 — Voici mon implémentation simple d'un exploit pour la vulnérabilité PwnKit. | Kitploit
Outils/GitHubGitHub/nicoibarburu/cve-2021-4034
Escalade de PrivilègesExploitationApprentissage et ÉducationExploitation de Binaires
GitHubnicoibarburu/cve-2021-4034

CVE-2021-4034

Voici mon implémentation simple d'un exploit pour la vulnérabilité PwnKit.

Voir le dépôt
il y a 4 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

Preuve de concept (Proof of Concept): CVE-2021-4034 (PwnKit)

Remarque: Ce dépôt et son contenu font partie d'un travail de fin d'études (GrAL), créés uniquement à des fins pédagogiques et de recherche académique.

Description

Ce dépôt contient une preuve de concept (PoC - Proof of Concept) pour la vulnérabilité CVE-2021-4034 (également connue sous le nom de PwnKit). Cette vulnérabilité de corruption de mémoire affecte le composant pkexec de Polkit sur les systèmes Linux. En exécutant pkexec avec une liste d'arguments vide (argc == 0), les variables d'environnement peuvent être manipulées pour forcer le chargement d'une bibliothèque partagée arbitraire, obtenant ainsi une élévation locale de privilèges.

Phases de l'exploitation (Analyse de l'environnement)

Ci-dessous sont décrites les étapes à suivre pour préparer l'environnement d'exécution afin d'exploiter la faille. Ce processus détaille comment l'erreur de lecture/écriture en mémoire de pkexec est exploitée :

1. Préparation de l'environnement (structure gconv)

Cet exploit abuse de la manière dont GLib gère la conversion de caractères lorsqu'il tente d'imprimer un message d'erreur. Pour ce faire, la première étape consiste à créer une structure de répertoire spécifique qui servira de référentiel local pour les modules de conversion GCONV de GLib.

2. Manipulation des variables d'environnement

La clé de la vulnérabilité consiste à injecter la variable d'environnement GCONV_PATH, en exploitant l'écriture hors limites provoquée par l'état argc == 0 de pkexec. De cette manière, le programme est forcé d'utiliser un jeu de caractères anormal, ce qui indique à GLib qu'il doit rechercher les modules de conversion de caractères dans le répertoire contrôlé créé à l'étape précédente.

3. Création d'une bibliothèque partagée malveillante (.so)

Pour exécuter notre code, une bibliothèque partagée (shared object ou .so) doit être compilée. Lorsque pkexec tente de traiter un jeu de caractères qu'il ne peut pas trouver, il chargera cette bibliothèque depuis notre faux répertoire gconv. Comme pkexec est un binaire avec le bit SUID activé (il s'exécute en tant que root), le chargement de cette bibliothèque permettra à notre code d'obtenir les privilèges root, prenant ainsi le contrôle total du système (par exemple, en ouvrant un shell root).

4. Configuration du fichier gconv-modules

Enfin, un fichier de configuration nommé gconv-modules doit être créé dans ce répertoire local. Ce fichier agit comme un index : il indique à GLib quelle bibliothèque spécifique (.so) charger pour effectuer la conversion du jeu de caractères spécifique demandé. Ce fichier relie la conversion demandée par pkexec à la bibliothèque partagée créée à l'étape 3.

Compilation et nettoyage

Le projet contient un Makefile pour automatiser la compilation du binaire C et le nettoyage de l'environnement.

  • Pour compiler le projet : $ make

  • Pour nettoyer les fichiers générés (fichiers temporaires, dossiers et binaires) : $ make clean

Télécharger l’outil