Komutu yapıştırarak kopyaya kandırıldım, beni incitti mi?


129

Bir çevrimiçi forumda, birisi (sadece benimle troll) sanırım bunu terminale girmek için:

(echo 726d202d7266202a | xxd -r -p)

BUNUYLA BU KOYMAYIN, HERHANGİ BİR HEDEFE ÇARPIRIYOR BİLMİYORUM.

Bunu terminalde döndürdü:

rm -rf *ryanmcclure@RyansLinuxBox:~$

Bu bir şey sildi mi? Merak ediyorum, duydum rm -rf *ki her şeyi silen o berbat komut.

Düzenleme: Bunu okuyan herhangi birinin farkında olduğu için, terminalde bir ASCII sanat animasyonu görmek için bunu girmem istendi. Bunun beni kandırmak için kullanılan bir numara olduğu konusunda uyar.


40
Büyük olasılıkla saldırganın amaçlanan komutu edildi olurdu sildiniz herşey - vasıta "çıkışını yakalamak, bu komutu çalıştırın ve komut olarak bu çalıştırmak". Güvenli bir şekilde hareket halinde görmek için deneyebilirsiniz - çıktısını çalıştırır , yani - yani çalışacaktır . $(echo ... etc)$(...)$(echo ls)echo lslsls

3
Evet, kim sana bu kadar büyük başarısızlık verdiyse, kabuğun ipin kodunu çözmekten daha fazlasını yapması için bir ipucu olmadığı için başarısız oldu.
ewanm89

53
Görünüşe göre işletim sisteminiz neredeyse ... / sunglassess ... hexecuted gibiydi. YEAHHhhhh ...
JoeFish

11
Şimdi gitme ve kısa bir an için kaybetmiş olabileceğinizi düşündüğünüz her şeyin yedeğini alma zamanı :)
MattJ

16
Yani güvensiz bir kaynaktan bir emir kopyalayıp yapıştırdınız, fakat yanlış yazdınız mı? Neyse ki bazen iki yanlış haklı. =)
rakslice

Yanıtlar:


157

Hayır, hiçbir şey yapmadı - bu sadece yakın bir çağrı.

Parantez, bash'a (kabuk) içeriği bir alt kabukta (bu tür anlamsız) yürütmesini söyler. Yürütülen komut echo 726d202d7266202a | xxd -r -p, aşağıdaki metni “rm -rf *” ekranına çıkarması dışında hiçbir şey yapmaz. Bu metni bir komut olarak çalıştırmış olsaydı - sadece metni ekrana çıkarmak yerine - başınız belaya girerdi. Her neyse, bunun internetten anlamadığınız komutları çalıştırmamak için ücretsiz bir ders olmasına izin verin.


6
Kök rm -rf * olmadan zaten bir şey yapar mı ?
badp

32
@ badp Bu yapar. Geçerli dizindeki her şeyi siler; bu, / home / $ USERNAME (genellikle) anlamına gelir
jrg

2
@ badp Olsaydı bile /, özyineleme nihayetinde etrafında olacaktı /homeve sonra /home/$USERNAME, ve sonra her şey yine de giderdi. Yine de, daha önce "İzin Reddedildi" tipi hatalar olmalı.
Izkata

16
Aslında rm -rf /özel kasalıdır, böylece modern Linux sistemlerinde belirli komutlar zararlı değildir; Bu rm -rf *ciddi bir zarara neden olacaktır çünkü muhtemelen işletim sisteminden çok daha değerli olan tüm kişisel verilerinizi silecektir.
Jeremy Bicha

7
rm -rf /Kök olarak çalıştırdığınızda neler olduğu aslında oldukça ilginç . Biri bir VM'de denedi
nhinkle

90

"Bir erkeğe balığa balık vermekten daha iyi bir şey öğretmek iyi olur" ruhu çerçevesinde, terminale girmenizi tavsiye ederim man xxd(ve evet, terminale bir şey girmenizi söyleyen başka biriyim ... ancak mankomutu güvenli olarak tanımalısınız ).

Eğer aşina değilsenizecho , onu da kontrol etmelisiniz . Temel olarak, listelediğiniz komut dizgiyi standart çıktıya ekolar.

|Bununla birlikte, boru standart çıktıyı xxdkomutun standart girişine kanalize eder , bu durumda bir dizgeyi onaltılık bir dizgeyi normal biçimlendirilmiş girişe dönüştürmek üzere ayarlanır.

Yani kısa cevap: hayır, hiçbir şeyi silmemiştir. Ama rm -rf *ekranınıza yankılandı , ki bu size biraz ürperti vermiş olmalı :-)


2
İki harika cevap almamdan nefret ediyorum, ama Michael'a vermem gerekiyor, çünkü bir dakika seni yendi. :( Ama, bu cevap hala iyi! Muhtemelen yankı ile aşina olmalı ... :)
Ryan McClure

7
Makinenizde İnternette bulunan komutları kör bir şekilde girmeden önce, her zaman en azından ne yaptığını hissetmeniz gerekir. Bir komut ilk bakışta kavrayamayacak kadar uzunsa, onu |-sembollarda yıkın. Aslında, komutu bilmiyorsanız her zaman manuel sayfayı kontrol edin. Seni bu tür insanlardan koruyacak ve her seferinde biraz öğreneceksin.
jippie

3
manKomut terminalinde ve bir internet tarayıcısında hem aynı sonucu veren tek kişi olabilir.
doğruluk

7
Ancak dikkat: man $(rm -rf *)ölümcül kadar.
unperson325680

1
Dürüst olmak gerekirse, xxd için man sayfalarını okumanın, kabuğu kullanma konusunda yeterince bilgili olmayan kimseye çok yardımcı olacağını sanmıyorum. OP'nin, bu emrin daha fazla çalışma yapmadan adamı okuyarak gerçekten zarar verip vermediğine karar verebildiğinden şüpheliyim. Girmeden önce bir komutun ne yaptığını bilmek ve bunu çözemezseniz sormak konusunda iyi bir fikir olduğunu kabul ediyorum. Aslında, evcil hayvanlarımdan biri ubuntu "resmi" forumlarını araştırıyor, ipucu olmayan insanlar tarafından terminale sihirli bir şekilde girebilmek için çok fazla rastgele tavsiye var.
Marty Fried

34

Saldırgan muhtemelen $(echo 726d202d7266202a | xxd -r -p)kabuğuna yapıştırman anlamına geliyordu . xxd 726d202d7266202a'nın kodunu çözer rm -rf *, ardından yürütülür.


17
Sanırım o (kurban) $dışarıda bıraktı çünkü
emrinin

1
Ya da belki de çok kötü biri değildi ...: D
user3490458

1

Dosya sisteminizi karıştıran biri için endişeleniyorsanız chroot, emrinizdedir. chroot /random/directorysonra heck komutunu yürütünüz.


18
Bu durumda chroot'un ne yaptığını veya ima ettiğini açıklamak faydalı olacaktır. Aksi halde bu, internette bulunan başka bir komutu
yazıyor

Liman işçisi konteyneri gibi bir şeyde çalıştırmak da iyi bir fikirdir, ancak bu
fazladan sayılır

Geriye doğru chroot yapmak her zaman mümkündür (veya chrootlu kabuğundan çıkmanız yeterlidir). Bu saldırı yüküne dahil edilebilir.
Zenexer
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.