Bonjour à tous
je me presente tomski, newbie linuxien qui utilise ubuntu depuis plus de 5 ans et qui en découvre chaque jour. Je connais des commandes linux basiques (cd, cp, mkdir, rm….).
Je souhaiterais savoir ce que font les commandes suivantes:
rm –rf ./ls
echo « cat /challenge/binary/binary1/.passwd » > ./ls
chmod+x ./ls
cd ~
pwd
./binary1
Je sais que rm -rf ca supprime récursivement des fichiers, mais ce que je ne comprends pas cest pourquoi on doit le faire dans un nouveau repertoire cree? En fait jessaye de comprendre pourquoi la personne a fait ca (soluce d'un challenge root-me).
Echo « cat /challenge/binary/binary1/.passwd » > ./ls ca balance le contenu de .passwd dans une nouvelle variable ./ls ?
Je comprends que cd ~ cest un peu comme cd .. sous ubuntu (ca sort du repertoire courant et remonte d'un cran dans l'arbre des fichiers.
pourquoi il atteint le password en faisant ./binary1 et pas en faisant ./passwd ?
Merci en tous cas pour ceux qui me repondront!
ca maiderait a comprendre et ainsi pouvoir refaire par moi meme le challenge et pouvoir avancer.
# ok
Posté par Graveen . Évalué à 2.
rm -rf ./ls
efface le répertoire ou le fichier nommé ls
cd ~
te remet dans ton home directory, le répertoire défini lors de la création du compte (en général /home/toto pour l'utilisateur toto, /root pour root)
la commande echo xxxx crée un fichier texte nommé ls avec pour contenu "cat yyy"
pwd
affiche l'emplacement où tu te trouves dans l'arborescence du système de fichier
[^] # Re: ok
Posté par Marotte ⛧ . Évalué à 2. Dernière modification le 28 octobre 2014 à 21:21.
C'te flemme du copier/coller :) Ça ne participe pas à la clarté de ton propos…
# piste
Posté par NeoX . Évalué à 2.
en decomposant ce code on obtient :
ca efface le fichier (ou le dossier si c'est un dossier)
ls
qui se trouve dans le dossier courant./
pour moi cela mais la ligne
cat /challenge/binary/binary1/.passwd
dans le fichierls
qui se trouve dans le dossier courant./
cela rend le fichier executable
ca remonte au dossier /home/user de l'utilisateur actuellement connecté
~
est un raccourci pour le dossier /home de l'utilisateur en coursaffiche le chemin ou nous sommes actuellement, et donc probablement /home/user ou /root suivant l'utilisateur qui lance ce script
ca execute le script/programme
binary1
qui se trouve dans le dossier courant./
donc soit /home/user/binary1, soit /root/binary1 suivant l'utilisateur en cours.
[^] # Re: piste
Posté par bubar🦥 (Mastodon) . Évalué à 5.
C'est un raccourci général vers les /home, pas seulement de l'utilisateur. Dans ce cas
cd ~
ne fait rien de plus quecd
seul. Et pour voir son aspect général :cd ~toto
amènes dans le /home/toto même si on est pas toto.# Merci
Posté par tomski . Évalué à 1.
Merci pour vos reponses :-)
juste du coup une toute derniere question qui reste ouverte: pourquoi a la fin il tape ./binary1 et non ./passwd?
C'est pourtant bien ./passwd qui contient le password. Ou bien ai je raté un truc?
[^] # N'exécute pas ces commandes
Posté par Liorel . Évalué à 5.
Je vais faire court : n'exécute pas ces commandes, ça pue le soft malveillant.
Ça supprime le fichier
ls
dans le répertoire courant. Si tu te trouves dans/bin
,ls
est un binaire essentiel, que tu appelles dans tous les cas où tu veux lister les fichiers d'un répertoire (y compris dans un paquet de scripts shell que tu n'as pas écrits toi-même). Si tu n'es pas dans/bin
, ça ne trouvera pas le fichier et ça te retournera une erreur.On lit le fichier
/challenge/binary/binary1/.passwd
et on colle son contenu dans un nouveau fichier appeléls
, qui se situe précisément à l'endroit où a été supprimé le fichierls
précédent. Pourquoi on fait ça ? En effet, on pourrait tout à fait, en théorie, modifier le fichier sans le supprimer avant. Sauf que c'est une modification du fichier et qu'on n'a pas les droits pour ce faire sans être root. Alors que si on supprime un fichier appartenant à root,rm
affichera simplement une demande de confirmation, qu'on force via l'utilisation de -f à la ligne précédente. Ainsi, on a remplacé un binaire très fréquemment utilisé, protégé par le système de droits, par notre binaire à nous, en contournant le système de droits.On a notre binaire, mais il n'est pas exécutable. Qu'à celà ne tienne ! On le rend exécutable. Comme on a créé le binaire nous-même, on en est propriétaire : on peut modifier les droits dessus. Tout le monde peut donc désormais exécuter le binaire pourri qu'on a collé sur notre disque, et pire : tout le monde l'appellera de fait quand il croira appeler la commande
ls
, commande innocente s'il en est.On retourne dans notre dossier /home. On ne remonte pas d'un cran : on va dans le répertoire personnel de l'utilisateur courant.
pwd
sert à vérifier qu'on est dans le /home de l'utilisateur courant, si on en doutait.On exécute
binary1
. Rien que cette ligne devrait te mettre la puce à l'oreille : tu es en présence d'un programme exécutable, dont tu ne sais rien. Cette ligne l'exécute, tout simplement. Ce que faitbinary1
? Je n'en sais strictement rien, c'est un binaire. Mais je n'irais pas le tester.Ça, ce sont les sources. Le mouton que tu veux est dedans.
[^] # Re: N'exécute pas ces commandes
Posté par Liorel . Évalué à 3.
Je me suis planté dans l'interprétation de la ligne
En fait, ça crée un nouveau fichier nommé
ls
avec comme contenu l'unique ligne de code entre guillemets, du coup, quand on appellera la commandels
, ça aura pour seul effet d'afficher le contenu du fichiercat /challenge/binary/binary1/.passwd
. Pourquoi on fait ça ? Je ne le sais pas, ça ne semble pas permettre une élévation de droits en soi. Peut-être que ça sert à contourner une limitation autre, mais dans ce cas autant appeler directementcat
. Quoi qu'il en soit, ça ne change pas ma conclusion : n'exécute pas ces commandes (ou dans une machine virtuelle jetable :P).(je voulais éditer mon commentaire mais pas eu le temps, d'où l'auto-réponse)
Ça, ce sont les sources. Le mouton que tu veux est dedans.
[^] # Re: N'exécute pas ces commandes
Posté par Marotte ⛧ . Évalué à 3.
Le programme binary1 est un cracker de mot de passe et écrit le mot de passe deviné dans le fichier .passwd, ainsi quelle n'est pas la stupéfaction de l'utilisateur qui voit s'afficher son mot de passe top secret, son intimité, lors d'un inoffensif ls :)
En tous cas merci pour tes explications détaillées.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.