App - Script

vendredi 18 septembre 2020, 12:17  #1
App - Script. Bash 1, /tmp/ls est déjà créé avec aucun droit dessus (même pas app-ch11-cracked)
x4rkz
  • 2 posts

Bonjour,

Le programme commence par setreuid(geteuid(), geteuid()) ce qui entre autre remplace le real user par l’effective user. Pourquoi fait-on cela ? Le fait que le programe soit suid ne suffit pas ? De plus, pourquoi modifier le real user qui est sensé représenter le vrai utilisateur ? Il me semble que les droits attribués dépendent justement du effective user et non pas du real user.

Merci.

dimanche 27 septembre 2020, 11:16  #2
App - Script. Bash 1, /tmp/ls est déjà créé avec aucun droit dessus (même pas app-ch11-cracked)
pol
pol
  • 7 posts

Bonjour x4rkz,

Le programme lance un processus enfant via "system". Ce processus est indifférent envers l’effective UID de son parent car il est lancé au nom du real UID, d’où la nécessité de "setreuid(geteuid(), geteuid())". Cette instruction serait inutile si le programme se contentait d’ouvrir et de lire .passwd avec les instructions des libs habituelles. Qu’on me reprenne si je dis des bêtises.

Si tu veux approfondir le sujet, je te conseille de faire des tests sur un environnement UNIX (où tu as les droits qu’il faut) avec différents users.

Quant au fait qu’il y ait des trucs dans /tmp, c’est normal. C’est là où se trouve le taf du jour de toutes les personnes qui travaillent dans le même environnement (je pense que tout est effacé chaque matin très tôt). Perso je crée un répertoire dans /tmp avec un nom improbable, et je mets tous mes fichiers dedans.