SUID Binaire (backup) - Linux Privilege Escalation
Pour rechercher les fichiers avec le bit SUID activé, on utilise la commande suivante :
find / -perm -4000 2>/dev/nullCela nous permet de trouver un binaire nommé backup.

Le propriétaire du binaire est root, ce qui signifie qu'il s'exécute avec les privilèges de l'utilisateur root.

Lorsque nous essayons d'exécuter ce binaire directement, rien ne se passe. Cependant, en testant différentes entrées, nous découvrons qu'il accepte une chaîne de trois caractères séparés par des espaces, ce qui révèle les fonctions disponibles :

En examinant le fichier app.js, nous trouvons des informations sur l'utilisation du binaire, ainsi qu'une clé nécessaire pour son exécution. La clé est située en haut du fichier.

Pour utiliser le binaire, nous devons fournir la clé, suivie du chemin du répertoire à sauvegarder.
45fac180e9eee72f4fd2d9386ea7033e52b7c740afc3d98a8d0230167104d474

Cela génère une sortie en Base64.

La sortie en Base64 peut être décodée en un fichier .zip à l'aide de la commande suivante :

Le fichier zip est protégé par un mot de passe. Nous utilisons le mot de passe trouvé précédemment
password:
magicword
Cependant, le fichier root.txt contenu dans l'archive est un leurre (rabbit hole).

Analyse approfondie avec ltrace
ltraceEn utilisant ltrace, nous observons que le binaire compare le chemin /root avec celui fourni en argument. Si les chemins correspondent, il affiche une caricature de troll.

Pour contourner cette vérification, nous exécutons le binaire depuis la racine (/) en demandant un backup de root

La nouvelle sortie est également en Base64. Nous la décodons pour obtenir le contenu final :
Flag root.txt :)
En extrayant le fichier final, nous accédons au contenu désiré.

Mis à jour
Ce contenu vous a-t-il été utile ?