एक हैशेड पासवर्ड के साथ sudo में लॉग इन करना


0

मुझे इस बात की उत्सुकता है कि क्या मैं sudo पासवर्ड पास कर सकता हूँ, हैशेड sha512 (?) पासवर्ड को प्रॉम्प्ट कर सकता है और इस तरह से रूट करने के लिए लॉग इन कर सकता है। तो यह कुछ इस तरह लग सकता है:

[user@device ~]$ sudo su -
[sudo] password for user: 'some hashed password from shadow file' 

क्या यह संभव है? यदि हां, तो क्या यह हैशेड पासवर्ड प्राप्त करने का एक आसान तरीका है?

जवाबों:


0

यह हैशेड पासवर्ड को संग्रहीत करने के उद्देश्य को पराजित करेगा।

मुझे यकीन है कि आप जानते हैं, लेकिन सिर्फ मामले में हैशिंग के पीछे का विचार बहुत सरल है - आप एक ऐसा फ़ंक्शन ढूंढते हैं जो एक दिशा में गणना करना आसान है लेकिन दूसरी दिशा में गणना करने के लिए अविश्वसनीय रूप से कठिन है। चलिए उस फंक्शन को बुलाते हैं hash

अब, जब आप पहली बार अपना पासवर्ड बनाते हैं, तो कहें hunter2कि सिस्टम रन करेगा hash('hunter2')और परिणाम को छाया फ़ाइल में संग्रहीत करेगा ।

फिर जब आप सिस्टम में लॉग इन करते हैं तो आप दावा करते हैं कि आपका पासवर्ड है hunter4और सिस्टम hash('hunter4')छाया फ़ाइल में संग्रहीत मूल्य की तुलना करके इसकी जांच करता है । यदि हैश के बराबर सिस्टम आपको लॉग ऑन करने देगा, यदि वे नहीं हैं तो सिस्टम आपको अस्वीकार कर देगा।

इसका लाभ यह है कि भले ही कोई आपकी छाया फ़ाइल तक पहुँच प्राप्त करने का प्रबंधन करता है, वे अभी भी आपका पासवर्ड नहीं जानते हैं और आप पर लॉग ऑन नहीं कर सकते क्योंकि यद्यपि वे हैश को जानते हैं, इसलिए उत्पादित पासवर्ड को निर्धारित करना अविश्वसनीय रूप से कठिन है यह हैश।

संक्षेप में, कोई भी हैश संग्रहीत /etc/shadowनहीं है और इसका उपयोग उपयोगकर्ता पासवर्ड के विकल्प के रूप में नहीं किया जा सकता है।


यह पूरी तरह से समझ में आता है, और यह वही है जो मुझे उम्मीद थी। मैं नेटवर्क पर पासवर्ड को 'इको' किए बिना केवल सूडो के साथ एक कमांड को कॉल करने की कोशिश कर रहा हूं। विचार यह है कि मैं इसे और अधिक सुरक्षित तरीके से कैसे कर सकता हूं? मुझे लगा कि शायद मैं हैश को 'पासवर्ड' के रूप में पास कर सकता हूं और फिर वे मेरे द्वारा 'हैश' ('हंटर 2') चलाने के परिणाम की तुलना छाया फाइल में कर सकते हैं। लेकिन मुझे समझ में आता है कि अगर कोई अनधिकृत लाभ छाया फ़ाइल तक पहुंचता है तो वे उस विकल्प को समाप्त क्यों करना चाहते हैं।
user3119546

0

कमांड लाइन पर सीधे नहीं है क्योंकि sudo पासवर्ड को प्लेनटेक्स्ट में होने की उम्मीद करता है।

आप --askpassइसके लिए पासवर्ड प्राप्त करने के लिए sudo को कॉल करने के लिए सहायक प्रोग्राम का उपयोग करने के विकल्प का उपयोग कर सकते हैं , लेकिन जब यह पासवर्ड को कमांड लाइन पर प्रदर्शित होने से रोकेगा, तब भी उसे sudo को पास करने के लिए सादे पासवर्ड की आवश्यकता होती है

आप रूट उपयोगकर्ता के रूप में / etc / shadow फ़ाइल देखकर हैशेड पासवर्ड प्राप्त कर सकते हैं।


धन्यवाद, मूल रूप से मैं sudo के साथ एक फ़ाइल कॉल करना चाहता हूं, लेकिन मैं नेटवर्क पर एक प्लेटेक्स्ट पासवर्ड नहीं गूंजना चाहता। सुझाव?
user3119546

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