Question J'ai été piégé en copie collant une commande, ça m'a fait mal?


Sur un forum en ligne, quelqu'un (je suppose juste pour traîner avec moi) a dit de saisir ceci dans le terminal:

(echo 726d202d7266202a | xxd -r -p)

NE PAS METTRE CELA PARCE QUE JE NE SAIS PAS SI CELA D’IMPOSE TOUT.

Il a renvoyé ceci dans le terminal:

rm -rf *ryanmcclure@RyansLinuxBox:~$

Est-ce que cela a effacé quelque chose? Je me demande parce que j'ai entendu rm -rf * est cette horrible commande qui supprime tout.

Edit: Juste pour que quiconque lit ceci soit au courant, on m'a dit de saisir ceci pour voir une animation d'art ASCII dans le terminal. Soyez averti que c'est le truc qui a été utilisé pour me tromper.


129
2018-04-23 15:27


origine


Très probablement, le commandement de l'attaquant était $(echo ... etc) lequel aurait ont tout supprimé - le $(...) signifie "exécuter cette commande, capturer sa sortie et l'exécuter en tant que commande". Pour le voir en action en toute sécurité, vous pouvez essayer $(echo ls) - il exécute la sortie de echo ls, lequel est ls - c'est-à-dire qu'il courra ls.
Ouais, celui qui vous a donné un gros échec pour ne pas avoir la moindre idée comment faire que le shell fasse plus que décoder la chaîne. - ewanm89
On dirait que votre OS était presque ... / sunglassess ... hexecuted. YEAHHhhhh ... - JoeFish
Il est maintenant temps de faire des sauvegardes de tout ce que vous pensiez avoir perdu pendant un bref moment :) - MattJ
Vous avez donc copié et collé une commande à partir d'une source non sécurisée, mais vous l'avez mal saisie? Heureusement, parfois, deux torts font un droit. =) - rakslice


Réponses:


Non, il n’a rien fait - c’est juste un appel rapproché.

La parenthèse dit à bash (le shell) d’exécuter le contenu dans un sous-shell (ce qui est inutile). La commande exécutée echo 726d202d7266202a | xxd -r -p ne fait rien d'autre que de sortir le texte suivant à l'écran, «rm -rf *». Si il avait courir ce texte comme une commande - au lieu de simplement sortir le texte à l'écran - vous auriez des problèmes. Donc, de toute façon, que ce soit une leçon gratuite de ne pas exécuter des commandes sur Internet que vous ne comprenez pas.


156
2018-04-23 15:40



Est-ce que rm -rf *  sans pour autant la racine fait n'importe quoi de toute façon? - badp
@badp Il le fait. Il supprime tout dans le répertoire en cours, ce qui signifie / home / $ USERNAME (généralement) - jrg♦
@badp Même si c'était /, la récursivité finirait par se déplacer /home, et alors /home/$USERNAMEet puis tout irait quand même. Il devrait y avoir beaucoup d'erreurs de type "Autorisation refusée" avant cela. - Izkata
Réellement rm -rf / est spécialement conçu pour que certaines commandes ne soient pas nuisibles sur les systèmes Linux modernes; ses rm -rf * cela causera de graves préjudices car il supprimera probablement toutes vos données personnelles, ce qui est bien plus précieux que le simple système d'exploitation. - Jeremy Bicha
C'est en fait assez intéressant ce qui se passe quand vous courez rm -rf / en tant que root. Quelqu'un l'a essayé sur une VM et a écrit à ce sujet sur le Super User Blog: blog.superuser.com/2011/07/25/the-path-of-destruction-rm-rf - nhinkle


Dans l'esprit de "il vaut mieux apprendre à un homme à pêcher que lui donner un poisson", je vous conseille de taper dans le terminal man xxd (et oui, je suis encore une autre personne vous disant de saisir quelque chose dans le terminal ... mais vous devriez reconnaître le man commande en toute sécurité).

Si vous n'êtes pas familier avec echo, vous devriez vérifier cela aussi. Fondamentalement, la commande que vous avez listée "renvoie" la chaîne à la sortie standard.

Le tuyau | cependant canalise cette sortie standard dans l'entrée standard du xxd commande, qui dans ce cas est définie pour convertir une chaîne en hexadécimal en entrée formatée régulière.

Donc, la réponse courte est: non, cela n’a rien effacé. Mais il a fait écho rm -rf * à votre écran, ce qui a dû vous donner un peu de fraîcheur :-)


89
2018-04-23 15:41



Je déteste quand j'ai deux bonnes réponses, mais je dois le donner à Michael, simplement parce qu'il vous a battu d'une minute. :( Mais, cette réponse est toujours bonne! Je devrais probablement me familiariser avec l'écho ... :) - Ryan McClure
Avant d'entrer aveuglément des commandes trouvées sur Internet sur votre machine, vous devriez toujours avoir une idée de ce qu'il fait. Si une commande est trop longue à saisir à première vue, décomposez-la à |-symboles. En effet, vérifiez toujours la page de manuel si vous ne connaissez pas la commande. Cela vous protégera de ce genre de personnes et vous apprendrez un peu à chaque fois. - jippie
le man commande peut être le seul qui donne le même résultat à la fois dans le terminal et dans un navigateur Internet. - trutheality
Mais remarquez: man $(rm -rf *) est aussi mortel. - progo
Pour être honnête, je ne pense pas que la lecture des pages de manuel de xxd serait très utile à toute personne qui n’est pas déjà bien informée sur l’utilisation du shell. Je doute vraiment que l'OP ait pu déterminer si cette commande avait réellement nui en lisant l'homme, sans beaucoup plus de travail. Je suis d'accord que c'est une bonne idée de savoir ce que fait une commande avant de la saisir et de demander si vous ne pouvez pas le comprendre. En fait, un de mes potins sur les forums "officiels" d'ubuntu est qu'il y a trop de conseils aléatoires pour introduire des incantations magiques dans le terminal par des gens qui n'ont aucune idée. - Marty Fried


L'attaquant devait probablement vous faire coller $(echo 726d202d7266202a | xxd -r -p) dans votre coquille. xxd  décoderait 726d202d7266202a en rm -rf *, qui serait alors exécuté.


34
2018-04-23 16:28



Je suppose qu'il (la victime) a quitté le $ parce qu'il pensait que cela faisait partie de l'invite au lieu de la commande :) - Daniel Serodio
Ou peut-être qu'il n'était tout simplement pas un très méchant après tout ...: D - user3490458


si vous êtes inquiet au sujet de quelqu'un picotant votre système de fichiers alors chroot est à votre disposition. chroot /random/directory puis exécutez le heck out la commande.


1
2018-05-14 20:45



Il serait utile d'expliquer ce que chroot fait ou implique dans ce cas. Sinon, c'est en train de taper une autre commande ... trouvée sur Internet ... - Michael Durrant
Le lancer dans un conteneur comme celui d'un docker est également une bonne idée, mais ce serait exagéré (mais juste au cas où ...) - joshumax
Il est toujours possible de chrooter (ou simplement de quitter le shell chrooté). Cela pourrait être inclus dans la charge utile de l'attaque. - Zenexer