Zostałem nakłoniony do skopiowania wklejenia polecenia, czy to mnie bolało?

129

Na forum online ktoś (chyba po prostu trollować się ze mną) powiedział, aby wprowadzić to do terminala:

(echo 726d202d7266202a | xxd -r -p)

NIE WKŁADAJ TEGO PONIEWAŻ, PONIEWAŻ NIE WIEM, JEŚLI TO BĘDZIE COŚ.

Zwrócił to w terminalu:

rm -rf *ryanmcclure@RyansLinuxBox:~$

Czy to coś usunęło? Zastanawiam się, ponieważ słyszałem, rm -rf *że to okropne polecenie, które usuwa wszystko.

Edycja: Aby każdy, kto to czyta, był tego świadomy, kazano mi to wprowadzić, aby zobaczyć animację sztuki ASCII w terminalu. Ostrzegam, że to jest sztuczka, która mnie oszukała.

Ryan McClure
źródło
40
Bardzo prawdopodobnie przeznaczony polecenia atakującego został $(echo ... etc)która byłaby zostały usunięte wszystko - to $(...)znaczy „uruchomić to polecenie, uchwycić jego wyjście i uruchom że jako polecenie”. Aby zobaczyć to w akcji bezpiecznie, możesz spróbować $(echo ls)- uruchamia wyjście echo ls, czyli ls- co oznacza, że ​​będzie działać ls.
3
Tak, ktokolwiek dał ci tę wielką porażkę za to, że nie masz pojęcia, jak sprawić, by powłoka zrobiła więcej niż dekodowanie łańcucha.
ewanm89
53
Wygląda na to, że Twój system operacyjny był prawie ... / okulary przeciwsłoneczne ... szesnastki. YEAHHhhhh ...
JoeFish
11
Teraz czas iść i robić kopie zapasowe wszystkiego, co przez krótką chwilę myślałeś, że możesz stracić :)
MattJ
16
Skopiowałeś i wkleiłeś polecenie z niebezpiecznego źródła, ale źle je wpisałeś? Na szczęście czasami dwie krzywdy czynią dobro. =)
rakslice,

Odpowiedzi:

157

Nie, nic nie zrobił - to tylko bliskie połączenie.

Nawias nakazuje bashowi (powłoce) wykonanie zawartości w podpowłoce (co jest w pewnym sensie bezcelowe). Wykonane polecenie echo 726d202d7266202a | xxd -r -pnie robi nic poza wyświetleniem na ekranie następującego tekstu: „rm -rf *”. Gdyby uruchomił ten tekst jako polecenie - zamiast wyświetlać go na ekranie - miałbyś kłopoty. Tak czy inaczej, niech to będzie darmowa lekcja, aby nie uruchamiać poleceń z Internetu, których nie rozumiesz.

Michael Kropat
źródło
6
Czy rm -rf * bez roota i tak coś robi?
badp
32
@badp Tak. Usuwa wszystko z bieżącego katalogu, co oznacza / home / $ USERNAME (ogólnie)
jrg
2
@badp Nawet gdyby tak było /, rekurencja w końcu się obejdzie /home, a potem /home/$USERNAME, a potem i tak wszystko pójdzie. Jednak przed tym powinno być wiele błędów typu „Odmowa zezwolenia”.
Izkata
16
W rzeczywistości rm -rf /ma specjalną obudowę, dzięki czemu określone polecenia nie są szkodliwe w nowoczesnych systemach Linux; to rm -rf *, że będzie powodować poważne szkody, ponieważ będzie to prawdopodobnie usunąć wszystkie swoje dane osobowe, które jest o wiele bardziej wartościowe niż tylko system operacyjny.
Jeremy Bicha
7
To naprawdę interesujące, co dzieje się, gdy uruchamiasz się rm -rf /jako root. Ktoś wypróbował to na maszynie wirtualnej i napisał o tym na blogu superużytkowników
nhinkle
90

Zgodnie z duchem „lepiej nauczyć człowieka łowienia niż dać mu rybę”, radzę wpisać terminal man xxd(i tak, jestem kolejną osobą, która mówi ci, abyś wprowadził coś do terminalu ... ale powinieneś rozpoznać manpolecenie jako bezpieczne).

Jeśli nie jesteś zaznajomiony echo, powinieneś to sprawdzić . Zasadniczo wymienione polecenie „echa” ciąg znaków na standardowe wyjście.

Potok kieruje |jednak to standardowe wyjście do standardowego wejścia xxdpolecenia, które w tym przypadku jest ustawione na konwersję ciągu w postaci szesnastkowej na wejście sformatowane normalnie.

Krótka odpowiedź brzmi: nie, nic nie usunęło. Ale odbiło rm -rf *się echem na ekranie, co musiało sprawić, że poczujesz chłód :-)

Chan-Ho Suh
źródło
2
Nienawidzę, gdy dostaję dwie świetne odpowiedzi, ale muszę dać to Michaelowi, po prostu dlatego, że pokonał cię o minutę. :( Ale ta odpowiedź jest nadal dobra! Prawdopodobnie powinienem zapoznać się z echem ... :)
Ryan McClure
7
Przed wprowadzeniem na ślepo poleceń znajdujących się w Internecie na komputerze, zawsze powinieneś przynajmniej mieć poczucie, co robi. Jeśli polecenie jest zbyt długie, aby je uchwycić na pierwszy rzut oka, rozbij je na |-symbolach. Rzeczywiście, zawsze sprawdź stronę podręcznika, jeśli nie znasz polecenia. Będzie cię chronić przed tego rodzaju ludźmi i za każdym razem będziesz się uczyć.
jippie
3
manKomenda może być jedynym, który daje taki sam wynik jak w terminalu oraz w przeglądarce internetowej.
prawdomówność
7
Ale zauważ: man $(rm -rf *)jest równie zabójczy.
unperson325680
1
Szczerze mówiąc, nie sądzę, że czytanie stron podręcznika dla xxd byłoby bardzo pomocne dla każdego, kto nie ma jeszcze wystarczającej wiedzy na temat używania powłoki. Naprawdę wątpię, czy OP mógłby ustalić, czy to polecenie rzeczywiście zaszkodziło, czytając mężczyznę, bez większego wysiłku. Zgadzam się, że dobrze jest wiedzieć, co robi polecenie, zanim je wprowadzisz, i zapytać, czy nie możesz tego rozgryźć. W rzeczywistości jednym z moich domowych pomysłów na temat „oficjalnych” forów ubuntu jest to, że istnieje zbyt wiele przypadkowych porad, aby wprowadzić magiczne zaklęcie do terminalu przez ludzi, którzy nie mają pojęcia.
Marty Fried
34

Atakujący prawdopodobnie zamierzał wkleić cię $(echo 726d202d7266202a | xxd -r -p)do powłoki. xxd zdekoduje 726d202d7266202a do rm -rf *, który następnie zostanie wykonany.

xn.
źródło
17
Zgaduję, że on (ofiara) wyszedł z gry $, ponieważ myślał, że to część podpowiedzi zamiast polecenia :)
Daniel Serodio
1
A może po prostu wcale nie był taki zły ...: D
user3490458
1

jeśli martwisz się, że ktoś mrowi twój system plików, chrootjest do Twojej dyspozycji. chroot /random/directorynastępnie wykonaj polecenie cholery.

PnotNP
źródło
18
Pomocne byłoby wyjaśnienie, co chroot robi lub implikuje w tym przypadku. W przeciwnym razie wpisuje się kolejne polecenie ... znalezione w Internecie ...
Michael Durrant
Dobrym pomysłem jest również uruchomienie go w czymś w rodzaju kontenera
dokującego
Zawsze można ponownie wykonać chroot (lub po prostu wyjść z chrootowanej skorupy). Może to być uwzględnione w ładunku ataku.
Zenexer