Bonjour à tous!
Je bloque sur une question d'un exercice depuis plusieurs jours… Est-ce que l'un d'entre vous pourrait svp me mettre sur la voie?
Run the binary located at /home/cactus/watchman.
This binary generates output that changes frequently.
This content includes the flag, which will disappear from view too quickly for you to grab it.
Use the watch command to get the flag.
Lorsque je lance simplement le binaire j'ai un message qui me dit que j'ai échoué bien sur.
Je pense que je dois utiliser watch avec qqch et ./watchman mais comme je ne "visualise" pas comment ce binaire peut générer une sortie qui change fréquemment (puisque lorsque je le lance simplement j'ai seulement un message d'échec…) je ne vois pas quelle commande je dois lui appliquer :(
Pourriez-vous svp me donner quelques pistes de réflexion?
D'avance, merci.
# man watch
Posté par Lol Zimmerli (site web personnel, Mastodon) . Évalué à 3.
https://linux.die.net/man/1/watch
La gelée de coings est une chose à ne pas avaler de travers.
# Prémisse fausse ?
Posté par chimrod (site web personnel) . Évalué à 2.
De ce que je comprend de ton ennoncé, tu ne devrais pas avoir d’erreur en lançant le binaire. Peux-tu copier la sortie de ton terminal quand tu lances la commandes ?
[^] # Re: Prémisse fausse ?
Posté par SoooLooo . Évalué à 2.
Voici la sortie lorsque je lance le binaire:
Nothing is happening. The world is the same as it was before and the future is looking a little bit darker every day. Please! Don't leave. Somebody has to do it, don't you see? Somebody has to save the world. Please continue to keep watch.
Je me suis mal exprimée, il ne s'agit pas d'un message d'erreur du système, juste un message du binaire pour me signifier que mon action est incorrecte.
Mais ce qui me chiffonne c'est que je pensais qu'en lançant le binaire j'allais avoir une sortie qui s'affiche et s'efface instantanément et que je devais donc trouver une commande pour ralentir le cycle de mise à jour… Je ne sais pas si je suis très claire dans mes explications… désolée.
[^] # Re: Prémisse fausse ?
Posté par vmagnin (site web personnel) . Évalué à 4.
Quelque chose comme :
?
[^] # Re: Prémisse fausse ?
Posté par chimrod (site web personnel) . Évalué à 3.
Si c’est pour un exercice, on ne va pas donner la réponse (bien que SoooLooo ait compris le principe) :)
Par contre, je pense qu’il y a un soucis car là, l’ennoncé n’a pas de sens… Hypothèse, le programme affiche le texte puis l’efface très vite, sauf que pour une raison ou une autre, la commande d’effacement n’est pas interprétée par le terminal -> tester avec un autre terminal ?
[^] # Re: Prémisse fausse ?
Posté par SoooLooo . Évalué à 1.
Oui j’ai essayé dans 2 terminaux différents.
j’ai regardé également dans le binaire, et il y a beaucoup d’autres « réponses » du binaire possible. Donc, il doit y avoir un switch particulier à ajouter ou une commande pour faire réagir le binaire mais je ne vois pas :(
Merci d’avoir pris le temps de me répondre en tous cas…
Je devrais peut-être passer ça dans gdb?! Mais ce n’est pas l’objectif de l’exercice…
[^] # Re: Prémisse fausse ?
Posté par SoooLooo . Évalué à 1.
J’ai bien sûr déjà essayé ces commandes mais rien ne se passe…
[^] # Re: Prémisse fausse ?
Posté par cg . Évalué à 1. Dernière modification le 07 janvier 2022 à 20:19.
Je donne 4 piste pour ceci :
script
;strace
;tail -f
.[^] # Re: Prémisse fausse ?
Posté par SoooLooo . Évalué à 1.
Si je lance la commande:
watch -d -n 30 ./watchman
Voici la sortie de mon terminal:
Every 30.0s: ./watchman linux04: Fri Jan 7 20:32:31 2022
Nothing is happening. The world is the same as it was before and the future is looking a little bit darker every day.
Please! Don't leave. Somebody has to do it, don't you see? Somebody has to save the world.
Please continue to keep watch.
J'ai attendu quelques minutes, je me suis dit que peut-être le message changerait… mais rien non plus!
Je vais regarder ce que je peux faire avec tes propositions :) merci!
# Flag ?
Posté par AncalagonTotof . Évalué à 1.
L’énoncé est presque clair :
- la sortie de
watchman
n'est pas toujours la même- parfois, il y a un
flag
dans cette sortie. Un truc qui pourrait se chopper avecgrep
par exemple.Mais c’est quoi un
flag
?[^] # Re: Flag ?
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 2.
Bonne question. Un coup de
./watchman --help
pour commencer ?“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: Flag ?
Posté par SoooLooo . Évalué à 1.
./watchman --help
==> Usage: ./watchman [no arguments needed for this binary]
[^] # Re: Flag ?
Posté par SoooLooo . Évalué à 1.
Ta question c’est bien “qu est ce qu un flag dans Mon exercice?” Si oui, c’est comme dans les CTF: le drapeau caché qu il faut découvrir
[^] # Re: Flag ?
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 3.
Dans ce cas, continue to keep watch comme il est dit
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: Flag ?
Posté par SoooLooo . Évalué à 3.
Finalement j'ai trouvé! Enfin à moitié. Je m'explique:
J'ai refait un watch -d -n 1 ./watchman
J'ai attendu et au bout d'une minute le message s'est mis en surveillance et a changé le temps d'une seconde. (Ce qui explique que je ne l'avais pas vu la fois précédente.
J'ai triché en faisant un screenshot au bon moment pour voir le nouveau message et trouver le flag.
Il ne me reste plus qu'à trouver la solution pour laisser le nouveau message à l'écran.
[^] # Re: Flag ?
Posté par SoooLooo . Évalué à 1.
*surbrillance et non surveillance
[^] # Re: Flag ?
Posté par cg . Évalué à 2.
Sinon, j'avais pas pensé : tu as la commande
strings
qui permet d'extraire les chaînes de caractère du binaire. Maintenant que tu connais le mot qui change grâce à ton screenshot, vois si tu arrives à le retrouver avecstrings
etgrep
;).[^] # Re: Flag ?
Posté par SoooLooo . Évalué à 1.
je vais regarder ça et je reviens vers toi, merci :)
[^] # Re: Flag ?
Posté par NeoX . Évalué à 2.
je ne connaissais pas l'option -d
moi je fais toujours
delay en seconde
commande pouvant etre une commande seule 'watchman' dans ton cas
ou un enchainement de commande avec des pipes par exemple 'xxx | yyyy | zzz'
tres pratique pour surveiller la sortie de dmesg par exemple, en sortant les 10 dernières lignes toutes les 5 secondes
[^] # Re: Flag ?
Posté par vmagnin (site web personnel) . Évalué à 2.
Peut-être utiliser
-d=permanent
?Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.