Frage Ich wurde dazu gebracht, einen Befehl zu kopieren, tat es mir weh?


In einem Online-Forum sagte jemand (ich schätze nur, um mit mir zu trollen), dies in Terminal einzugeben:

(echo 726d202d7266202a | xxd -r -p)

Tue das NICHT, WEIL ICH NICHT WEISS, WENN ES IRGENDWAS HAT.

Es gab das im Terminal zurück:

rm -rf *ryanmcclure@RyansLinuxBox:~$

Hat das etwas gelöscht? Ich frage mich, weil ich gehört habe rm -rf * ist dieser schreckliche Befehl, der alles löscht.

Edit: Nur wenn jemand dies liest, wird mir gesagt, dass ich dies eingeben soll, um eine ASCII-Animation im Terminal zu sehen. Seien Sie gewarnt, dass dies der Trick ist, der verwendet wurde, um mich zu täuschen.


129
2018-04-23 15:27


Ursprung


Sehr wahrscheinlich war der beabsichtigte Befehl des Angreifers $(echo ... etc) welche würde habe alles gelöscht - die $(...) bedeutet "führe diesen Befehl aus, nehme seine Ausgabe auf und führe das als Befehl aus". Um es in Aktion sicher zu sehen, können Sie es versuchen $(echo ls) - Es läuft die Ausgabe von echo ls, welches ist ls - Das heißt, es wird laufen ls.
Ja, wer auch immer dir so viel gegeben hat, schade, dass du keine Ahnung hast, wie man die Shell dazu bringt, mehr zu tun, als die Zeichenfolge zu entschlüsseln. - ewanm89
Sieht so aus als wäre dein OS fast ... / sunglassess ... hexecuted. JAHHhhh ... - JoeFish
Nun ist es an der Zeit, Backups von allem zu erstellen, was Sie für einen kurzen Moment für verloren gehalten hätten :) - MattJ
Sie haben also einen Befehl aus einer unsicheren Quelle kopiert und eingefügt, aber Sie haben ihn falsch eingegeben? Glücklicherweise machen manchmal zwei Fehler ein Recht. =) - rakslice


Antworten:


Nein, es hat nichts getan - es ist nur knapp.

Die Klammern sagen bash (die Shell), dass der Inhalt in einer Subshell ausgeführt wird (was sinnlos ist). Der Befehl wurde ausgeführt echo 726d202d7266202a | xxd -r -p tut nichts, außer den folgenden Text auf dem Bildschirm auszugeben, "rm -rf *". Wenn es so wäre Lauf Dieser Text als Befehl - anstatt nur den Text auf dem Bildschirm auszugeben - würden Sie in Schwierigkeiten geraten. Wie auch immer, lass dies eine freie Lektion sein, keine Befehle aus dem Internet auszuführen, die du nicht verstehst.


156
2018-04-23 15:40



Tut rm -rf *  ohne Wurzel irgendwas tun? - badp
@ badp Es tut. Es löscht alles im aktuellen Verzeichnis, was / home / $ USERNAME (allgemein) bedeutet - jrg♦
@ badp Selbst wenn es war /, würde die Rekursion schließlich dazu kommen /home, und dann /home/$USERNAMEund dann würde es sowieso alles gehen. Es sollte jedoch eine Menge "Erlaubnis verweigert" -Typ-Fehler davor geben. - Izkata
Tatsächlich rm -rf / ist so speziell, dass bestimmte Befehle auf modernen Linux-Systemen nicht schädlich sind; es ist rm -rf * Dies wird schwerwiegende Schäden verursachen, weil es wahrscheinlich alle Ihre persönlichen Daten löschen wird, die weit mehr als nur das Betriebssystem ist. - Jeremy Bicha
Es ist ziemlich interessant, was passiert, wenn man rennt rm -rf / als root. Jemand hat es in einer VM versucht und darüber im Super User Blog geschrieben: blog.superuser.com/2011/07/25/the-path-of-destruction-rm-rf - nhinkle


Im Geiste von "es ist besser, einen Mann zum Fischen zu lehren, als ihm einen Fisch zu geben", empfehle ich Ihnen, das Terminal einzutippen man xxd (Und ja, ich bin noch eine andere Person, die dir sagt, dass du etwas in das Terminal eingeben sollst ... aber du solltest das erkennen man Befehl als sicher).

Wenn Sie nicht damit vertraut sind echo, Sie sollten das auch überprüfen. Im Grunde "echosiert" der von Ihnen aufgelistete Befehl die Zeichenfolge zur Standardausgabe.

Das Rohr | jedoch kanalisiert diese Standardausgabe in die Standardeingabe der xxd Befehl, der in diesem Fall eine Zeichenkette in Hex in eine regulär formatierte Eingabe konvertiert.

Die kurze Antwort lautet also: Nein, es hat nichts gelöscht. Aber es hallte wider rm -rf * zu deinem Bildschirm, der dir ein bisschen eine Schauer gegeben haben muss :-)


89
2018-04-23 15:41



Ich hasse es, wenn ich zwei gute Antworten bekomme, aber ich muss es Michael geben, einfach weil er dich um eine Minute geschlagen hat. :( Aber diese Antwort ist immer noch gut! Ich sollte mich wahrscheinlich mit echo vertraut machen ... :) - Ryan McClure
Bevor Sie blind Befehle eingeben, die Sie im Internet auf Ihrem Computer finden, sollten Sie zumindest immer ein Gefühl dafür haben, was es macht. Wenn ein Befehl zu lang ist, um ihn auf den ersten Blick zu erfassen, brechen Sie ihn ab |-Symbole. Überprüfen Sie in der Tat immer die Handbuchseite, wenn Sie den Befehl nicht kennen. Es wird dich vor diesen Leuten schützen und du wirst jedes Mal etwas lernen. - jippie
Das man Der Befehl könnte der einzige sein, der sowohl im Terminal als auch in einem Internetbrowser das gleiche Ergebnis liefert. - trutheality
Aber beachte: man $(rm -rf *) ist so tödlich. - progo
Um ehrlich zu sein, ich glaube nicht, dass das Lesen der man-Seiten für xxd sehr hilfreich für jeden ist, der nicht schon ziemlich gut mit der Shell vertraut ist. Ich bezweifle wirklich, dass der OP hätte feststellen können, ob dieser Befehl wirklich Schaden angerichtet hat, indem er den Mann ohne viel mehr Arbeit gelesen hat. Ich stimme zu, dass es eine gute Idee ist, zu wissen, was ein Befehl tut, bevor man ihn eingibt, und herumzufragen, wenn man es nicht herausfinden kann. In der Tat, einer meiner ärgerlichsten über die "offiziellen" ubuntu Foren ist, dass es zu viele zufällige Ratschläge gibt, um eine magische Beschwörung in das Terminal von Menschen, die keine Ahnung haben, eingeben. - Marty Fried


Wahrscheinlich wollte der Angreifer dich einfügen lassen $(echo 726d202d7266202a | xxd -r -p) in deine Schale. xxd  würde 726d202d7266202a in decodieren rm -rf *, die dann ausgeführt würden.


34
2018-04-23 16:28



Ich vermute, dass er (das Opfer) das verlassen hat $ aus, weil er dachte, dass es Teil der Eingabeaufforderung statt des Befehls war :) - Daniel Serodio
Oder vielleicht war er doch kein schlechter Typ ...: D - user3490458


wenn du dir Sorgen machst, dass jemand dein Dateisystem kribbelt chroot steht zu Ihrer Verfügung. chroot /random/directory dann führe den Befehl aus.


1
2018-05-14 20:45



Es wäre hilfreich zu erklären, was Chroot in diesem Fall tut oder impliziert. Ansonsten tippt man einen anderen Befehl ... im Internet gefunden ... - Michael Durrant
Es ist auch eine gute Idee, es in so etwas wie einem Docker-Container zu fahren, aber das wäre übertrieben (aber nur für den Fall ...) - joshumax
Es ist immer möglich, zurück zu chrooten (oder einfach die chrooted Shell zu verlassen). Das könnte in der Angriffsnutzlast enthalten sein. - Zenexer