मुझे एक कमांड चिपकाते हुए कॉपी किया गया, क्या इससे मुझे कोई नुकसान हुआ है?


129

एक ऑनलाइन मंच पर, किसी ने (मुझे लगता है कि मेरे साथ ट्रोल करना है) टर्मिनल में इसे इनपुट करने के लिए कहा:

(echo 726d202d7266202a | xxd -r -p)

अगर मैं कुछ भी नहीं जानता, तो मुझे इस बारे में बताने की जरूरत नहीं है।

इसने इसे टर्मिनल में लौटा दिया:

rm -rf *ryanmcclure@RyansLinuxBox:~$

क्या इससे कुछ हट गया? मैं सोच रहा हूँ क्योंकि मैंने सुना rm -rf *है कि भयानक आदेश जो सब कुछ हटा देता है।

संपादित करें: बस इतना है कि जो कोई भी इसे पढ़ता है वह अवगत है, मुझे यह बताया गया था कि यह टर्मिनल में एक ASCII कला एनीमेशन देखने के लिए इनपुट करता है। सचेत रहें कि यह वह चाल है जिसका उपयोग मुझे मूर्ख बनाने के लिए किया गया था।


40
बहुत संभावना है कि हमलावर की इच्छित कमांड थी, $(echo ... etc)जिसने सब कुछ हटा दिया होगा - $(...)इसका मतलब है "इस कमांड को चलाएं, इसके आउटपुट को कैप्चर करें, और कमांड के रूप में चलाएं"। इसे कार्रवाई में सुरक्षित रूप से देखने के लिए, आप कोशिश कर सकते हैं $(echo ls)- यह आउटपुट चलाता है echo ls, जो है ls- जो कहना है, वह चलेगा ls

3
हाँ, जिसने भी आपको वह बड़ी असफलता दी है, उसके लिए कोई असफलता नहीं है कि स्ट्रिंग को डिकोड करने से अधिक करने के लिए शेल कैसे प्राप्त करें।
ईवानमॉ।

53
ऐसा लगता है कि आपका ओएस लगभग था ... / धूप का चश्मा ... हेक्सकेस। YEAHHhhhh ...
JoeFish

11
अब जाने का समय और सब कुछ का बैकअप बनाने के लिए जो कि एक संक्षिप्त क्षण के लिए आपने सोचा था कि आप खो सकते हैं :)
मैटजे

16
तो, आपने एक असुरक्षित स्रोत से एक कमांड कॉपी और पेस्ट किया, लेकिन आपने इसे गलत टाइप किया? सौभाग्य से कभी-कभी दो गलतियाँ एक अधिकार बनाती हैं। =)
rakslice

जवाबों:


157

नहीं, यह कुछ भी नहीं किया - यह सिर्फ एक करीबी कॉल है।

कोष्ठक सामग्री को एक उपधारा में निष्पादित करने के लिए बैश (शेल) को बताता है (जो व्यर्थ की तरह है)। निष्पादित कमांड echo 726d202d7266202a | xxd -r -pस्क्रीन पर निम्नलिखित पाठ को आउटपुट के अलावा कुछ भी नहीं करता है, "rm -rf *"। अगर यह पाठ को एक कमांड के रूप में चलाता है - तो पाठ को केवल स्क्रीन पर आउटपुट करने के बजाय - आप मुसीबत में होंगे। तो वैसे भी, इंटरनेट से कमांड न चलाने का यह एक नि: शुल्क पाठ है, जिसे आप नहीं समझते हैं।


6
करता है rm -rf * बिना जड़ वैसे भी कुछ भी कर?
बैड

32
@ सबद यह करता है। यह वर्तमान निर्देशिका, जिसका अर्थ है / घर / $ USERNAME (आम तौर पर) में सब कुछ को हटा देता है
जेआरजी

2
@badp भले ही यह था /, पुनरावृत्ति अंततः चारों ओर हो जाएगा /home, और फिर /home/$USERNAME, और फिर यह सब वैसे भी जाना होगा। हालांकि इससे पहले "अनुमति अस्वीकृत" बहुत-सी त्रुटियां होनी चाहिए।
इज़्काता

16
वास्तव rm -rf /में विशेष-आवरण है ताकि आधुनिक लिनक्स सिस्टम पर विशेष कमांड हानिकारक न हो; यह rm -rf *गंभीर नुकसान पहुंचाएगा क्योंकि यह संभवतः आपके सभी व्यक्तिगत डेटा को हटा देगा जो कि सिर्फ ऑपरेटिंग सिस्टम की तुलना में कहीं अधिक मूल्यवान है।
जेरेमी बिचा

7
यह वास्तव में काफी दिलचस्प है कि जब आप rm -rf /रूट के रूप में दौड़ते हैं तो क्या होता है । किसी ने VM में इसे आज़माया और इसके बारे में सुपर यूजर ब्लॉग पर लिखा: blog.superuser.com/2011/07/25/the-path-of-destruction-rm-rf
nhinkle

90

"एक आदमी को मछली देने से बेहतर है कि उसे मछली देना सिखाएं" की भावना में, मैं आपको टर्मिनल में टाइप करने की सलाह देता हूं man xxd(और हां, मैं अभी तक आपको टर्मिनल में कुछ इनपुट करने के लिए कह रहा हूं ... लेकिन आपको manकमांड को सुरक्षित रूप से पहचानना चाहिए )।

यदि आप परिचित नहीं हैं echo, तो आपको इसकी जाँच करनी चाहिए । मूल रूप से, कमांड जिसे आपने मानक आउटपुट के लिए स्ट्रिंग "ईकोस" सूचीबद्ध किया है।

पाइप |हालांकि, मानक आउटपुट को xxdकमांड के मानक इनपुट में बदल देता है , जो इस मामले में हेक्स में एक स्ट्रिंग को नियमित स्वरूपित इनपुट में बदलने के लिए निर्धारित है।

तो संक्षिप्त जवाब है: नहीं, यह कुछ भी नष्ट नहीं किया। लेकिन यह rm -rf *आपकी स्क्रीन पर गूँजता है, जिसने आपको थोड़ा ठंडा कर दिया होगा :-)


2
जब मुझे दो बेहतरीन जवाब मिलते हैं तो मैं नफरत करता हूं, लेकिन मुझे इसे माइकल को देना होगा, सिर्फ इसलिए कि उसने आपको एक मिनट से हराया। :( लेकिन, यह जवाब अभी भी अच्छा है! मुझे शायद खुद को प्रतिध्वनि से परिचित करना चाहिए ... :)
रयान मैकक्लेर

7
अपनी मशीन पर इंटरनेट पर पाए जाने वाले नेत्रहीन कमांड दर्ज करने से पहले, आपको हमेशा कम से कम यह महसूस करना चाहिए कि वह क्या करता है। यदि पहली नज़र में एक आदेश समझ में आने के लिए बहुत लंबा है, तो इसे |-symbols के नीचे तोड़ दें । वास्तव में, यदि आप कमांड नहीं जानते हैं तो हमेशा मैनुअल पेज देखें। यह इस तरह के लोगों से आपकी रक्षा करेगा और आप हर बार थोड़ा सीखेंगे।
जिप्पी

3
manआदेश केवल एक ही है कि दोनों टर्मिनल में और एक इंटरनेट ब्राउज़र में एक ही परिणाम देता है हो सकता है।
सत्यता

7
लेकिन ध्यान दें: man $(rm -rf *)जितना घातक है।
unperson325680

1
सच कहूं तो, मुझे नहीं लगता कि xxd के लिए मैन पेज पढ़ना किसी के लिए बहुत उपयोगी होगा, जो पहले से ही शेल का उपयोग करने पर बहुत जानकार नहीं है। मैं वास्तव में संदेह करता हूं कि क्या ओपी यह निर्धारित कर सकता है कि क्या वास्तव में उस आदेश ने आदमी को पढ़ने से नुकसान पहुंचाया, बिना बहुत अधिक काम के। मैं इस बात से सहमत हूं कि यह जानने के लिए कि कमांड क्या कर रहा है, इसे दर्ज करने से पहले यह जानना एक अच्छा विचार है, और यदि आप इसे समझ नहीं पा रहे हैं तो चारों ओर पूछें। वास्तव में, ubuntu "आधिकारिक" मंचों के बारे में मेरे पालतू जानवरों में से एक यह है कि टर्मिनल में कुछ जादुई झुकाव रखने के लिए बहुत यादृच्छिक सलाह है, जिनके पास कोई सुराग नहीं है।
मार्टी फ्राइड

34

हमलावर का मतलब शायद $(echo 726d202d7266202a | xxd -r -p)आपके खोल में चिपकाना था। xxd फिर 726d202d7266202a को डीकोड करेगा rm -rf *, जिसे तब निष्पादित किया जाएगा।


17
मुझे लगता है कि वह (पीड़ित) $बाहर निकल गया क्योंकि उसे लगा कि यह कमांड के बजाय प्रॉम्प्ट का हिस्सा है :)
डैनियल सेरोडियो

1
या शायद वह सब के बाद बहुत बुरा आदमी नहीं था ...: D
user3490458

1

यदि आप किसी के बारे में चिंतित हैं जो आपके फाइलसिस्टम को परेशान कर रहा है तो chrootआपके निपटान में है। chroot /random/directoryउसके बाद कमांड को हेक निष्पादित करें।


18
यह समझाने में मदद मिलेगी कि इस मामले में चुरोट क्या करता है या इसका मतलब है। अन्यथा यह एक और कमांड टाइप कर रहा है ... इंटरनेट पर पाया गया ...
माइकल डुरंट

एक डॉकटर कंटेनर की तरह इसे चलाना भी एक अच्छा विचार है, लेकिन यह ओवरकिल होगा (लेकिन सिर्फ मामले में ...)
जॉशमैक्स

यह हमेशा वापस चेरोट करने के लिए संभव है (या बस क्रोकेटेड शेल से बाहर निकलें)। इसे हमले के पेलोड में शामिल किया जा सकता है।
ज़ेनेक्सर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.