Traitor – Automatiser la détection et l’escalade de privilèges (Linux)

Publié par Geoffrey Sauvageot-Berland le

Rappel : L’article qui va suivre contient des techniques et méthodes qui peuvent s’avérer être illégales et dangereuses si elles sont utilisées à mauvais escient. Ce tutoriel ne doit en aucun cas être utilisé contre un particulier, une entreprise, une organisation à but non lucratif ou une administration publique de quelconque pays. Je me dédouane de toute responsabilité en cas de problèmes ou d’incidents de quelque nature que ce soit après le visionnage de cet article.

« I have a dream… that one day I will found a detection and privilege escalation automatic tool for Linux… ». C’est chose faite, j’ai découverts il y a peu un outil qui est en mesure de réaliser ce rêve.

Si vous me suivez depuis quelque temps, vous connaissez sans doute maintenant mon appétence pour les automatisations en tout genre… Cet article vous présente un outil permettant de réaliser une escalade de privilèges sous linux « on the fly » sans le moindre effort (ou presque).

Lien vers le projet GitHub : https://github.com/liamg/traitor

I. Disclaimer

Attention, lors de vos phases de test et plus précisément à chaque fois que vous exécutez du code provenant d’un repository GitHub ou autre, renseignez-vous un minimum sur ce que fait cet artefact, et qui est à l’origine du projet. Pour cela consultez les avis sur internet, les issues GitHub, et parcourez rapidement la documentation. Vous n’êtes jamais à l’abris d’exécuter un bout de code qui pourrait endommager votre système voir pire, être malveillant… Respectez à la lettre le principe du « Zero-Trust » le plus souvent possible afin de limiter votre surface d’exposition à la menace cyber.

à méditer…

I. Environnement

  • Ubuntu 20.04.3
    • Accès internet
    • Compte utilisateur standard pour la démonstration : tintin

II. Démonstration

Afin d’avoir un exemple parlant, je vais vous démontrer la puissance de Traitor en exploitant la faille Dirty Pipe (CVE-2022-0847 – CVSS : 7.8 (High)), qui vous permet de réaliser une escalade de privilèges (lors d’une phase de post exploitation). Pour plus d’informations concernant cette faille je vous invite à consulter l’article d’un de mes confrères :

Commencez, par télécharger l’outil par l’intermédiaire de la commande wget. J’attire votre attention sur le fait que la version de cet outil changera à l’avenir. Je vous invite à vous reporter au repository GitHub, ci-dessous, pour obtenir la dernière version.

wget https://github.com/liamg/traitor/releases/download/v0.0.14/traitor-amd64

Ajoutez des droits d’exécution au fichier :

chmod u+x traitor-amd64

Puis, exécutez-le :

./traitor-amd64

Traitor a détecté que notre système est potentiellement vulnérable aux failles de sécurité suivantes :

  • Polkit (CVE-2021-3560)
  • Dirty Pipe (CVE-2022-0847)

Il se base notamment sur la version du noyau Linux et de la version qu’il peut trouver. Ex : Ubuntu 20.04.X

Je vais tenter mon escalade de privilèges sur le système avec l’exploit « embarqué » de Traitor pour la faille Dirty Pipe (CVE-2022-0847). Saisissez la commande suivante :

./traitor-amd64 --exploit kernel:CVE-2022-0847

Comme vous pouvez le constater, le système en question est bel et bien vulnérable à « Dirty Pipe » puisque l’escalade de privilèges a fonctionné. Vous obtenez donc un shell basique (sh) root, que vous pouvez polymorpher en shell bash en saisissant /bin/bash.

III. Détection et escalade de privilèges en une ligne ?

Oui oui, je sais ça parait comment dire… prétentieux, outrecuidant, voir même insolent et utopiste ^^ mais traitor a une option qui vous permet de réaliser cela. L’option -a permet de tester tous les exploits qui ont été identifiés comme exploitables par traitor.

./traitor-amd64 -a

Comme vous pouvez le constater, traitor n’arrive pas à privesc avec la faille polkit, du coup il utilise la faille Dirty Pipe (CVE-2022-0847) pour vous permettre d’obtenir un shell root. Que dire de plus… ^^ Je pense que cet outil a de très beaux jours devant lui, il n’a même pas un an. Le développeur qui maintient ce repository actualise son outil dès qu’une CVE intéressante et facilement exploitable est rendu publique. L’intégration de la CVE-2022-0847 est une preuve concrète.

Pour plus d’informations concernant cette commande, consultez son manuel :

./traitor-amd64 --help

IV. Bonus : Escalade de privilèges via la présence d’un utilisateur dans le groupe docker avec traitor

Pour comprendre un peu plus en détail le fonctionnement de cette faille, je vous invite à consulter mon précédent article consacré à ce sujet :

Via le compte de votre machine vulnérable, ajoutez un utilisateur standard (dans mon cas tintin) au groupe docker. Testez in fine, si celui-ci accède à la commande docker sans encombre. (message d’erreur explicite)

Exécutez traitor :

Comme l’indique la capture ci-dessus, traitor a bel et bien détecté que le système autorise un autre utilisateur (tintin) que root à accéder à la commande.

Rien de plus simple que de lancer la commande suivante afin de profiter de cette brèche de sécurité pour devenir root.

J’espère que cet article vous aura plu. ^^

++

Geoffrey


En savoir plus sur LGDS • Le Guide Du SecOps

Subscribe to get the latest posts sent to your email.


Geoffrey Sauvageot-Berland

Ingénieur diplômé par l’état en Informatique et Cybersécurité. Généraliste, à l'origine administrateur systèmes et réseaux, j’occupe actuellement un poste d’auditeur en sécurité offensive. J’apprécie également la programmation/automatisation. Fondateur du blog : "Le Guide du SecOps", anciennement "Le Guide du SysOps"

En savoir plus sur LGDS • Le Guide Du SecOps

Abonnez-vous pour poursuivre la lecture et avoir accès à l’ensemble des archives.

Poursuivre la lecture