
Un outil conçu pour exploiter une vulnérabilité d'élévation de privilèges dans le programme sudo sur les systèmes de type Unix. Il tire parti d'une mauvaise configuration ou d'une faille spécifique dans sudo pour obtenir des privilèges élevés sur le système, permettant essentiellement à un utilisateur normal d'exécuter des commandes en tant qu'utilisateur root.
⭐ Mettez-nous une étoile sur GitHub — pour montrer votre soutien !
💡 Mieux vu en mode sombre :)
Le projet SUDO_KILLER a atteint la finale pour le SANS Difference Award 2023 dans la catégorie outil open-source.
SUDO_KILLER est un outil conçu pour les praticiens de la cybersécurité (pentesteurs, auditeurs de sécurité, administrateurs système, joueurs de CTF et étudiants en sécurité de l'information), facilitant l'élévation de privilèges dans les environnements Linux. Il se concentre sur les vulnérabilités liées à l'utilisation de SUDO, y compris les mauvaises configurations dans les règles sudo, les faiblesses basées sur les versions (CVE et autres vulnérabilités), et les déploiements de binaires risqués (GTFOBINS). Ces points faibles peuvent être exploités pour obtenir des privilèges ROOT ou usurper l'identité d'autres utilisateurs.
SUDO_KILLER fournit un catalogue de commandes potentielles et d'exploits locaux pour une élévation de privilèges manuelle. Important, il s'abstient d'exploitation automatisée, exigeant que les utilisateurs effectuent eux-mêmes le processus d'exploitation conformément à son usage prévu.
Voici une liste des vérifications effectuées par SUDO_KILLER
[!WARNING] La liste de vérifications ci-dessus n'est PAS exhaustive.
Pour commencer avec SUDO_KILLER, vous pouvez soit cloner le dépôt git, soit télécharger le zip. Si vous souhaitez vous entraîner et/ou le tester, il existe un environnement de test vulnérable (utilisant Docker). Consultez la vidéo associée qui donne un aperçu de la configuration de Docker et de l'exécution de SUDO_KILLER. Plusieurs scénarios peuvent être mis en place dans l'environnement Docker et peuvent être utilisés pour tester différentes mauvaises configurations ou failles. Vous pouvez également l'exécuter sur le système à auditer pour vérifier les mauvaises configurations et/ou failles liées à sudo.```shell ./SUDO_KILLERv.sh -c -a -e -r report.txt -p /tmp
Arguments optionnels :
</br>-c : inclut les vérifications CVE
</br>-a : inclut les CVE liées aux applications/périphériques tiers
</br>-i : import (mode hors ligne) depuis extract.sh
</br>-e : inclut l'export des règles sudo / fichier sudoers
</br>-r : nom du rapport (sauvegarder la sortie)
</br>-p : chemin où sauvegarder l'export et le rapport
</br>-s : fournir le mot de passe utilisateur pour les vérifications sudo (si les règles sudo ne sont pas accessibles sans le mot de passe de l'utilisateur actuel)
</br>-h : aide
> [!NOTE]
> Il est à noter que lors de l'utilisation de l'argument -c, deux types de vérification sont fournis : l'un où la CVE identifiée est uniquement basée sur la version actuelle de sudo utilisée, et un autre où les prérequis sont également vérifiés.
> Très souvent, une version de sudo peut être vulnérable mais certains prérequis peuvent être nécessaires pour une exploitation réussie.
> [!NOTE]
> Fournir le mot de passe : si un mot de passe est nécessaire pour exécuter sudo -l, alors le script ne fonctionnera pas si vous ne fournissez pas un mot de passe avec l'argument -s.
<a name="docker"></a>
### Docker (Environnement de test vulnérable)
<p align="left">
<img width="25%" src="https://raw.githubusercontent.com/TH3xACE/res/main/SK/docker.gif" alt="-dockerlogo"/>
</p>
Une gamme de conteneurs Docker est mise à disposition pour offrir un environnement délibérément vulnérable pour tester et expérimenter concrètement `SUDO_KILLER` ainsi que les vulnérabilités.```shell
service docker start
docker pull th3xace/sudo_killer_demo3
docker run --rm -it th3xace/sudo_killer_demo3
(This docker is only to test the CVE-2019-18634 (pwfeedback))
service docker start
docker pull th3xace/sudo_killer_demo2
docker run --user 1000 --rm -it th3xace/sudo_killer_demo2
Utilisez le mot de passe
changemeou créez le vôtre en utilisant l'option--pass.```shell (This docker is only to test the CVE-2025-32463 (chwoot)) -> Credits to author $ git clone https://github.com/pr0v3rbs/CVE-2025-32463_chwoot.git $ cd CVE-2025-32463_chwoot
$ service docker start $ ./run.sh
pwn@f722d9182d1f:~$ ./sudo-chwoot.sh id woot! uid=0(root) gid=0(root) groups=0(root),1001(pwn)
pwn@f722d9182d1f:~$ ./sudo-chwoot.sh woot!
root@f722d9182d1f:/# id uid=0(root) gid=0(root) groups=0(root),1001(pwn)
## Pourquoi est-il possible d'exécuter "sudo -l" sans mot de passe ?
Par défaut, si le tag NOPASSWD est appliqué à l'une des entrées d'un utilisateur sur une machine, vous pourrez exécuter "sudo -l" sans mot de passe. Ce comportement peut être modifié via les options verifypw et listpw.
Cependant, ces règles n'affectent que l'utilisateur courant, donc si l'usurpation d'utilisateur est possible (en utilisant su), sudo -l doit également être lancé depuis cet utilisateur.
Parfois, le fichier /etc/sudoers peut être lu même si sudo -l n'est pas accessible sans mot de passe.
<a name="scenarios"></a>
## Scénarios
Pour changer de scénario (Pour éviter les conflits entre les différents scénarios) sur le docker (demo3) :```shell
switchScenario <scenario_number>
Available scenarios: 0 to 10
All Scenarios 0 : Conflict might occur!
Scenario 1: [2,3] CVE - Rules
Scenario 2: [4] Excessive permissions
Scenario 2: [5] Excessive permissions (Authentication required)
Scenario 3: [6] User Impersonation
Scenario 4: [7] Common Misconfiguration (Change owner)
Scenario 4: [8,11] Common Misconfiguration (Wildcard)
Scenario 5: [13] Missing scripts from sudo rules
Scenario 6: [17] Dangerous Environment Variables
Scenario 7: [18] Dangerous binaries (gtfobins)
Scenario 8: [19] Recursive Impersonation test
Scenario 9: [20] Environment Path Hijacking
Scenario 10: [21] App Specific sudo vuln/misconfig
Scenario 11: [5] Excessive permissions (Authentication required)
Scenario 12: [16] Backdooring sudo (Credentials Capture)
La playlist peut être trouvée ici : https://www.youtube.com/watch?v=Q8iO9mYrfv8&list=PLQPKPAuCA40FMpMKWZLxQydLe7rPL5bml
[!IMPORTANT] Vidéos rapides sur la façon de bien effectuer les tests sur le docker fourni.
[!WARNING] La liste des vidéos ci-dessous n'est pas exhaustive, pour accéder à toutes les vidéos, veuillez consulter le lien de la playlist.
La version 3 de SUDO_KILLER inclut désormais une liste d'outils pouvant être utilisés pour accomplir plusieurs tâches. Les scripts se trouvent dans SUDO_KILLERv3/SUDO_KILLER/SK-Tools/
SK-ImperBruteForce-NoPwd.sh: Effectue un brute force d'usurpation d'identité en utilisant les utilisateurs de /etc/passwd, en commençant par l'utilisateur avec UID 1000.SK-credHarvest2.sh: Effectue une capture d'identifiants en créant un faux sudo via un alias puis en redirigeant vers le vrai sudo.SK-app-check.sh: Effectue une vérification des vulnérabilités sudo liées à une application, un périphérique ou un langage de programmation tiers spécifique (toujours en cours).SK-ttyInject.sh: Abuse du pushback TTY de sorte que si root utilise su - sur un utilisateur contrôlé, une commande arbitraire est exécutée.SK-recursive-impersonate.sh: Effectue l'identification d'usurpation récursive avec une profondeur par défaut de 3.SK-alias-report.sh: Effectue une recherche sur les alias avec différents critères.SK-csuid-with-sudo.sh: Identifie les binaires SUID personnalisés et vérifie si est exécuté sans chemin complet.Le script SK-credHarvest2.sh de SK-Tools permet d'effectuer une capture d'identifiants en créant un faux sudo via un alias puis en redirigeant vers le vrai sudo. Fonctionne actuellement uniquement pour bash (pas encore fonctionnel/implémenté pour ZSH ou autre) sur Linux configuré.
Le message affiché lors de la demande d'identifiants lors de l'utilisation de sudo diffère selon la version utilisée. Il est possible de choisir entre deux options (différentes selon la version de l'OS). Exemple du message affiché (nouveau et ancien)
[!TIP] (new) [sudo] password for user:
(old) Password:
Pour tous les utilisateurs (auser) : Lorsque vous avez les privilèges root ou des droits excessifs sur le répertoire personnel des utilisateurs et que vous souhaitez un moyen facile de collecter des identifiants :```shell ./SK-credHarvest2.sh auser <new|old> ; source /home/*/.bashrc
Pour l'utilisateur actuel (cuser):```shell
./SK-credHarvest2.sh cuser <new|old> ; source /home/<currentuser>/.bashrc
[!CAUTION] POUR ARRÊTER la récolte d'identifiants : exécutez le même script à nouveau avec le même argument
Sortie : le fichier journal /tmp/sk-crds.log contiendra les identifiants
Vous aurez besoin soit des privilèges root, soit d'un accès à une sauvegarde de sudoers, soit d'un accès en lecture à /etc/sudoers.```shell Usage: ./SK-alias-sudoers.sh -p <sudoers_path> -k [-u] [-r] [-m] [-c] | [-a] where -u: user | -r: runas | -m: host | -c: command | -a: all
### Bruteforce/Password Spray via su (SK-su-BruteForce.sh)
Utiliser su pour bruteforcer un mot de passe et effectuer un password spray avec concurrence, timeout et sleep.```shell
Usage: ./SK-su-BruteForce.sh [-h|--help] [-m|--module MODULE] [-u|--user USER|-uf|--userfile USERFILE] [-p|--password PASSWORD|-pf|--pwdfile PASSFILE] [-c|--concurrent CONCURRENT] [-s|--sleep SLEEP] [-t|--timeouts TIMEOUTS]
Module: Password Bruteforce : pwdbf
Example: ./SK-su-BruteForce.sh -m "pwdbf" -u user -pf password.txt -c 5 -s 0.005 -t 0.9
Module: Password Spray : pwdspr
Example: ./SK-su-BruteForce.sh -m pwdspr -uf users.txt -p password -c 5 -s 0.005 -t 0.9
Module: User:Password Bruteforce : usrpwdbf
Example: ./SK-su-BruteForce.sh -m usrpwdbf -uf users-pwd.txt -c 5 -s 0.005 -t 0.9
Trouver les éventuels fichiers de sauvegarde sudoers dans /mnt/ /opt/ /etc/ /etc/ /home/ /app*/ et tout autre analysé comme argument```shell Usage: ./SK-search-sudoers.sh /tmp/
### Update dangerous bins - GTFOBINS (SK_dbins_update.sh)
Pour mettre à jour les binaires dangereux, allez dans dbins/update et exécutez ./SK_dbins_update.sh. Assurez-vous d'avoir une connexion Internet.```shell
Usage: ./SK_dbins_update.sh
Recherche de binaires avec un chemin relatif pouvant être abusés ! si aucun secure_path n'est défini.```shell sudo -l <..snip..> (root) SETENV: NOPASSWD: /opt/support/purge.sh <..snip..>
Usage: ./SK-relative-path.sh /opt/support/purge.sh
<a name="contribute"></a>
# Contribuer
`SUDO_KILLER` est un projet open-source et nous apprécions énormément toute contribution. Que vous nous aidiez à corriger des bugs, à proposer de nouvelles fonctionnalités, à améliorer notre documentation ou à passer le mot - nous serions ravis de vous compter parmi nos contributeurs. Veuillez me contacter sur Twitter ou LinkedIn si vous avez des suggestions, des commentaires ou si vous souhaitez contribuer, vous pouvez également créer une Pull Request. Je recherche des contributions sur les CVE sudo liées à des tiers (j'ai une liste d'environ 175) et toute aide serait appréciée.
- Rapport de bug : Si vous voyez un message d'erreur ou rencontrez un problème lors de l'utilisation de `SUDO_KILLER`, veuillez créer un [rapport de bug](https://github.com/TH3xACE/SUDO_KILLER/issues/new?assignees=&labels=type%3A+bug&template=bug.yaml&title=%F0%9F%90%9B+Bug+Report%3A+).
- Demande de fonctionnalité : Si vous avez une idée ou qu'il vous manque une capacité qui faciliterait le développement et le rendrait plus robuste, veuillez soumettre une [demande de fonctionnalité](https://github.com/TH3xACE/SUDO_KILLER/issues/new?assignees=&labels=type%3A+feature+request&template=feature.yml).
<a name="stars"></a>
## Évolution des étoiles dans le temps
Merci à tous pour votre soutien !
[](https://starchart.cc/TH3xACE/SUDO_KILLER)
<a name="support"></a>
## Soutien
<a href="https://www.patreon.com/TH3xACE">
<img src="https://assets.kitploit.com/production/public/readmes/2701/0c68395ad843ce5107774011154103ae8d17d44f3cafc73e6395bdd05da753c7.png" width="160">
</a>
<a name="credits"></a>
## Crédits
J'ai conçu le script de manière indépendante, en m'appuyant sur des ressources en ligne provenant de GitHub et d'autres sources sur le web. Des remerciements sont également dus aux créateurs/éditeurs des exploits associés aux CVE. Vous pouvez retrouver leurs détails et références dans l'exploit lui-même, ainsi que dans les notes accompagnant l'exécution de l'outil. Une reconnaissance notable s'étend à Vincent Puydoyeux, dont l'inspiration a stimulé le développement de cet outil, et à Koutto, pour son aide précieuse dans la gestion des subtilités de Docker et l'amélioration des fonctionnalités de l'outil. De plus, un grand merci à Emilio Pinna (norbemi) et Andrea Cardaci (cyrus_and) pour leurs contributions inestimables à GTFO Bins, qui ont considérablement influencé le développement de ce projet.
<a name="disclaimer"></a>
## Avertissement
Ce script est UNIQUEMENT à des fins éducatives. Ne l'utilisez pas sans l'autorisation du propriétaire du système sur lequel vous l'exécutez. L'avertissement habituel s'applique, notamment le fait que moi (TH3xACE) ne suis pas responsable des dommages causés par l'utilisation directe ou indirecte des informations ou fonctionnalités fournies par ce projet. L'auteur (TH3xACE) ou tout fournisseur d'accès Internet n'assume AUCUNE responsabilité quant au contenu ou à la mauvaise utilisation de ces programmes ou de leurs dérivés. En utilisant ces programmes, vous acceptez le fait que tout dommage (perte de données, crash système, compromission du système, etc.) causé par l'utilisation du script n'engage pas la responsabilité de l'auteur.
<a name="license"></a>
## Licence
`SUDO_KILLER` est sous licence MIT, des crédits appropriés sont attendus lors de toute utilisation. Veuillez envisager de faire un don pour toute utilisation commerciale.
sudoSK-su-BruteForce.sh: Effectue un brute force ou un spray de mots de passe pour un utilisateur spécifique via sudo.SK-search-sudoers.sh: Identifie les éventuels fichiers de sauvegarde sudoers sur l'hôte actuel.